Allow other forms of node selection for init()

The existing behavior of init will always re-render the whole page, and requires that a chart be classed `mermaid`.

This change allows the user to specify:
- a DOM Node (as from getQuerySelector)
- a DOM NodeList  (as from getQuerySelectorAll)
- an array of nodes (as from jQuery.find)
- a string (to be handed to getQuerySelectorAll)
This commit is contained in:
bollwyvl
2015-03-10 13:25:16 -04:00
parent 3ae1b5f1a3
commit d61aac362c

View File

@@ -60,7 +60,12 @@ var parse = function(text){
* *
* The function tags the processed attributes with the attribute data-processed and ignores found elements with the * The function tags the processed attributes with the attribute data-processed and ignores found elements with the
* attribute already set. This way the init function can be triggered several times. * attribute already set. This way the init function can be triggered several times.
* *
* Optionally, `init` can accept in the second argument one of the following:
* - a DOM Node
* - an array of DOM nodes (as would come from a jQuery selector)
* - a W3C selector, a la `.mermaid`
*
* ``` * ```
* graph LR; * graph LR;
* a(Find elements)-->b{Processed}; * a(Find elements)-->b{Processed};
@@ -68,7 +73,12 @@ var parse = function(text){
* c-->|No |d(Transform); * c-->|No |d(Transform);
* ``` * ```
*/ */
var init = function (sequenceConfig) { var init = function (sequenceConfig, arr) {
arr = arr == null ? document.querySelectorAll('.mermaid')
: typeof arr === "string" ? document.querySelectorAll(arr)
: arr instanceof Node ? [arr]
: arr;
var arr = document.querySelectorAll('.mermaid'); var arr = document.querySelectorAll('.mermaid');
var i; var i;