diff options
-rw-r--r-- | README | 11 | ||||
-rw-r--r-- | man/man1/pandoc.1.md | 4 | ||||
-rw-r--r-- | src/Text/Pandoc/Shared.hs | 2 | ||||
-rw-r--r-- | src/Text/Pandoc/Writers/HTML.hs | 19 | ||||
-rw-r--r-- | src/pandoc.hs | 9 | ||||
-rw-r--r-- | tests/s5.fragment.html | 34 | ||||
-rw-r--r-- | tests/s5.inserts.html | 34 | ||||
-rw-r--r-- | tests/writer.html | 1984 |
8 files changed, 1027 insertions, 1070 deletions
@@ -400,6 +400,11 @@ For further documentation, see the `pandoc(1)` man page. : causes sections to be numbered in LaTeX, ConTeXt, or HTML output. By default, sections are not numbered. +`--section-divs` +: causes sections to be wrapped in `<div>` tags. In this case, + [section identifiers](#header-identifiers-in-html) + are attached to the enclosing `<div>` rather than the header itself. + `--no-wrap` : disables text-wrapping in output. By default, text is wrapped appropriately for the output format. @@ -1170,6 +1175,12 @@ another. A link to this section, for example, might look like this: Note, however, that this method of providing links to sections works only in HTML. +If the `--section-divs` option is specified, then each section will +be wrapped in a `div`, and the identifier will be attached to the +enclosing `<div>` tag rather than the header itself. This allows entire +sections to be manipulated using javascript or treated differently in +CSS. + Blank lines before headers and blockquotes ------------------------------------------ diff --git a/man/man1/pandoc.1.md b/man/man1/pandoc.1.md index e1cf67847..d8cddb1d5 100644 --- a/man/man1/pandoc.1.md +++ b/man/man1/pandoc.1.md @@ -151,6 +151,10 @@ should pipe input and output through `iconv`: : Number section headings in LaTeX, ConTeXt, or HTML output. (Default is not to number them.) +\--section-divs +: Wrap sections in `<div>` tags, and attach identifiers to the + enclosing `<div>` rather than the header itself. + \--no-wrap : Disable text wrapping in output. (Default is to wrap text.) diff --git a/src/Text/Pandoc/Shared.hs b/src/Text/Pandoc/Shared.hs index b8eb14177..633708046 100644 --- a/src/Text/Pandoc/Shared.hs +++ b/src/Text/Pandoc/Shared.hs @@ -487,6 +487,7 @@ data WriterOptions = WriterOptions , writerHTMLMathMethod :: HTMLMathMethod -- ^ How to print math in HTML , writerIgnoreNotes :: Bool -- ^ Ignore footnotes (used in making toc) , writerNumberSections :: Bool -- ^ Number sections in LaTeX + , writerSectionDivs :: Bool -- ^ Put sections in div tags in HTML , writerStrictMarkdown :: Bool -- ^ Use strict markdown syntax , writerReferenceLinks :: Bool -- ^ Use reference links in writing markdown, rst , writerWrapText :: Bool -- ^ Wrap text to line length @@ -512,6 +513,7 @@ defaultWriterOptions = , writerHTMLMathMethod = PlainMath , writerIgnoreNotes = False , writerNumberSections = False + , writerSectionDivs = True , writerStrictMarkdown = False , writerReferenceLinks = False , writerWrapText = True diff --git a/src/Text/Pandoc/Writers/HTML.hs b/src/Text/Pandoc/Writers/HTML.hs index 20022e182..e9006a39b 100644 --- a/src/Text/Pandoc/Writers/HTML.hs +++ b/src/Text/Pandoc/Writers/HTML.hs @@ -208,15 +208,16 @@ elementToHtml opts (Sec level num id' title' elements) = do innerContents <- mapM (elementToHtml opts) elements modify $ \st -> st{stSecNum = num} -- update section number header' <- blockToHtml opts (Header level title') - let stuff = header' : innerContents - return $ case writerSlideVariant opts of - SlidySlides -> toHtmlFromList stuff - S5Slides -> toHtmlFromList stuff - -- S5 gets confused by the extra divs around sections - _ | (writerStrictMarkdown opts && - not (writerTableOfContents opts)) -> - toHtmlFromList stuff - _ -> thediv ! [prefixedId opts id'] << stuff + let slides = writerSlideVariant opts `elem` [SlidySlides, S5Slides] + let header'' = header' ! [prefixedId opts id' | + not (writerStrictMarkdown opts || + writerSectionDivs opts || slides)] + let stuff = header'' : innerContents + return $ if slides -- S5 gets confused by the extra divs around sections + then toHtmlFromList stuff + else if writerSectionDivs opts + then thediv ! [prefixedId opts id'] << stuff + else toHtmlFromList stuff -- | Convert list of Note blocks to a footnote <div>. -- Assumes notes are sorted. diff --git a/src/pandoc.hs b/src/pandoc.hs index 9546d6026..cd4d65aa5 100644 --- a/src/pandoc.hs +++ b/src/pandoc.hs @@ -142,6 +142,7 @@ data Opt = Opt , optVariables :: [(String,String)] -- ^ Template variables to set , optOutputFile :: String -- ^ Name of output file , optNumberSections :: Bool -- ^ Number sections in LaTeX + , optSectionDivs :: Bool -- ^ Put sections in div tags in HTML , optIncremental :: Bool -- ^ Use incremental lists in Slidy/S5 , optXeTeX :: Bool -- ^ Format latex for xetex , optSmart :: Bool -- ^ Use smart typography @@ -182,6 +183,7 @@ defaultOpts = Opt , optVariables = [] , optOutputFile = "-" -- "-" means stdout , optNumberSections = False + , optSectionDivs = False , optIncremental = False , optXeTeX = False , optSmart = False @@ -325,6 +327,11 @@ options = (\opt -> return opt { optNumberSections = True })) "" -- "Number sections in LaTeX" + , Option "" ["section-divs"] + (NoArg + (\opt -> return opt { optSectionDivs = True })) + "" -- "Put sections in div tags in HTML" + , Option "" ["no-wrap"] (NoArg (\opt -> return opt { optWrapText = False })) @@ -643,6 +650,7 @@ main = do , optTemplate = template , optOutputFile = outputFile , optNumberSections = numberSections + , optSectionDivs = sectionDivs , optIncremental = incremental , optXeTeX = xetex , optSmart = smart @@ -782,6 +790,7 @@ main = do writerXeTeX = xetex, writerIgnoreNotes = False, writerNumberSections = numberSections, + writerSectionDivs = sectionDivs, writerStrictMarkdown = strict, writerReferenceLinks = referenceLinks, writerWrapText = wrap, diff --git a/tests/s5.fragment.html b/tests/s5.fragment.html index 32346a331..9845e1409 100644 --- a/tests/s5.fragment.html +++ b/tests/s5.fragment.html @@ -1,21 +1,17 @@ -<div id="first-slide" -><h1 - >First slide</h1 - ><ul +<h1 id="first-slide" +>First slide</h1 +><ul +><li + >first bullet</li ><li - >first bullet</li - ><li - >second bullet</li - ></ul - ></div -><div id="math" -><h1 - >Math</h1 - ><ul - ><li - ><span class="math" - >$\frac{d}{dx}f(x)=\lim_{h\to 0}\frac{f(x+h)-f(x)}{h}$</span - ></li - ></ul - ></div + >second bullet</li + ></ul +><h1 id="math" +>Math</h1 +><ul +><li + ><span class="math" + >$\frac{d}{dx}f(x)=\lim_{h\to 0}\frac{f(x+h)-f(x)}{h}$</span + ></li + ></ul > diff --git a/tests/s5.inserts.html b/tests/s5.inserts.html index 69ab6f5e1..f909850d8 100644 --- a/tests/s5.inserts.html +++ b/tests/s5.inserts.html @@ -13,26 +13,22 @@ <body> STUFF INSERTED <h1 class="title">My S5 Document</h1> -<div id="first-slide" -><h1 - >First slide</h1 - ><ul +<h1 id="first-slide" +>First slide</h1 +><ul +><li + >first bullet</li ><li - >first bullet</li - ><li - >second bullet</li - ></ul - ></div -><div id="math" -><h1 - >Math</h1 - ><ul - ><li - ><span class="math" - >$\frac{d}{dx}f(x)=\lim_{h\to 0}\frac{f(x+h)-f(x)}{h}$</span - ></li - ></ul - ></div + >second bullet</li + ></ul +><h1 id="math" +>Math</h1 +><ul +><li + ><span class="math" + >$\frac{d}{dx}f(x)=\lim_{h\to 0}\frac{f(x+h)-f(x)}{h}$</span + ></li + ></ul > STUFF INSERTED </body> diff --git a/tests/writer.html b/tests/writer.html index adf0bb9ca..72c93ee71 100644 --- a/tests/writer.html +++ b/tests/writer.html @@ -13,119 +13,96 @@ <p >This is a set of tests for pandoc. Most of them are adapted from John Gruber’s markdown test suite.</p ><hr - /><div id="headers" -><h1 - >Headers</h1 - ><div id="level-2-with-an-embedded-link" - ><h2 - >Level 2 with an <a href="/url" - >embedded link</a - ></h2 - ><div id="level-3-with-emphasis" - ><h3 - >Level 3 with <em - >emphasis</em - ></h3 - ><div id="level-4" - ><h4 - >Level 4</h4 - ><div id="level-5" - ><h5 - >Level 5</h5 - ></div - ></div - ></div - ></div - ></div -><div id="level-1" -><h1 - >Level 1</h1 - ><div id="level-2-with-emphasis" - ><h2 - >Level 2 with <em - >emphasis</em - ></h2 - ><div id="level-3" - ><h3 - >Level 3</h3 - ><p - >with no blank line</p - ></div - ></div - ><div id="level-2" - ><h2 - >Level 2</h2 - ><p - >with no blank line</p - ><hr - /></div - ></div -><div id="paragraphs" -><h1 - >Paragraphs</h1 - ><p - >Here’s a regular paragraph.</p - ><p - >In Markdown 1.0.0 and earlier. Version 8. This line turns into a list item. Because a hard-wrapped line in the middle of a paragraph looked like a list item.</p - ><p - >Here’s one with a bullet. * criminey.</p + /><h1 id="headers" +>Headers</h1 +><h2 id="level-2-with-an-embedded-link" +>Level 2 with an <a href="/url" + >embedded link</a + ></h2 +><h3 id="level-3-with-emphasis" +>Level 3 with <em + >emphasis</em + ></h3 +><h4 id="level-4" +>Level 4</h4 +><h5 id="level-5" +>Level 5</h5 +><h1 id="level-1" +>Level 1</h1 +><h2 id="level-2-with-emphasis" +>Level 2 with <em + >emphasis</em + ></h2 +><h3 id="level-3" +>Level 3</h3 +><p +>with no blank line</p +><h2 id="level-2" +>Level 2</h2 +><p +>with no blank line</p +><hr + /><h1 id="paragraphs" +>Paragraphs</h1 +><p +>Here’s a regular paragraph.</p +><p +>In Markdown 1.0.0 and earlier. Version 8. This line turns into a list item. Because a hard-wrapped line in the middle of a paragraph looked like a list item.</p +><p +>Here’s one with a bullet. * criminey.</p +><p +>There should be a hard line break<br + />here.</p +><hr + /><h1 id="block-quotes" +>Block Quotes</h1 +><p +>E-mail style:</p +><blockquote +><p + >This is a block quote. It is pretty short.</p + ></blockquote +><blockquote +><p + >Code in a block quote:</p + ><pre + ><code + >sub status { + print "working"; +} +</code + ></pre ><p - >There should be a hard line break<br - />here.</p - ><hr - /></div -><div id="block-quotes" -><h1 - >Block Quotes</h1 + >A list:</p + ><ol style="list-style-type: decimal;" + ><li + >item one</li + ><li + >item two</li + ></ol ><p - >E-mail style:</p + >Nested block quotes:</p ><blockquote ><p - >This is a block quote. It is pretty short.</p + >nested</p ></blockquote ><blockquote ><p - >Code in a block quote:</p - ><pre - ><code - >sub status { - print "working"; -} -</code - ></pre - ><p - >A list:</p - ><ol style="list-style-type: decimal;" - ><li - >item one</li - ><li - >item two</li - ></ol - ><p - >Nested block quotes:</p - ><blockquote - ><p - >nested</p - ></blockquote - ><blockquote - ><p - >nested</p - ></blockquote + >nested</p ></blockquote - ><p - >This should not be a block quote: 2 > 1.</p - ><p - >And a following paragraph.</p - ><hr - /></div -><div id="code-blocks" -><h1 - >Code Blocks</h1 - ><p - >Code:</p - ><pre - ><code - >---- (should be four hyphens) + ></blockquote +><p +>This should not be a block quote: 2 > 1.</p +><p +>And a following paragraph.</p +><hr + /><h1 id="code-blocks" +>Code Blocks</h1 +><p +>Code:</p +><pre +><code + >---- (should be four hyphens) sub status { print "working"; @@ -133,540 +110,524 @@ sub status { this code block is indented by one tab </code - ></pre - ><p - >And:</p - ><pre - ><code - > this code block is indented by two tabs + ></pre +><p +>And:</p +><pre +><code + > this code block is indented by two tabs These should not be escaped: \$ \\ \> \[ \{ </code - ></pre - ><hr - /></div -><div id="lists" -><h1 - >Lists</h1 - ><div id="unordered" - ><h2 - >Unordered</h2 - ><p - >Asterisks tight:</p - ><ul - ><li - >asterisk 1</li - ><li - >asterisk 2</li - ><li - >asterisk 3</li - ></ul + ></pre +><hr + /><h1 id="lists" +>Lists</h1 +><h2 id="unordered" +>Unordered</h2 +><p +>Asterisks tight:</p +><ul +><li + >asterisk 1</li + ><li + >asterisk 2</li + ><li + >asterisk 3</li + ></ul +><p +>Asterisks loose:</p +><ul +><li + ><p + >asterisk 1</p + ></li + ><li + ><p + >asterisk 2</p + ></li + ><li + ><p + >asterisk 3</p + ></li + ></ul +><p +>Pluses tight:</p +><ul +><li + >Plus 1</li + ><li + >Plus 2</li + ><li + >Plus 3</li + ></ul +><p +>Pluses loose:</p +><ul +><li + ><p + >Plus 1</p + ></li + ><li + ><p + >Plus 2</p + ></li + ><li + ><p + >Plus 3</p + ></li + ></ul +><p +>Minuses tight:</p +><ul +><li + >Minus 1</li + ><li + >Minus 2</li + ><li + >Minus 3</li + ></ul +><p +>Minuses loose:</p +><ul +><li + ><p + >Minus 1</p + ></li + ><li + ><p + >Minus 2</p + ></li + ><li + ><p + >Minus 3</p + ></li + ></ul +><h2 id="ordered" +>Ordered</h2 +><p +>Tight:</p +><ol style="list-style-type: decimal;" +><li + >First</li + ><li + >Second</li + ><li + >Third</li + ></ol +><p +>and:</p +><ol style="list-style-type: decimal;" +><li + >One</li + ><li + >Two</li + ><li + >Three</li + ></ol +><p +>Loose using tabs:</p +><ol style="list-style-type: decimal;" +><li + ><p + >First</p + ></li + ><li + ><p + >Second</p + ></li + ><li + ><p + >Third</p + ></li + ></ol +><p +>and using spaces:</p +><ol style="list-style-type: decimal;" +><li + ><p + >One</p + ></li + ><li + ><p + >Two</p + ></li + ><li + ><p + >Three</p + ></li + ></ol +><p +>Multiple paragraphs:</p +><ol style="list-style-type: decimal;" +><li + ><p + >Item 1, graf one.</p ><p - >Asterisks loose:</p - ><ul + >Item 1. graf two. The quick brown fox jumped over the lazy dog’s back.</p + ></li + ><li + ><p + >Item 2.</p + ></li + ><li + ><p + >Item 3.</p + ></li + ></ol +><h2 id="nested" +>Nested</h2 +><ul +><li + >Tab<ul ><li - ><p - >asterisk 1</p - ></li - ><li - ><p - >asterisk 2</p - ></li - ><li - ><p - >asterisk 3</p + >Tab<ul + ><li + >Tab</li + ></ul ></li ></ul - ><p - >Pluses tight:</p - ><ul - ><li - >Plus 1</li - ><li - >Plus 2</li - ><li - >Plus 3</li - ></ul - ><p - >Pluses loose:</p - ><ul + ></li + ></ul +><p +>Here’s another:</p +><ol style="list-style-type: decimal;" +><li + >First</li + ><li + >Second:<ul ><li - ><p - >Plus 1</p - ></li + >Fee</li ><li - ><p - >Plus 2</p - ></li + >Fie</li ><li - ><p - >Plus 3</p - ></li + >Foe</li ></ul - ><p - >Minuses tight:</p + ></li + ><li + >Third</li + ></ol +><p +>Same thing but with paragraphs:</p +><ol style="list-style-type: decimal;" +><li + ><p + >First</p + ></li + ><li + ><p + >Second:</p ><ul ><li - >Minus 1</li + >Fee</li ><li - >Minus 2</li + >Fie</li ><li - >Minus 3</li + >Foe</li ></ul - ><p - >Minuses loose:</p + ></li + ><li + ><p + >Third</p + ></li + ></ol +><h2 id="tabs-and-spaces" +>Tabs and spaces</h2 +><ul +><li + ><p + >this is a list item indented with tabs</p + ></li + ><li + ><p + >this is a list item indented with spaces</p ><ul ><li ><p - >Minus 1</p - ></li - ><li - ><p - >Minus 2</p + >this is an example list item indented with tabs</p ></li ><li ><p - >Minus 3</p + >this is an example list item indented with spaces</p ></li ></ul - ></div - ><div id="ordered" - ><h2 - >Ordered</h2 - ><p - >Tight:</p - ><ol style="list-style-type: decimal;" - ><li - >First</li - ><li - >Second</li - ><li - >Third</li - ></ol - ><p - >and:</p - ><ol style="list-style-type: decimal;" - ><li - >One</li - ><li - >Two</li - ><li - >Three</li - ></ol - ><p - >Loose using tabs:</p - ><ol style="list-style-type: decimal;" - ><li - ><p - >First</p - ></li - ><li - ><p - >Second</p - ></li - ><li - ><p - >Third</p - ></li - ></ol - ><p - >and using spaces:</p - ><ol style="list-style-type: decimal;" - ><li - ><p - >One</p - ></li - ><li - ><p - >Two</p - ></li - ><li - ><p - >Three</p - ></li - ></ol - ><p - >Multiple paragraphs:</p - ><ol style="list-style-type: decimal;" - ><li - ><p - >Item 1, graf one.</p - ><p - >Item 1. graf two. The quick brown fox jumped over the lazy dog’s back.</p - ></li - ><li - ><p - >Item 2.</p - ></li - ><li - ><p - >Item 3.</p - ></li - ></ol - ></div - ><div id="nested" - ><h2 - >Nested</h2 - ><ul - ><li - >Tab<ul - ><li - >Tab<ul - ><li - >Tab</li - ></ul - ></li - ></ul - ></li - ></ul - ><p - >Here’s another:</p - ><ol style="list-style-type: decimal;" - ><li - >First</li - ><li - >Second:<ul - ><li - >Fee</li - ><li - >Fie</li - ><li - >Foe</li - ></ul - ></li - ><li - >Third</li - ></ol + ></li + ></ul +><h2 id="fancy-list-markers" +>Fancy list markers</h2 +><ol start="2" style="list-style-type: decimal;" +><li + >begins with 2</li + ><li + ><p + >and now 3</p ><p - >Same thing but with paragraphs:</p - ><ol style="list-style-type: decimal;" - ><li - ><p - >First</p - ></li - ><li - ><p - >Second:</p - ><ul - ><li - >Fee</li - ><li - >Fie</li - ><li - >Foe</li - ></ul - ></li - ><li - ><p - >Third</p - ></li - ></ol - ></div - ><div id="tabs-and-spaces" - ><h2 - >Tabs and spaces</h2 - ><ul - ><li - ><p - >this is a list item indented with tabs</p - ></li - ><li - ><p - >this is a list item indented with spaces</p - ><ul - ><li - ><p - >this is an example list item indented with tabs</p - ></li - ><li - ><p - >this is an example list item indented with spaces</p - ></li - ></ul - ></li - ></ul - ></div - ><div id="fancy-list-markers" - ><h2 - >Fancy list markers</h2 - ><ol start="2" style="list-style-type: decimal;" + >with a continuation</p + ><ol start="4" style="list-style-type: lower-roman;" ><li - >begins with 2</li + >sublist with roman numerals, starting with 4</li ><li - ><p - >and now 3</p - ><p - >with a continuation</p - ><ol start="4" style="list-style-type: lower-roman;" + >more items<ol style="list-style-type: upper-alpha;" ><li - >sublist with roman numerals, starting with 4</li + >a subsublist</li ><li - >more items<ol style="list-style-type: upper-alpha;" - ><li - >a subsublist</li - ><li - >a subsublist</li - ></ol - ></li + >a subsublist</li ></ol ></li ></ol - ><p - >Nesting:</p - ><ol style="list-style-type: upper-alpha;" + ></li + ></ol +><p +>Nesting:</p +><ol style="list-style-type: upper-alpha;" +><li + >Upper Alpha<ol style="list-style-type: upper-roman;" ><li - >Upper Alpha<ol style="list-style-type: upper-roman;" + >Upper Roman.<ol start="6" style="list-style-type: decimal;" ><li - >Upper Roman.<ol start="6" style="list-style-type: decimal;" + >Decimal start with 6<ol start="3" style="list-style-type: lower-alpha;" ><li - >Decimal start with 6<ol start="3" style="list-style-type: lower-alpha;" - ><li - >Lower alpha with paren</li - ></ol - ></li + >Lower alpha with paren</li ></ol ></li ></ol ></li ></ol - ><p - >Autonumbering:</p - ><ol + ></li + ></ol +><p +>Autonumbering:</p +><ol +><li + >Autonumber.</li + ><li + >More.<ol ><li - >Autonumber.</li - ><li - >More.<ol - ><li - >Nested.</li - ></ol - ></li + >Nested.</li ></ol - ><p - >Should not be a list item:</p - ><p - >M.A. 2007</p - ><p - >B. Williams</p - ><hr - /></div - ></div -><div id="definition-lists" -><h1 - >Definition Lists</h1 - ><p - >Tight using spaces:</p - ><dl + ></li + ></ol +><p +>Should not be a list item:</p +><p +>M.A. 2007</p +><p +>B. Williams</p +><hr + /><h1 id="definition-lists" +>Definition Lists</h1 +><p +>Tight using spaces:</p +><dl +><dt + >apple</dt + ><dd + >red fruit</dd ><dt - >apple</dt - ><dd - >red fruit</dd - ><dt - >orange</dt - ><dd - >orange fruit</dd - ><dt - >banana</dt - ><dd - >yellow fruit</dd - ></dl - ><p - >Tight using tabs:</p - ><dl + >orange</dt + ><dd + >orange fruit</dd ><dt - >apple</dt - ><dd - >red fruit</dd - ><dt - >orange</dt - ><dd - >orange fruit</dd - ><dt - >banana</dt - ><dd - >yellow fruit</dd - ></dl - ><p - >Loose:</p - ><dl + >banana</dt + ><dd + >yellow fruit</dd + ></dl +><p +>Tight using tabs:</p +><dl +><dt + >apple</dt + ><dd + >red fruit</dd ><dt - >apple</dt - ><dd - ><p - >red fruit</p - ></dd - ><dt - >orange</dt - ><dd - ><p - >orange fruit</p - ></dd - ><dt - >banana</dt - ><dd - ><p - >yellow fruit</p - ></dd - ></dl - ><p - >Multiple blocks with italics:</p - ><dl + >orange</dt + ><dd + >orange fruit</dd ><dt - ><em - >apple</em - ></dt - ><dd - ><p - >red fruit</p - ><p - >contains seeds, crisp, pleasant to taste</p - ></dd - ><dt - ><em - >orange</em - ></dt - ><dd - ><p - >orange fruit</p - ><pre - ><code - >{ orange code block } -</code - ></pre - ><blockquote - ><p - >orange block quote</p - ></blockquote - ></dd - ></dl - ><p - >Multiple definitions, tight:</p - ><dl + >banana</dt + ><dd + >yellow fruit</dd + ></dl +><p +>Loose:</p +><dl +><dt + >apple</dt + ><dd + ><p + >red fruit</p + ></dd ><dt - >apple</dt - ><dd - >red fruit</dd - ><dd - >computer</dd - ><dt - >orange</dt - ><dd - >orange fruit</dd - ><dd - >bank</dd - ></dl + >orange</dt + ><dd ><p - >Multiple definitions, loose:</p - ><dl + >orange fruit</p + ></dd ><dt - >apple</dt - ><dd - ><p - >red fruit</p - ></dd - ><dd - ><p - >computer</p - ></dd - ><dt - >orange</dt - ><dd - ><p - >orange fruit</p - ></dd - ><dd - ><p - >bank</p - ></dd - ></dl - ><p - >Blank line after term, indented marker, alternate markers:</p - ><dl + >banana</dt + ><dd + ><p + >yellow fruit</p + ></dd + ></dl +><p +>Multiple blocks with italics:</p +><dl +><dt + ><em + >apple</em + ></dt + ><dd + ><p + >red fruit</p + ><p + >contains seeds, crisp, pleasant to taste</p + ></dd ><dt - >apple</dt - ><dd - ><p - >red fruit</p - ></dd - ><dd - ><p - >computer</p - ></dd - ><dt - >orange</dt - ><dd + ><em + >orange</em + ></dt + ><dd + ><p + >orange fruit</p + ><pre + ><code + >{ orange code block } +</code + ></pre + ><blockquote ><p - >orange fruit</p - ><ol style="list-style-type: decimal;" - ><li - >sublist</li - ><li - >sublist</li - ></ol - ></dd - ></dl - ></div -><div id="html-blocks" -><h1 - >HTML Blocks</h1 + >orange block quote</p + ></blockquote + ></dd + ></dl +><p +>Multiple definitions, tight:</p +><dl +><dt + >apple</dt + ><dd + >red fruit</dd + ><dd + >computer</dd + ><dt + >orange</dt + ><dd + >orange fruit</dd + ><dd + >bank</dd + ></dl +><p +>Multiple definitions, loose:</p +><dl +><dt + >apple</dt + ><dd + ><p + >red fruit</p + ></dd + ><dd + ><p + >computer</p + ></dd + ><dt + >orange</dt + ><dd + ><p + >orange fruit</p + ></dd + ><dd + ><p + >bank</p + ></dd + ></dl +><p +>Blank line after term, indented marker, alternate markers:</p +><dl +><dt + >apple</dt + ><dd + ><p + >red fruit</p + ></dd + ><dd + ><p + >computer</p + ></dd + ><dt + >orange</dt + ><dd ><p - >Simple block on one line:</p - ><div>foo</div> + >orange fruit</p + ><ol style="list-style-type: decimal;" + ><li + >sublist</li + ><li + >sublist</li + ></ol + ></dd + ></dl +><h1 id="html-blocks" +>HTML Blocks</h1 +><p +>Simple block on one line:</p +><div>foo</div> <p - >And nested without indentation:</p - ><div> +>And nested without indentation:</p +><div> <div> <div>foo</div> </div> <div>bar</div> </div> <p - >Interpreted markdown in a table:</p - ><table> +>Interpreted markdown in a table:</p +><table> <tr> <td>This is <em - >emphasized</em - ></td> +>emphasized</em +></td> <td>And this is <strong - >strong</strong - ></td> +>strong</strong +></td> </tr> </table> <script type="text/javascript">document.write('This *should not* be interpreted as markdown');</script> <p - >Here’s a simple block:</p - ><div> +>Here’s a simple block:</p +><div> foo</div> <p - >This should be a code block, though:</p - ><pre - ><code - ><div> +>This should be a code block, though:</p +><pre +><code + ><div> foo </div> </code - ></pre - ><p - >As should this:</p - ><pre - ><code - ><div>foo</div> + ></pre +><p +>As should this:</p +><pre +><code + ><div>foo</div> </code - ></pre - ><p - >Now, nested:</p - ><div> + ></pre +><p +>Now, nested:</p +><div> <div> <div> foo</div> </div> </div> <p - >This should just be an HTML comment:</p - ><!-- Comment --> +>This should just be an HTML comment:</p +><!-- Comment --> <p - >Multiline:</p - ><!-- +>Multiline:</p +><!-- Blah Blah --> @@ -675,25 +636,25 @@ Blah This is another comment. --> <p - >Code block:</p - ><pre - ><code - ><!-- Comment --> +>Code block:</p +><pre +><code + ><!-- Comment --> </code - ></pre - ><p - >Just plain comment, with trailing spaces on the line:</p - ><!-- foo --> + ></pre +><p +>Just plain comment, with trailing spaces on the line:</p +><!-- foo --> <p - >Code:</p - ><pre - ><code - ><hr /> +>Code:</p +><pre +><code + ><hr /> </code - ></pre - ><p - >Hr’s:</p - ><hr> + ></pre +><p +>Hr’s:</p +><hr> <hr /> @@ -711,477 +672,454 @@ Blah <hr class="foo" id="bar"> <hr - /></div -><div id="inline-markup" -><h1 - >Inline Markup</h1 - ><p + /><h1 id="inline-markup" +>Inline Markup</h1 +><p +>This is <em + >emphasized</em + >, and so <em + >is this</em + >.</p +><p +>This is <strong + >strong</strong + >, and so <strong + >is this</strong + >.</p +><p +>An <em + ><a href="/url" + >emphasized link</a + ></em + >.</p +><p +><strong + ><em + >This is strong and em.</em + ></strong + ></p +><p +>So is <strong + ><em + >this</em + ></strong + > word.</p +><p +><strong + ><em + >This is strong and em.</em + ></strong + ></p +><p +>So is <strong + ><em + >this</em + ></strong + > word.</p +><p +>This is code: <code + >></code + >, <code + >$</code + >, <code + >\</code + >, <code + >\$</code + >, <code + ><html></code + >.</p +><p +><span style="text-decoration: line-through;" >This is <em - >emphasized</em - >, and so <em - >is this</em - >.</p - ><p - >This is <strong - >strong</strong - >, and so <strong - >is this</strong - >.</p - ><p - >An <em - ><a href="/url" - >emphasized link</a - ></em - >.</p - ><p - ><strong - ><em - >This is strong and em.</em - ></strong - ></p - ><p - >So is <strong - ><em - >this</em - ></strong - > word.</p - ><p - ><strong + >strikeout</em + >.</span + ></p +><p +>Superscripts: a<sup + >bc</sup + >d a<sup + ><em + >hello</em + ></sup + > a<sup + >hello there</sup + >.</p +><p +>Subscripts: H<sub + >2</sub + >O, H<sub + >23</sub + >O, H<sub + >many of them</sub + >O.</p +><p +>These should not be superscripts or subscripts, because of the unescaped spaces: a^b c^d, a~b c~d.</p +><hr + /><h1 id="smart-quotes-ellipses-dashes" +>Smart quotes, ellipses, dashes</h1 +><p +>“Hello,” said the spider. “‘Shelob’ is my name.”</p +><p +>‘A’, ‘B’, and ‘C’ are letters.</p +><p +>‘Oak,’ ‘elm,’ and ‘beech’ are names of trees. So is ‘pine.’</p +><p +>‘He said, “I want to go.”’ Were you alive in the 70’s?</p +><p +>Here is some quoted ‘<code + >code</code + >’ and a “<a href="http://example.com/?foo=1&bar=2" + >quoted link</a + >”.</p +><p +>Some dashes: one—two — three—four — five.</p +><p +>Dashes between numbers: 5–7, 255–66, 1987–1999.</p +><p +>Ellipses…and…and….</p +><hr + /><h1 id="latex" +>LaTeX</h1 +><ul +><li + ></li + ><li + ><span class="math" + >2 + 2 = 4</span + ></li + ><li + ><span class="math" ><em - >This is strong and em.</em - ></strong - ></p - ><p - >So is <strong + >x</em + > ∈ <em + >y</em + ></span + ></li + ><li + ><span class="math" + >α ∧ ω</span + ></li + ><li + ><span class="math" + >223</span + ></li + ><li + ><span class="math" ><em - >this</em - ></strong - > word.</p - ><p - >This is code: <code - >></code - >, <code + >p</em + ></span + >-Tree</li + ><li + >Here’s some display math: <br + /><span class="math" + >$\frac{d}{dx}f(x)=\lim_{h\to 0}\frac{f(x+h)-f(x)}{h}$</span + ><br + /></li + ><li + >Here’s one that has a line break in it: <span class="math" + >α + ω × <em + >x</em + ><sup + >2</sup + ></span + >.</li + ></ul +><p +>These shouldn’t be math:</p +><ul +><li + >To get the famous equation, write <code + >$e = mc^2$</code + >.</li + ><li + >$22,000 is a <em + >lot</em + > of money. So is $34,000. (It worked if “lot” is emphasized.)</li + ><li + >Shoes ($20) and socks ($5).</li + ><li + >Escaped <code >$</code - >, <code - >\</code - >, <code - >\$</code - >, <code - ><html></code - >.</p - ><p - ><span style="text-decoration: line-through;" - >This is <em - >strikeout</em - >.</span - ></p - ><p - >Superscripts: a<sup - >bc</sup - >d a<sup - ><em - >hello</em - ></sup - > a<sup - >hello there</sup - >.</p - ><p - >Subscripts: H<sub - >2</sub - >O, H<sub - >23</sub - >O, H<sub - >many of them</sub - >O.</p - ><p - >These should not be superscripts or subscripts, because of the unescaped spaces: a^b c^d, a~b c~d.</p - ><hr - /></div -><div id="smart-quotes-ellipses-dashes" -><h1 - >Smart quotes, ellipses, dashes</h1 - ><p - >“Hello,” said the spider. “‘Shelob’ is my name.”</p - ><p - >‘A’, ‘B’, and ‘C’ are letters.</p - ><p - >‘Oak,’ ‘elm,’ and ‘beech’ are names of trees. So is ‘pine.’</p - ><p - >‘He said, “I want to go.”’ Were you alive in the 70’s?</p - ><p - >Here is some quoted ‘<code - >code</code - >’ and a “<a href="http://example.com/?foo=1&bar=2" - >quoted link</a - >”.</p - ><p - >Some dashes: one—two — three—four — five.</p - ><p - >Dashes between numbers: 5–7, 255–66, 1987–1999.</p - ><p - >Ellipses…and…and….</p - ><hr - /></div -><div id="latex" -><h1 - >LaTeX</h1 - ><ul + >: $73 <em + >this should be emphasized</em + > 23$.</li + ></ul +><p +>Here’s a LaTeX table:</p +><p +></p +><hr + /><h1 id="special-characters" +>Special Characters</h1 +><p +>Here is some unicode:</p +><ul +><li + >I hat: Î</li ><li - ></li - ><li - ><span class="math" - >2 + 2 = 4</span - ></li - ><li - ><span class="math" - ><em - >x</em - > ∈ <em - >y</em - ></span - ></li - ><li - ><span class="math" - >α ∧ ω</span - ></li - ><li - ><span class="math" - >223</span - ></li - ><li - ><span class="math" - ><em - >p</em - ></span - >-Tree</li - ><li - >Here’s some display math: <br - /><span class="math" - >$\frac{d}{dx}f(x)=\lim_{h\to 0}\frac{f(x+h)-f(x)}{h}$</span - ><br - /></li - ><li - >Here’s one that has a line break in it: <span class="math" - >α + ω × <em - >x</em - ><sup - >2</sup - ></span - >.</li - ></ul - ><p - >These shouldn’t be math:</p - ><ul + >o umlaut: ö</li ><li - >To get the famous equation, write <code - >$e = mc^2$</code - >.</li - ><li - >$22,000 is a <em - >lot</em - > of money. So is $34,000. (It worked if “lot” is emphasized.)</li - ><li - >Shoes ($20) and socks ($5).</li - ><li - >Escaped <code - >$</code - >: $73 <em - >this should be emphasized</em - > 23$.</li - ></ul - ><p - >Here’s a LaTeX table:</p - ><p - ></p - ><hr - /></div -><div id="special-characters" -><h1 - >Special Characters</h1 - ><p - >Here is some unicode:</p - ><ul + >section: §</li ><li - >I hat: Î</li - ><li - >o umlaut: ö</li - ><li - >section: §</li - ><li - >set membership: ∈</li - ><li - >copyright: ©</li - ></ul - ><p - >AT&T has an ampersand in their name.</p - ><p - >AT&T is another way to write it.</p - ><p - >This & that.</p - ><p - >4 < 5.</p - ><p - >6 > 5.</p - ><p - >Backslash: \</p - ><p - >Backtick: `</p - ><p - >Asterisk: *</p - ><p - >Underscore: _</p - ><p - >Left brace: {</p - ><p - >Right brace: }</p - ><p - >Left bracket: [</p - ><p - >Right bracket: ]</p - ><p - >Left paren: (</p - ><p - >Right paren: )</p - ><p - >Greater-than: ></p - ><p - >Hash: #</p - ><p - >Period: .</p - ><p - >Bang: !</p - ><p - >Plus: +</p - ><p - >Minus: -</p - ><hr - /></div -><div id="links" -><h1 - >Links</h1 - ><div id="explicit" - ><h2 - >Explicit</h2 - ><p - >Just a <a href="/url/" - >URL</a - >.</p - ><p - ><a href="/url/" title="title" - >URL and title</a - >.</p - ><p - ><a href="/url/" title="title preceded by two spaces" - >URL and title</a - >.</p - ><p - ><a href="/url/" title="title preceded by a tab" - >URL and title</a - >.</p - ><p - ><a href="/url/" title="title with "quotes" in it" - >URL and title</a - ></p - ><p - ><a href="/url/" title="title with single quotes" - >URL and title</a - ></p - ><p - ><a href="/url/with_underscore" - >with_underscore</a - ></p - ><p - ><script type="text/javascript" - > + >set membership: ∈</li + ><li + >copyright: ©</li + ></ul +><p +>AT&T has an ampersand in their name.</p +><p +>AT&T is another way to write it.</p +><p +>This & that.</p +><p +>4 < 5.</p +><p +>6 > 5.</p +><p +>Backslash: \</p +><p +>Backtick: `</p +><p +>Asterisk: *</p +><p +>Underscore: _</p +><p +>Left brace: {</p +><p +>Right brace: }</p +><p +>Left bracket: [</p +><p +>Right bracket: ]</p +><p +>Left paren: (</p +><p +>Right paren: )</p +><p +>Greater-than: ></p +><p +>Hash: #</p +><p +>Period: .</p +><p +>Bang: !</p +><p +>Plus: +</p +><p +>Minus: -</p +><hr + /><h1 id="links" +>Links</h1 +><h2 id="explicit" +>Explicit</h2 +><p +>Just a <a href="/url/" + >URL</a + >.</p +><p +><a href="/url/" title="title" + >URL and title</a + >.</p +><p +><a href="/url/" title="title preceded by two spaces" + >URL and title</a + >.</p +><p +><a href="/url/" title="title preceded by a tab" + >URL and title</a + >.</p +><p +><a href="/url/" title="title with "quotes" in it" + >URL and title</a + ></p +><p +><a href="/url/" title="title with single quotes" + >URL and title</a + ></p +><p +><a href="/url/with_underscore" + >with_underscore</a + ></p +><p +><script type="text/javascript" + > <!-- h='nowhere.net';a='@';n='nobody';e=n+a+h; document.write('<a h'+'ref'+'="ma'+'ilto'+':'+e+'">'+'Email link'+'<\/'+'a'+'>'); // --> </script - ><noscript - >Email link (nobody at nowhere dot net)</noscript - ></p - ><p - ><a href="" - >Empty</a - >.</p - ></div - ><div id="reference" - ><h2 - >Reference</h2 - ><p - >Foo <a href="/url/" - >bar</a - >.</p - ><p - >Foo <a href="/url/" - >bar</a - >.</p - ><p - >Foo <a href="/url/" - >bar</a - >.</p - ><p - >With <a href="/url/" - >embedded [brackets]</a - >.</p - ><p - ><a href="/url/" - >b</a - > by itself should be a link.</p - ><p - >Indented <a href="/url" - >once</a - >.</p - ><p - >Indented <a href="/url" - >twice</a - >.</p - ><p - >Indented <a href="/url" - >thrice</a - >.</p - ><p - >This should [not][] be a link.</p - ><pre - ><code - >[not]: /url + ><noscript + >Email link (nobody at nowhere dot net)</noscript + ></p +><p +><a href="" + >Empty</a + >.</p +><h2 id="reference" +>Reference</h2 +><p +>Foo <a href="/url/" + >bar</a + >.</p +><p +>Foo <a href="/url/" + >bar</a + >.</p +><p +>Foo <a href="/url/" + >bar</a + >.</p +><p +>With <a href="/url/" + >embedded [brackets]</a + >.</p +><p +><a href="/url/" + >b</a + > by itself should be a link.</p +><p +>Indented <a href="/url" + >once</a + >.</p +><p +>Indented <a href="/url" + >twice</a + >.</p +><p +>Indented <a href="/url" + >thrice</a + >.</p +><p +>This should [not][] be a link.</p +><pre +><code + >[not]: /url </code - ></pre - ><p - >Foo <a href="/url/" title="Title with "quotes" inside" - >bar</a - >.</p - ><p - >Foo <a href="/url/" title="Title with "quote" inside" - >biz</a - >.</p - ></div - ><div id="with-ampersands" - ><h2 - >With ampersands</h2 - ><p - >Here’s a <a href="http://example.com/?foo=1&bar=2" - >link with an ampersand in the URL</a - >.</p - ><p - >Here’s a link with an amersand in the link text: <a href="http://att.com/" title="AT&T" - >AT&T</a - >.</p - ><p - >Here’s an <a href="/script?foo=1&bar=2" - >inline link</a - >.</p - ><p - >Here’s an <a href="/script?foo=1&bar=2" - >inline link in pointy braces</a - >.</p - ></div - ><div id="autolinks" - ><h2 - >Autolinks</h2 - ><p - >With an ampersand: <a href="http://example.com/?foo=1&bar=2" - ><code - >http://example.com/?foo=1&bar=2</code - ></a - ></p - ><ul - ><li - >In a list?</li - ><li - ><a href="http://example.com/" - ><code - >http://example.com/</code - ></a - ></li - ><li - >It should.</li - ></ul - ><p - >An e-mail address: <script type="text/javascript" - > + ></pre +><p +>Foo <a href="/url/" title="Title with "quotes" inside" + >bar</a + >.</p +><p +>Foo <a href="/url/" title="Title with "quote" inside" + >biz</a + >.</p +><h2 id="with-ampersands" +>With ampersands</h2 +><p +>Here’s a <a href="http://example.com/?foo=1&bar=2" + >link with an ampersand in the URL</a + >.</p +><p +>Here’s a link with an amersand in the link text: <a href="http://att.com/" title="AT&T" + >AT&T</a + >.</p +><p +>Here’s an <a href="/script?foo=1&bar=2" + >inline link</a + >.</p +><p +>Here’s an <a href="/script?foo=1&bar=2" + >inline link in pointy braces</a + >.</p +><h2 id="autolinks" +>Autolinks</h2 +><p +>With an ampersand: <a href="http://example.com/?foo=1&bar=2" + ><code + >http://example.com/?foo=1&bar=2</code + ></a + ></p +><ul +><li + >In a list?</li + ><li + ><a href="http://example.com/" + ><code + >http://example.com/</code + ></a + ></li + ><li + >It should.</li + ></ul +><p +>An e-mail address: <script type="text/javascript" + > <!-- h='nowhere.net';a='@';n='nobody';e=n+a+h; document.write('<a h'+'ref'+'="ma'+'ilto'+':'+e+'">'+'<code>'+e+'</code>'+'<\/'+'a'+'>'); // --> </script - ><noscript - >nobody at nowhere dot net</noscript - ></p - ><blockquote - ><p - >Blockquoted: <a href="http://example.com/" - ><code - >http://example.com/</code - ></a - ></p - ></blockquote - ><p - >Auto-links should not occur here: <code - ><http://example.com/></code - ></p - ><pre + ><noscript + >nobody at nowhere dot net</noscript + ></p +><blockquote +><p + >Blockquoted: <a href="http://example.com/" ><code - >or here: <http://example.com/> + >http://example.com/</code + ></a + ></p + ></blockquote +><p +>Auto-links should not occur here: <code + ><http://example.com/></code + ></p +><pre +><code + >or here: <http://example.com/> </code - ></pre - ><hr - /></div + ></pre +><hr + /><h1 id="images" +>Images</h1 +><p +>From “Voyage dans la Lune” by Georges Melies (1902):</p +><div class="figure" +><img src="lalune.jpg" title="Voyage dans la Lune" alt="lalune" + /><p class="caption" + >lalune</p ></div -><div id="images" -><h1 - >Images</h1 - ><p - >From “Voyage dans la Lune” by Georges Melies (1902):</p - ><div class="figure" - ><img src="lalune.jpg" title="Voyage dans la Lune" alt="lalune" - /><p class="caption" - >lalune</p - ></div - ><p - >Here is a movie <img src="movie.jpg" alt="movie" - /> icon.</p - ><hr - /></div -><div id="footnotes" -><h1 - >Footnotes</h1 - ><p - >Here is a footnote reference,<sup - ><a href="#fn1" class="footnoteRef" id="fnref1" - >1</a - ></sup - > and another.<sup - ><a href="#fn2" class="footnoteRef" id="fnref2" - >2</a - ></sup - > This should <em - >not</em - > be a footnote reference, because it contains a space.[^my note] Here is an inline note.<sup - ><a href="#fn3" class="footnoteRef" id="fnref3" - >3</a +><p +>Here is a movie <img src="movie.jpg" alt="movie" + /> icon.</p +><hr + /><h1 id="footnotes" +>Footnotes</h1 +><p +>Here is a footnote reference,<sup + ><a href="#fn1" class="footnoteRef" id="fnref1" + >1</a + ></sup + > and another.<sup + ><a href="#fn2" class="footnoteRef" id="fnref2" + >2</a + ></sup + > This should <em + >not</em + > be a footnote reference, because it contains a space.[^my note] Here is an inline note.<sup + ><a href="#fn3" class="footnoteRef" id="fnref3" + >3</a + ></sup + ></p +><blockquote +><p + >Notes can go in quotes.<sup + ><a href="#fn4" class="footnoteRef" id="fnref4" + >4</a ></sup ></p - ><blockquote - ><p - >Notes can go in quotes.<sup - ><a href="#fn4" class="footnoteRef" id="fnref4" - >4</a - ></sup - ></p - ></blockquote - ><ol style="list-style-type: decimal;" - ><li - >And in list items.<sup - ><a href="#fn5" class="footnoteRef" id="fnref5" - >5</a - ></sup - ></li - ></ol - ><p - >This paragraph should not be part of the note, as it is not indented.</p - ></div + ></blockquote +><ol style="list-style-type: decimal;" +><li + >And in list items.<sup + ><a href="#fn5" class="footnoteRef" id="fnref5" + >5</a + ></sup + ></li + ></ol +><p +>This paragraph should not be part of the note, as it is not indented.</p ><div class="footnotes" ><hr /><ol |