forward all attributes for markdown slides (#413)
This commit is contained in:
parent
6536d8467f
commit
914a12e9cf
1 changed files with 35 additions and 6 deletions
|
@ -31,7 +31,29 @@
|
|||
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$';
|
||||
|
||||
|
@ -77,9 +99,16 @@
|
|||
|
||||
// flatten the hierarchical stack, and insert <section data-markdown> tags
|
||||
for( var k = 0, klen = sectionStack.length; k < klen; k++ ) {
|
||||
markdownSections += typeof sectionStack[k] === 'string'
|
||||
? '<section data-state="' + state + '" data-markdown>' + twrap( sectionStack[k] ) + '</section>'
|
||||
: '<section data-state="' + state + '"><section data-markdown>' + sectionStack[k].map(twrap).join('</section><section data-markdown>') + '</section></section>';
|
||||
// horizontal
|
||||
if( typeof sectionStack[k] === 'string' ) {
|
||||
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;
|
||||
|
@ -102,7 +131,7 @@
|
|||
xhr.onreadystatechange = function () {
|
||||
if( xhr.readyState === 4 ) {
|
||||
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 {
|
||||
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.' +
|
||||
|
@ -121,7 +150,7 @@
|
|||
} else if( section.getAttribute('data-separator') ) {
|
||||
|
||||
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) );
|
||||
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue