Fix bug on data attributes for first vertical slide.
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).
This commit is contained in:
		@@ -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>';
 | 
			
		||||
				} );
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user