12
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								README.md
									
									
									
									
									
								
							| @@ -160,6 +160,18 @@ Special syntax (in html comment) is available for adding attributes to the slide | ||||
| </section> | ||||
| ``` | ||||
|  | ||||
| #### Configuring `marked` | ||||
|  | ||||
| We use [marked](https://github.com/chjj/marked) to parse Markdown. To customise marked's rendering, you can pass in options when [configuring Reveal](#configuration): | ||||
|  | ||||
| ```javascript | ||||
| Reveal.initialize({ | ||||
| 	// Options which are passed into marked | ||||
| 	// See https://github.com/chjj/marked#options-1 | ||||
| 	markdown: { | ||||
| 		smartypants: true | ||||
| 	} | ||||
| }); | ||||
|  | ||||
| ### Configuration | ||||
|  | ||||
|   | ||||
| @@ -17,18 +17,6 @@ | ||||
| 	} | ||||
| }( this, function( marked ) { | ||||
|  | ||||
| 	if( typeof marked === 'undefined' ) { | ||||
| 		throw 'The reveal.js Markdown plugin requires marked to be loaded'; | ||||
| 	} | ||||
|  | ||||
| 	if( typeof hljs !== 'undefined' ) { | ||||
| 		marked.setOptions({ | ||||
| 			highlight: function( code, lang ) { | ||||
| 				return hljs.highlightAuto( code, [lang] ).value; | ||||
| 			} | ||||
| 		}); | ||||
| 	} | ||||
|  | ||||
| 	var DEFAULT_SLIDE_SEPARATOR = '^\r?\n---\r?\n$', | ||||
| 		DEFAULT_NOTES_SEPARATOR = 'note:', | ||||
| 		DEFAULT_ELEMENT_ATTRIBUTES_SEPARATOR = '\\\.element\\\s*?(.+?)$', | ||||
| @@ -189,7 +177,7 @@ | ||||
| 				markdownSections += '<section '+ options.attributes +'>'; | ||||
|  | ||||
| 				sectionStack[i].forEach( function( child ) { | ||||
| 					markdownSections += '<section data-markdown>' +  createMarkdownSlide( child, options ) + '</section>'; | ||||
| 					markdownSections += '<section data-markdown>' + createMarkdownSlide( child, options ) + '</section>'; | ||||
| 				} ); | ||||
|  | ||||
| 				markdownSections += '</section>'; | ||||
| @@ -391,6 +379,24 @@ | ||||
| 	return { | ||||
|  | ||||
| 		initialize: function() { | ||||
| 			if( typeof marked === 'undefined' ) { | ||||
| 				throw 'The reveal.js Markdown plugin requires marked to be loaded'; | ||||
| 			} | ||||
|  | ||||
| 			if( typeof hljs !== 'undefined' ) { | ||||
| 				marked.setOptions({ | ||||
| 					highlight: function( code, lang ) { | ||||
| 						return hljs.highlightAuto( code, [lang] ).value; | ||||
| 					} | ||||
| 				}); | ||||
| 			} | ||||
|  | ||||
| 			var options = Reveal.getConfig().markdown; | ||||
|  | ||||
| 			if ( options ) { | ||||
| 				marked.setOptions( options ); | ||||
| 			} | ||||
|  | ||||
| 			processSlides(); | ||||
| 			convertSlides(); | ||||
| 		}, | ||||
|   | ||||
							
								
								
									
										41
									
								
								test/test-markdown-options.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								test/test-markdown-options.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,41 @@ | ||||
| <!doctype html> | ||||
| <html lang="en"> | ||||
|  | ||||
| 	<head> | ||||
| 		<meta charset="utf-8"> | ||||
|  | ||||
| 		<title>reveal.js - Test Markdown Options</title> | ||||
|  | ||||
| 		<link rel="stylesheet" href="../css/reveal.css"> | ||||
| 		<link rel="stylesheet" href="qunit-1.12.0.css"> | ||||
| 	</head> | ||||
|  | ||||
| 	<body style="overflow: auto;"> | ||||
|  | ||||
| 		<div id="qunit"></div> | ||||
| 		<div id="qunit-fixture"></div> | ||||
|  | ||||
| 		<div class="reveal" style="display: none;"> | ||||
|  | ||||
| 			<div class="slides"> | ||||
|  | ||||
| 				<section data-markdown> | ||||
| 					<script type="text/template"> | ||||
| 						## Testing Markdown Options | ||||
|  | ||||
| 						This "slide" should contain 'smart' quotes. | ||||
| 					</script> | ||||
| 				</section> | ||||
|  | ||||
| 			</div> | ||||
|  | ||||
| 		</div> | ||||
|  | ||||
| 		<script src="../lib/js/head.min.js"></script> | ||||
| 		<script src="../js/reveal.js"></script> | ||||
| 		<script src="qunit-1.12.0.js"></script> | ||||
|  | ||||
| 		<script src="test-markdown-options.js"></script> | ||||
|  | ||||
| 	</body> | ||||
| </html> | ||||
							
								
								
									
										26
									
								
								test/test-markdown-options.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								test/test-markdown-options.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,26 @@ | ||||
| Reveal.addEventListener( 'ready', function() { | ||||
|  | ||||
| 	QUnit.module( 'Markdown' ); | ||||
|  | ||||
| 	test( 'Options are set', function() { | ||||
| 		strictEqual( marked.defaults.smartypants, true ); | ||||
| 	}); | ||||
|  | ||||
| 	test( 'Smart quotes are activated', function() { | ||||
| 		var text = document.querySelector( '.reveal .slides>section>p' ).textContent; | ||||
|  | ||||
| 		strictEqual( /['"]/.test( text ), false ); | ||||
| 		strictEqual( /[“”‘’]/.test( text ), true ); | ||||
| 	}); | ||||
|  | ||||
| } ); | ||||
|  | ||||
| Reveal.initialize({ | ||||
| 	dependencies: [ | ||||
| 		{ src: '../plugin/markdown/marked.js' }, | ||||
| 		{ src: '../plugin/markdown/markdown.js' }, | ||||
| 	], | ||||
| 	markdown: { | ||||
| 		smartypants: true | ||||
| 	} | ||||
| }); | ||||
| @@ -13,7 +13,7 @@ | ||||
| 	<body style="overflow: auto;"> | ||||
|  | ||||
| 		<div id="qunit"></div> | ||||
|   		<div id="qunit-fixture"></div> | ||||
| 		<div id="qunit-fixture"></div> | ||||
|  | ||||
| 		<div class="reveal" style="display: none;"> | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user