diff options
-rwxr-xr-x | plugin/markdown/markdown.js | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/plugin/markdown/markdown.js b/plugin/markdown/markdown.js index 3219e96..fccc442 100755 --- a/plugin/markdown/markdown.js +++ b/plugin/markdown/markdown.js @@ -28,6 +28,7 @@ var DEFAULT_SLIDE_SEPARATOR = '^\n---\n$', DEFAULT_NOTES_SEPARATOR = 'note:'; + DEFAULT_ELEMENT_ATTRIBUTES_SEPARATOR = '{\\\.\s*?([^}]+?)}'; /** @@ -218,7 +219,6 @@ xhr.onreadystatechange = function() { if( xhr.readyState === 4 ) { if ( xhr.status >= 200 && xhr.status < 300 ) { - section.outerHTML = slidify( xhr.responseText, { separator: section.getAttribute( 'data-separator' ), verticalSeparator: section.getAttribute( 'data-vertical' ), @@ -277,8 +277,8 @@ * directly on refresh (F5) * http://stackoverflow.com/questions/5690269/disabling-chrome-cache-for-website-development/7000899#answer-11786277 */ - function addAttributeInElement( node, elementTarget ){ - var mardownClassesInElementsRegex = new RegExp( "{\\\.\s*?([^}]+?)}", 'mg' ); + function addAttributeInElement( node, elementTarget, separator ){ + var mardownClassesInElementsRegex = new RegExp( separator, 'mg' ); var mardownClassRegex = new RegExp( "([^\"= ]+?)=\"([^\"=]+?)\"", 'mg' ); var nodeValue = node.nodeValue; if ( matches = mardownClassesInElementsRegex.exec( nodeValue ) ) { @@ -297,24 +297,24 @@ * Add attributes to the parent element of a text node, * or the element of an attribute node. */ - function addAttributes( element ) + function addAttributes( element, separator ) { if ( element.childNodes.length > 0 ) { for ( var i = 0; i < element.childNodes.length; i++ ) { - addAttributes( element.childNodes[i] ); + addAttributes( element.childNodes[i], separator ); } } var nodeValue; var elementTarget; // From http://stackoverflow.com/questions/9178174/find-all-text-nodes if ( element.nodeType == Node.TEXT_NODE && /\S/.test(element.nodeValue) ) { - addAttributeInElement( element, element.parentNode ); + addAttributeInElement( element, element.parentNode, separator ); } if ( element.nodeType == Node.ELEMENT_NODE && element.attributes.length > 0 ) { for ( iattr=0; iattr<element.attributes.length; iattr++ ){ var attr = element.attributes[iattr]; - addAttributeInElement(attr, element) + addAttributeInElement(attr, element, separator ) } } } @@ -340,7 +340,9 @@ var markdown = getMarkdownFromSlide( section ); section.innerHTML = marked( markdown ); - addAttributes( section ); + addAttributes( section, section.getAttribute( 'data-element-attributes' ) || + section.parentNode.getAttribute( 'data-element-attributes' ) || + DEFAULT_ELEMENT_ATTRIBUTES_SEPARATOR ); // If there were notes, we need to re-add them after // having overwritten the section's HTML |