Remove section attribute implementation.
authorVonC <vonc@laposte.net>
Mon, 25 Nov 2013 21:05:23 +0000 (22:05 +0100)
committerVonC <vonc@laposte.net>
Sat, 30 Nov 2013 22:12:38 +0000 (23:12 +0100)
plugin/markdown/markdown.js

index d39956990d414d2cca49a31ad5d67500aa6536a2..d606a4b0684651df45923fe9969ffe17accf0716 100755 (executable)
@@ -97,7 +97,6 @@
                options.separator = options.separator || DEFAULT_SLIDE_SEPARATOR;
                options.notesSeparator = options.notesSeparator || DEFAULT_NOTES_SEPARATOR;
                options.attributes = options.attributes || '';
-               options.slideAttributesSeparator = options.slideAttributesSeparator || DEFAULT_SLIDE_ATTRIBUTES_SEPARATOR;
 
                return options;
 
                options = getSlidifyOptions( options );
 
                var separatorRegex = new RegExp( options.separator + ( options.verticalSeparator ? '|' + options.verticalSeparator : '' ), 'mg' ),
-                       horizontalSeparatorRegex = new RegExp( options.separator ),
-                       slideAttributesSeparatorRegex = new RegExp( options.slideAttributesSeparator, 'm' );
+                       horizontalSeparatorRegex = new RegExp( options.separator );
 
                var matches,
                        lastIndex = 0,
                        isHorizontal,
                        wasHorizontal = true,
                        content,
-                       sectionStack = [],
-                       matchAttributes,
-                       slideAttributes = "";
+                       sectionStack = [];
 
                // iterate until all blocks between separators are stacked up
                while( matches = separatorRegex.exec( markdown ) ) {
                for( var i = 0, len = sectionStack.length; i < len; i++ ) {
                        // vertical
                        if( sectionStack[i] instanceof Array ) {
-                               // The 'data-xxx' attributes of the first child must be set on the wrapping parent section to be effective
-                               // Mainly for data-transition (otherwise, it is ignored for the first vertical slide)
-                               firstChild = sectionStack[i][0];
-                               matchAttributes = slideAttributesSeparatorRegex.exec( firstChild );
-                               slideAttributes = matchAttributes ? matchAttributes[1] : "";
-                               dataAttributes = "";
-                               if( slideAttributes != "" ) {
-                                       // http://stackoverflow.com/questions/18025762/javascript-regex-replace-all-word-characters-except-word-characters-between-ch
-                                       // Keep only data-attributes for the parent slide section.
-                                       dataAttributes = slideAttributes.replace( /(data-\S+=\"[^\"]+?\")|\w|[\"=]/g, function(a, b) { return b || ''; });
-                               }
-                               markdownSections += '<section '+ options.attributes + ' ' + dataAttributes + '>';
+                               markdownSections += '<section '+ options.attributes +'>';
 
                                sectionStack[i].forEach( function( child ) {
-                                       matchAttributes = slideAttributesSeparatorRegex.exec( child );
-                                       slideAttributes = matchAttributes ? matchAttributes[1] : "";
-                                       child = matchAttributes ? child.replace( slideAttributesSeparatorRegex,"" ) : child
-                                       markdownSections += '<section ' + slideAttributes + ' data-markdown>' +  createMarkdownSlide( child, options ) + '</section>';
+                                       markdownSections += '<section data-markdown>' +  createMarkdownSlide( child, options ) + '</section>';
                                } );
 
                                markdownSections += '</section>';
                        }
                        else {
-                               matchAttributes = slideAttributesSeparatorRegex.exec( sectionStack[i] );
-                               slideAttributes = matchAttributes ? matchAttributes[1] : "";
-                               content = matchAttributes ? sectionStack[i].replace( slideAttributesSeparatorRegex,"" ) : sectionStack[i]
-                               markdownSections += '<section '+ options.attributes + ' ' + slideAttributes +' data-markdown>' + createMarkdownSlide( content, options ) + '</section>';
+                               markdownSections += '<section '+ options.attributes +' data-markdown>' + createMarkdownSlide( sectionStack[i], options ) + '</section>';
                        }
                }
+
                return markdownSections;
 
        }
                                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' ),
                                                                notesSeparator: section.getAttribute( 'data-notes' ),
-                                                               attributes: getForwardedAttributes( section ),
-                                                               slideAttributesSeparator: section.getAttribute( 'data-attributes' ),
+                                                               attributes: getForwardedAttributes( section )
                                                        });
 
                                                }
                                        separator: section.getAttribute( 'data-separator' ),
                                        verticalSeparator: section.getAttribute( 'data-vertical' ),
                                        notesSeparator: section.getAttribute( 'data-notes' ),
-                                       attributes: getForwardedAttributes( section ),
-                                       slideAttributesSeparator: section.getAttribute( 'data-attributes' ),
+                                       attributes: getForwardedAttributes( section )
                                });
 
                        }
                        else {
-                               var content = getMarkdownFromSlide( section );
-                               var slideAttributesSeparatorRegex = new RegExp( section.getAttribute( 'data-attributes' )  || DEFAULT_SLIDE_ATTRIBUTES_SEPARATOR, 'm' );
-                               var matchAttributes = slideAttributesSeparatorRegex.exec( content );
-                               if ( matchAttributes ) {
-                                 var slideAttributes = matchAttributes[1];
-                                 content = content.replace( slideAttributesSeparatorRegex,"" );
-                                       var slideAttributesRegex = new RegExp( "([^\"= ]+?)=\"([^\"=]+?)\"", 'mg' );
-                                       while( matchesAttributes = slideAttributesRegex.exec( slideAttributes ) ) {
-                                               section.setAttribute( matchesAttributes[1], matchesAttributes[2] );
-                                       }
-                               }
-                               section.innerHTML = createMarkdownSlide( content );
+                               section.innerHTML = createMarkdownSlide( getMarkdownFromSlide( section ) );
                        }
                }
 
         */
        function addAttributes( section, element, previousElement, separatorElementAttributes, separatorSectionAttributes ) {
 
-        console.log("element='" + element.innerHTML + "', nodeType='" + element.nodeType + "'");
+               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 ) {