<!doctype html>
<html lang="en">

	<head>
		<meta charset="utf-8">

		<title>reveal.js - Test Markdown Element Attributes</title>

		<link rel="stylesheet" href="../dist/reveal.css">
		<link rel="stylesheet" href="qunit-2.5.0.css">
		<script src="qunit-2.5.0.js"></script>
	</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="example.md" data-separator="^\n\n\n" data-separator-vertical="^\n\n"></section> -->

				<!-- Slides are separated by newline + three dashes + newline, vertical slides identical but two dashes -->
				<section data-markdown data-separator="^\n---\n$" data-separator-vertical="^\n--\n$" data-element-attributes="{_\s*?([^}]+?)}">>
					<script type="text/template">
						## Slide 1.1
						<!-- {_class="fragment fade-out" data-fragment-index="1"} -->

						--

						## Slide 1.2
						<!-- {_class="fragment shrink"} -->

						Paragraph 1
						<!-- {_class="fragment grow"} -->

						Paragraph 2
						<!-- {_class="fragment grow"} -->

						- list item 1 <!-- {_class="fragment grow"} -->
						- list item 2 <!-- {_class="fragment grow"} -->
						- list item 3 <!-- {_class="fragment grow"} -->


						---

						## Slide 2


						Paragraph 1.2  
						multi-line <!-- {_class="fragment highlight-red"} -->

						Paragraph 2.2 <!-- {_class="fragment highlight-red"} -->

						Paragraph 2.3 <!-- {_class="fragment highlight-red"} -->

						Paragraph 2.4 <!-- {_class="fragment highlight-red"} -->

						- list item 1 <!-- {_class="fragment highlight-green"} -->
						- list item 2<!-- {_class="fragment highlight-green"} -->
						- list item 3<!-- {_class="fragment highlight-green"} -->
						- list item 4
						<!-- {_class="fragment highlight-green"} -->
						- list item 5<!-- {_class="fragment highlight-green"} -->

						Test

						![Example Picture](examples/assets/image2.png) <!-- {_class="reveal stretch"} -->

					</script>
				</section>



				<section 	data-markdown data-separator="^\n\n\n"
									data-separator-vertical="^\n\n"
									data-separator-notes="^Note:"
									data-charset="utf-8">
					<script type="text/template">
						# Test attributes in Markdown with default separator
						## Slide 1 Def <!-- .element: class="fragment highlight-red" data-fragment-index="1" -->


						## Slide 2 Def
						<!-- .element: class="fragment highlight-red" -->

					</script>
				</section>

				<section data-markdown>
				  <script type="text/template">
					## Hello world
					A paragraph
					<!-- .element: class="fragment highlight-blue" -->
				  </script>
				</section>

				<section data-markdown>
				  <script type="text/template">
					## Hello world

					Multiple  
					Line
					<!-- .element: class="fragment highlight-blue" -->
				  </script>
				</section>

				<section data-markdown>
				  <script type="text/template">
					## Hello world

					Test<!-- .element: class="fragment highlight-blue" -->

					More Test
				  </script>
				</section>


			</div>

		</div>

		<script src="../dist/reveal.min.js"></script>
		<script>
			Reveal.initialize({
				dependencies: [
					{ src: '../plugin/markdown/marked.js' },
					{ src: '../plugin/markdown/markdown.js' },
				]
			}).then( function() {

				QUnit.module( 'Markdown' );

				QUnit.test( 'Vertical separator', function( assert ) {
					assert.strictEqual( document.querySelectorAll( '.reveal .slides>section>section' ).length, 4, 'found four slides' );
				});

				QUnit.test( 'Attributes on element header in vertical slides', function( assert ) {
					assert.strictEqual( document.querySelectorAll( '.reveal .slides section>section h2.fragment.fade-out' ).length, 1, 'found one vertical slide with class fragment.fade-out on header' );
					assert.strictEqual( document.querySelectorAll( '.reveal .slides section>section h2.fragment.shrink' ).length, 1, 'found one vertical slide with class fragment.shrink on header' );
				});

				QUnit.test( 'Attributes on element paragraphs in vertical slides', function( assert ) {
					assert.strictEqual( document.querySelectorAll( '.reveal .slides section>section p.fragment.grow' ).length, 2, 'found a vertical slide with two paragraphs with class fragment.grow' );
				});

				QUnit.test( 'Attributes on element list items in vertical slides', function( assert ) {
					assert.strictEqual( document.querySelectorAll( '.reveal .slides section>section li.fragment.grow' ).length, 3, 'found a vertical slide with three list items with class fragment.grow' );
				});

				QUnit.test( 'Attributes on element paragraphs in horizontal slides', function( assert ) {
					assert.strictEqual( document.querySelectorAll( '.reveal .slides section p.fragment.highlight-red' ).length, 4, 'found a horizontal slide with four paragraphs with class fragment.grow' );
				});

				QUnit.test( 'Attributes on element list items in horizontal slides', function( assert ) {
					assert.strictEqual( document.querySelectorAll( '.reveal .slides section li.fragment.highlight-green' ).length, 5, 'found a horizontal slide with five list items with class fragment.roll-in' );
				});

				QUnit.test( 'Attributes on element image in horizontal slides', function( assert ) {
					assert.strictEqual( document.querySelectorAll( '.reveal .slides section img.reveal.stretch' ).length, 1, 'found a horizontal slide with stretched image, class img.reveal.stretch' );
				});

				QUnit.test( 'Attributes on elements in vertical slides with default element attribute separator', function( assert ) {
					assert.strictEqual( document.querySelectorAll( '.reveal .slides section h2.fragment.highlight-red' ).length, 2, 'found two h2 titles with fragment highlight-red in vertical slides with default element attribute separator' );
				});

				QUnit.test( 'Attributes on elements in single slides with default element attribute separator', function( assert ) {
					assert.strictEqual( document.querySelectorAll( '.reveal .slides section p.fragment.highlight-blue' ).length, 3, 'found three elements with fragment highlight-blue in single slide with default element attribute separator' );
				});

			} );
		</script>

	</body>
</html>