fix issue with notes on last slide of external markdown #589
This commit is contained in:
		| @@ -27,6 +27,10 @@ | |||||||
| 		}); | 		}); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | 	var DEFAULT_SLIDE_SEPARATOR = '^\n---\n$', | ||||||
|  | 		DEFAULT_NOTES_SEPARATOR = 'note:'; | ||||||
|  |  | ||||||
|  |  | ||||||
| 	/** | 	/** | ||||||
| 	 * Retrieves the markdown contents of a slide section | 	 * Retrieves the markdown contents of a slide section | ||||||
| 	 * element. Normalizes leading tabs/whitespace. | 	 * element. Normalizes leading tabs/whitespace. | ||||||
| @@ -82,11 +86,28 @@ | |||||||
|  |  | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | 	/** | ||||||
|  | 	 * Inspects the given options and fills out default | ||||||
|  | 	 * values for what's not defined. | ||||||
|  | 	 */ | ||||||
|  | 	function getSlidifyOptions( options ) { | ||||||
|  |  | ||||||
|  | 		options = options || {}; | ||||||
|  | 		options.separator = options.separator || DEFAULT_SLIDE_SEPARATOR; | ||||||
|  | 		options.notesSeparator = options.notesSeparator || DEFAULT_NOTES_SEPARATOR; | ||||||
|  | 		options.attributes = options.attributes || ''; | ||||||
|  |  | ||||||
|  | 		return options; | ||||||
|  |  | ||||||
|  | 	} | ||||||
|  |  | ||||||
| 	/** | 	/** | ||||||
| 	 * Helper function for constructing a markdown slide. | 	 * Helper function for constructing a markdown slide. | ||||||
| 	 */ | 	 */ | ||||||
| 	function createMarkdownSlide( content, options ) { | 	function createMarkdownSlide( content, options ) { | ||||||
|  |  | ||||||
|  | 		options = getSlidifyOptions( options ); | ||||||
|  |  | ||||||
| 		var notesMatch = content.split( new RegExp( options.notesSeparator, 'mgi' ) ); | 		var notesMatch = content.split( new RegExp( options.notesSeparator, 'mgi' ) ); | ||||||
|  |  | ||||||
| 		if( notesMatch.length === 2 ) { | 		if( notesMatch.length === 2 ) { | ||||||
| @@ -103,10 +124,7 @@ | |||||||
| 	 */ | 	 */ | ||||||
| 	function slidify( markdown, options ) { | 	function slidify( markdown, options ) { | ||||||
|  |  | ||||||
| 		options = options || {}; | 		options = getSlidifyOptions( options ); | ||||||
| 		options.separator = options.separator || '^\n---\n$'; |  | ||||||
| 		options.notesSeparator = options.notesSeparator || 'note:'; |  | ||||||
| 		options.attributes = options.attributes || ''; |  | ||||||
|  |  | ||||||
| 		var separatorRegex = new RegExp( options.separator + ( options.verticalSeparator ? '|' + options.verticalSeparator : '' ), 'mg' ), | 		var separatorRegex = new RegExp( options.separator + ( options.verticalSeparator ? '|' + options.verticalSeparator : '' ), 'mg' ), | ||||||
| 			horizontalSeparatorRegex = new RegExp( options.separator ); | 			horizontalSeparatorRegex = new RegExp( options.separator ); | ||||||
| @@ -232,7 +250,7 @@ | |||||||
| 				} | 				} | ||||||
|  |  | ||||||
| 			} | 			} | ||||||
| 			else if( section.getAttribute( 'data-separator' ) ) { | 			else if( section.getAttribute( 'data-separator' ) || section.getAttribute( 'data-vertical' ) || section.getAttribute( 'data-notes' ) ) { | ||||||
|  |  | ||||||
| 				section.outerHTML = slidify( getMarkdownFromSlide( section ), { | 				section.outerHTML = slidify( getMarkdownFromSlide( section ), { | ||||||
| 					separator: section.getAttribute( 'data-separator' ), | 					separator: section.getAttribute( 'data-separator' ), | ||||||
| @@ -242,6 +260,11 @@ | |||||||
| 				}); | 				}); | ||||||
|  |  | ||||||
| 			} | 			} | ||||||
|  | 			else { | ||||||
|  |  | ||||||
|  | 				section.innerHTML = createMarkdownSlide( getMarkdownFromSlide( section ) ); | ||||||
|  |  | ||||||
|  | 			} | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
| 	} | 	} | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user