forward all attributes for markdown slides (#413)
This commit is contained in:
		| @@ -31,7 +31,29 @@ | |||||||
|       return '<script type="text/template">' + el + '</script>'; |       return '<script type="text/template">' + el + '</script>'; | ||||||
|     }; |     }; | ||||||
|  |  | ||||||
|     var slidifyMarkdown = function(markdown, separator, vertical, state) { |     var getForwardedAttributes = function(section) { | ||||||
|  |         var attributes = section.attributes; | ||||||
|  |         var result = []; | ||||||
|  |  | ||||||
|  |         for( var i = 0, len = attributes.length; i < len; i++ ) { | ||||||
|  |             var name = attributes[i].name, | ||||||
|  |                 value = attributes[i].value; | ||||||
|  |  | ||||||
|  |             // disregard attributes that are used for markdown loading/parsing | ||||||
|  |             if( /data\-(markdown|separator|vertical)/gi.test( name ) ) continue; | ||||||
|  |  | ||||||
|  |             if( value ) { | ||||||
|  |                 result.push( name + '=' + value ); | ||||||
|  |             } | ||||||
|  |             else { | ||||||
|  |                 result.push( name ); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         return result.join( ' ' ); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     var slidifyMarkdown = function(markdown, separator, vertical, attributes) { | ||||||
|  |  | ||||||
|         separator = separator || '^\n---\n$'; |         separator = separator || '^\n---\n$'; | ||||||
|  |  | ||||||
| @@ -77,9 +99,16 @@ | |||||||
|  |  | ||||||
|         // flatten the hierarchical stack, and insert <section data-markdown> tags |         // flatten the hierarchical stack, and insert <section data-markdown> tags | ||||||
|         for( var k = 0, klen = sectionStack.length; k < klen; k++ ) { |         for( var k = 0, klen = sectionStack.length; k < klen; k++ ) { | ||||||
|             markdownSections += typeof sectionStack[k] === 'string' |             // horizontal | ||||||
|                 ? '<section data-state="' + state + '" data-markdown>' +  twrap( sectionStack[k] )  + '</section>' |             if( typeof sectionStack[k] === 'string' ) { | ||||||
|                 : '<section data-state="' + state + '"><section data-markdown>' +  sectionStack[k].map(twrap).join('</section><section data-markdown>') + '</section></section>'; |                 markdownSections += '<section '+ attributes +' data-markdown>' +  twrap( sectionStack[k] )  + '</section>'; | ||||||
|  |             } | ||||||
|  |             // vertical | ||||||
|  |             else { | ||||||
|  |                 markdownSections += '<section '+ attributes +'>' + | ||||||
|  |                                         '<section data-markdown>' +  sectionStack[k].map(twrap).join('</section><section data-markdown>') + '</section>' + | ||||||
|  |                                     '</section>'; | ||||||
|  |             } | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         return markdownSections; |         return markdownSections; | ||||||
| @@ -102,7 +131,7 @@ | |||||||
|                 xhr.onreadystatechange = function () { |                 xhr.onreadystatechange = function () { | ||||||
|                     if( xhr.readyState === 4 ) { |                     if( xhr.readyState === 4 ) { | ||||||
|                         if (xhr.status >= 200 && xhr.status < 300) { |                         if (xhr.status >= 200 && xhr.status < 300) { | ||||||
|                             section.outerHTML = slidifyMarkdown( xhr.responseText, section.getAttribute('data-separator'), section.getAttribute('data-vertical'), section.getAttribute('data-state')); |                             section.outerHTML = slidifyMarkdown( xhr.responseText, section.getAttribute('data-separator'), section.getAttribute('data-vertical'), getForwardedAttributes(section) ); | ||||||
|                         } else { |                         } else { | ||||||
|                             section.outerHTML = '<section data-state="alert">ERROR: The attempt to fetch ' + url + ' failed with the HTTP status ' + xhr.status + |                             section.outerHTML = '<section data-state="alert">ERROR: The attempt to fetch ' + url + ' failed with the HTTP status ' + xhr.status + | ||||||
|                                 '. Check your browser\'s JavaScript console for more details.' + |                                 '. Check your browser\'s JavaScript console for more details.' + | ||||||
| @@ -121,7 +150,7 @@ | |||||||
|             } else if( section.getAttribute('data-separator') ) { |             } else if( section.getAttribute('data-separator') ) { | ||||||
|  |  | ||||||
|                 var markdown = stripLeadingWhitespace(section); |                 var markdown = stripLeadingWhitespace(section); | ||||||
|                 section.outerHTML = slidifyMarkdown( markdown, section.getAttribute('data-separator'), section.getAttribute('data-vertical') ); |                 section.outerHTML = slidifyMarkdown( markdown, section.getAttribute('data-separator'), section.getAttribute('data-vertical'), getForwardedAttributes(section) ); | ||||||
|  |  | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user