Skip to content

Commit

Permalink
Fix bug on data attributes for first vertical slide.
Browse files Browse the repository at this point in the history
The first slide of a vertical stack see some data attributes ignored.

Mainly the data-transition one.

Repeat all data-attributes on the wrapping section element.

Ignore any other attributes (like 'id="xxx"'), in order to not
mess with internal links (by repeating twice an id).
  • Loading branch information
VonC committed Nov 4, 2013
1 parent c51ab74 commit f6445a0
Showing 1 changed file with 14 additions and 1 deletion.
15 changes: 14 additions & 1 deletion plugin/markdown/markdown.js
Expand Up @@ -178,12 +178,25 @@
for( var i = 0, len = sectionStack.length; i < len; i++ ) {
// vertical
if( sectionStack[i] instanceof Array ) {
markdownSections += '<section '+ options.attributes +'>';
// 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] : "";
if( slideAttributes != "") {
// console.log('all attr=' + 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 || ''; });
// console.log('new attr=' + dataAttributes );
markdownSections += '<section '+ options.attributes + ' ' + dataAttributes + '>';
}

sectionStack[i].forEach( function( child ) {
matchAttributes = slideAttributesSeparatorRegex.exec(child);
slideAttributes = matchAttributes ? matchAttributes[1] : "";
child = matchAttributes ? child.replace(slideAttributesSeparatorRegex,"") : child
// console.log('slide attributes ' + options.slideAttributesSeparator + ' => ' + slideAttributes)
markdownSections += '<section ' + slideAttributes + ' data-markdown>' + createMarkdownSlide( child, options ) + '</section>';
} );

Expand Down

0 comments on commit f6445a0

Please sign in to comment.