diff options
-rwxr-xr-x | plugin/markdown/markdown.js | 43 | ||||
-rw-r--r-- | test/test-markdown-attributes.html | 2 | ||||
-rw-r--r-- | test/test-markdown-element-attributes.html | 4 |
3 files changed, 35 insertions, 14 deletions
diff --git a/plugin/markdown/markdown.js b/plugin/markdown/markdown.js index 9564208..d399569 100755 --- a/plugin/markdown/markdown.js +++ b/plugin/markdown/markdown.js @@ -323,33 +323,50 @@ while( matchesClass = mardownClassRegex.exec( classes ) ) { elementTarget.setAttribute( matchesClass[1], matchesClass[2] ); } + return true; } - + return false; } /** * Add attributes to the parent element of a text node, * or the element of an attribute node. */ - function addAttributes( element, separator ) { + function addAttributes( section, element, previousElement, separatorElementAttributes, separatorSectionAttributes ) { - if( element.childNodes.length > 0 ) { + console.log("element='" + element.innerHTML + "', nodeType='" + element.nodeType + "'"); + console.log("previousElement="+previousElement) + console.log("section=****"+section.outerHTML+"****"); + if( element != null && element.childNodes != undefined && element.childNodes.length > 0 ) { + previousParentElement = element; for( var i = 0; i < element.childNodes.length; i++ ) { - addAttributes( element.childNodes[i], separator ); + childElement = element.childNodes[i]; + console.log(" Child element='" + childElement.innerHTML + "'"); + if ( i > 0 ) { + previousParentElement = element.childNodes[i-1]; + } + parentSection = section; + if( childElement.nodeName == "section" ) { + parentSection = childElement ; + previousParentElement = childElement ; + } + addAttributes( parentSection, childElement, previousParentElement, separatorElementAttributes, separatorSectionAttributes ); } } - var nodeValue; - var elementTarget; - + if ( element.nodeType == Node.COMMENT_NODE ) { + if ( addAttributeInElement( element, previousElement, separatorElementAttributes ) == false ) { + addAttributeInElement( element, section, separatorSectionAttributes); + } + } // From http://stackoverflow.com/questions/9178174/find-all-text-nodes if( element.nodeType == Node.TEXT_NODE && /\S/.test(element.nodeValue) ) { - addAttributeInElement( element, element.parentNode, separator ); + addAttributeInElement( element, element.parentNode, separatorElementAttributes ); } if( element.nodeType == Node.ELEMENT_NODE && element.attributes.length > 0 ) { for( var j = 0; j < element.attributes.length; j++ ){ var attr = element.attributes[j]; - addAttributeInElement( attr, element, separator ); + addAttributeInElement( attr, element, separatorElementAttributes ); } } @@ -376,9 +393,13 @@ var markdown = getMarkdownFromSlide( section ); section.innerHTML = marked( markdown ); - addAttributes( section, section.getAttribute( 'data-element-attributes' ) || + //console.log("markdown="+markdown); + addAttributes( section, section, null, section.getAttribute( 'data-element-attributes' ) || section.parentNode.getAttribute( 'data-element-attributes' ) || - DEFAULT_ELEMENT_ATTRIBUTES_SEPARATOR ); + DEFAULT_ELEMENT_ATTRIBUTES_SEPARATOR, + section.getAttribute( 'data-attributes' ) || + section.parentNode.getAttribute( 'data-attributes' ) || + DEFAULT_SLIDE_ATTRIBUTES_SEPARATOR); // If there were notes, we need to re-add them after // having overwritten the section's HTML diff --git a/test/test-markdown-attributes.html b/test/test-markdown-attributes.html index cc03177..8f77dac 100644 --- a/test/test-markdown-attributes.html +++ b/test/test-markdown-attributes.html @@ -15,7 +15,7 @@ <div id="qunit"></div> <div id="qunit-fixture"></div> - <div class="reveal" style="display: none;"> + <div class="reveal" style="display: true;"> <div class="slides"> diff --git a/test/test-markdown-element-attributes.html b/test/test-markdown-element-attributes.html index 417ce30..e9f4038 100644 --- a/test/test-markdown-element-attributes.html +++ b/test/test-markdown-element-attributes.html @@ -15,7 +15,7 @@ <div id="qunit"></div> <div id="qunit-fixture"></div> - <div class="reveal" style="display: none;"> + <div class="reveal" style="display: true;"> <div class="slides"> @@ -44,7 +44,7 @@ ## Slide 2 - Paragraph 1.2 + Paragraph 1.2 multi-line {_class="fragment highlight-red"} Paragraph 2.2 {_class="fragment highlight-red"} |