<?xml version="1.0" encoding="utf-8" ?> <!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd"> <article> <articleinfo> <title>Pandoc Test Suite</title> <authorgroup> <author> <firstname>John</firstname> <surname>MacFarlane</surname> </author> <author> <firstname></firstname> <surname>Anonymous</surname> </author> </authorgroup> <date>July 17, 2006</date> </articleinfo> <para> This is a set of tests for pandoc. Most of them are adapted from John Gruber’s markdown test suite. </para> <sect1 id="headers"> <title>Headers</title> <sect2 id="level-2-with-an-embedded-link"> <title>Level 2 with an <ulink url="/url">embedded link</ulink></title> <sect3 id="level-3-with-emphasis"> <title>Level 3 with <emphasis>emphasis</emphasis></title> <sect4 id="level-4"> <title>Level 4</title> <sect5 id="level-5"> <title>Level 5</title> <para> Hi. </para> </sect5> </sect4> </sect3> </sect2> </sect1> <sect1 id="level-1"> <title>Level 1</title> <sect2 id="level-2-with-emphasis"> <title>Level 2 with <emphasis>emphasis</emphasis></title> <sect3 id="level-3"> <title>Level 3</title> <para> with no blank line </para> </sect3> </sect2> <sect2 id="level-2"> <title>Level 2</title> <para> with no blank line </para> </sect2> </sect1> <sect1 id="paragraphs"> <title>Paragraphs</title> <para> Here’s a regular paragraph. </para> <para> 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. </para> <para> Here’s one with a bullet. * criminey. </para> </sect1> <sect1 id="block-quotes"> <title>Block Quotes</title> <para> E-mail style: </para> <blockquote> <para> This is a block quote. It is pretty short. </para> </blockquote> <blockquote> <para> Code in a block quote: </para> <programlisting> sub status { print "working"; } </programlisting> <screen> % <command>ls</command> </screen> <para> A list: </para> <orderedlist numeration="arabic"> <listitem> <para> item one </para> </listitem> <listitem> <para> item two </para> </listitem> </orderedlist> <para> Nested block quotes: </para> <blockquote> <para> nested </para> </blockquote> <blockquote> <para> nested </para> </blockquote> </blockquote> <para> This should not be a block quote: 2 > 1. </para> <para> And a following paragraph. </para> </sect1> <sect1 id="code-blocks"> <title>Code Blocks</title> <para> Code: </para> <programlisting> ---- (should be four hyphens) sub status { print "working"; } this code block is indented by one tab </programlisting> <para> And: </para> <programlisting> this code block is indented by two tabs These should not be escaped: \$ \\ \> \[ \{ </programlisting> </sect1> <sect1 id="lists"> <title>Lists</title> <sect2 id="unordered"> <title>Unordered</title> <para> Asterisks loose: </para> <itemizedlist> <listitem> <para> asterisk 1 </para> </listitem> <listitem> <para> asterisk 2 </para> </listitem> <listitem> <para> asterisk 3 </para> </listitem> </itemizedlist> <para> Pluses loose: </para> <itemizedlist> <listitem> <para> Plus 1 </para> </listitem> <listitem> <para> Plus 2 </para> </listitem> <listitem> <para> Plus 3 </para> </listitem> </itemizedlist> <para> Minuses loose: </para> <itemizedlist> <listitem> <para> Minus 1 </para> </listitem> <listitem> <para> Minus 2 </para> </listitem> <listitem> <para> Minus 3 </para> </listitem> </itemizedlist> </sect2> <sect2 id="ordered"> <title>Ordered</title> <orderedlist numeration="arabic"> <listitem> <para> First </para> </listitem> <listitem> <para> Second </para> </listitem> <listitem> <para> Third </para> </listitem> </orderedlist> <para> and using spaces: </para> <orderedlist numeration="arabic"> <listitem> <para> One </para> </listitem> <listitem> <para> Two </para> </listitem> <listitem> <para> Three </para> </listitem> </orderedlist> <para> Multiple paragraphs: </para> <orderedlist numeration="arabic"> <listitem> <para> Item 1, graf one. </para> <para> Item 1. graf two. The quick brown fox jumped over the lazy dog’s back. </para> </listitem> <listitem> <para> Item 2. </para> </listitem> <listitem> <para> Item 3. </para> </listitem> </orderedlist> </sect2> <sect2 id="nested"> <title>Nested</title> <itemizedlist> <listitem> <para> Tab </para> <itemizedlist> <listitem> <para> Tab </para> <itemizedlist> <listitem> <para> Tab </para> </listitem> </itemizedlist> </listitem> </itemizedlist> </listitem> </itemizedlist> <para> Here’s another: </para> <orderedlist numeration="arabic"> <listitem> <para> First </para> </listitem> <listitem> <para> Second: </para> <itemizedlist> <listitem> <para> Fee </para> </listitem> <listitem> <para> Fie </para> </listitem> <listitem> <para> Foe </para> </listitem> </itemizedlist> </listitem> <listitem> <para> Third </para> </listitem> </orderedlist> <para> Same thing but with paragraphs: </para> <orderedlist numeration="arabic"> <listitem> <para> First </para> </listitem> <listitem> <para> Second: </para> <itemizedlist> <listitem> <para> Fee </para> </listitem> <listitem> <para> Fie </para> </listitem> <listitem> <para> Foe </para> </listitem> </itemizedlist> </listitem> <listitem> <para> Third </para> </listitem> </orderedlist> </sect2> <sect2 id="tabs-and-spaces"> <title>Tabs and spaces</title> <itemizedlist> <listitem> <para> this is a list item indented with tabs </para> </listitem> <listitem> <para> this is a list item indented with spaces </para> <itemizedlist> <listitem> <para> this is an example list item indented with tabs </para> </listitem> <listitem> <para> this is an example list item indented with spaces </para> </listitem> </itemizedlist> </listitem> </itemizedlist> </sect2> <sect2 id="fancy-list-markers"> <title>Fancy list markers</title> <orderedlist numeration="arabic"> <listitem override="2"> <para> begins with 2 </para> </listitem> <listitem> <para> and now 3 </para> <para> with a continuation </para> <orderedlist numeration="lowerroman"> <listitem override="4"> <para> sublist with roman numerals, starting with 4 </para> </listitem> <listitem> <para> more items </para> <orderedlist numeration="upperalpha"> <listitem> <para> a subsublist </para> </listitem> <listitem> <para> a subsublist </para> </listitem> </orderedlist> </listitem> </orderedlist> </listitem> </orderedlist> <para> Nesting: </para> <orderedlist numeration="upperalpha"> <listitem> <para> Upper Alpha </para> <orderedlist numeration="upperroman"> <listitem> <para> Upper Roman. </para> <orderedlist numeration="arabic"> <listitem override="6"> <para> Decimal start with 6 </para> <orderedlist numeration="loweralpha"> <listitem override="3"> <para> Lower alpha with paren </para> </listitem> </orderedlist> </listitem> </orderedlist> </listitem> </orderedlist> </listitem> </orderedlist> <para> Autonumbering: </para> <orderedlist> <listitem> <para> Autonumber. </para> </listitem> <listitem> <para> More. </para> <orderedlist> <listitem> <para> Nested. </para> </listitem> </orderedlist> </listitem> </orderedlist> <para> Should not be a list item: </para> <para> M.A. 2007 </para> <para> B. Williams </para> </sect2> <sect2 id="callout"> <title>Callout</title> <para>Simple.</para> <calloutlist> <callout arearefs="loop1-letrec-co" id="loop1-letrec"> <para id="x_QA1">A <code>__letrec</code> is equivalent to a normal Haskell &let;.</para> </callout> <callout arearefs="loop1-def-co" id="loop1-def"> <para id="x_RA1">&GHC; compiled the body of our list comprehension into a loop named <function>go_s1YC</function>.</para> </callout> <callout arearefs="loop1-pat-empty-co" id="loop1-pat-empty"> <para id="x_SA1">If our &case; expression matches the empty list, we return the empty list. This is reassuringly familiar.</para> </callout> </calloutlist> </sect2> </sect1> <sect1 id="definition-lists"> <title>Definition Lists</title> <variablelist> <varlistentry> <term> apple </term> <listitem> <para> red fruit </para> </listitem> </varlistentry> <varlistentry> <term> orange </term> <listitem> <para> orange fruit </para> </listitem> </varlistentry> <varlistentry> <term> banana </term> <listitem> <para> yellow fruit </para> </listitem> </varlistentry> </variablelist> <para> Multiple blocks with italics: </para> <variablelist> <varlistentry> <term> <emphasis>apple</emphasis> </term> <listitem> <para> red fruit </para> <para> contains seeds, crisp, pleasant to taste </para> </listitem> </varlistentry> <varlistentry> <term> <emphasis>orange</emphasis> </term> <listitem> <para> orange fruit </para> <programlisting> { orange code block } </programlisting> <blockquote> <para> orange block quote </para> </blockquote> </listitem> </varlistentry> </variablelist> <para> Multiple definitions, loose: </para> <variablelist> <varlistentry> <term> apple </term> <listitem> <para> red fruit </para> </listitem> <listitem> <para> computer </para> </listitem> </varlistentry> <varlistentry> <term> orange </term> <listitem> <para> orange fruit </para> </listitem> <listitem> <para> bank </para> </listitem> </varlistentry> </variablelist> <para> Blank line after term, indented marker, alternate markers: </para> <variablelist> <varlistentry> <term> apple </term> <listitem> <para> red fruit </para> </listitem> <listitem> <para> computer </para> </listitem> </varlistentry> <varlistentry> <term> orange </term> <listitem> <para> orange fruit </para> <orderedlist numeration="arabic"> <listitem> <para> sublist </para> </listitem> <listitem> <para> sublist </para> </listitem> </orderedlist> </listitem> </varlistentry> </variablelist> </sect1> <sect1 id="inline-markup"> <title>Inline Markup</title> <para> This is <emphasis>emphasized</emphasis>, and so <emphasis>is this</emphasis>. </para> <para> This is <emphasis role="strong">strong</emphasis>, and so <emphasis role="strong">is this</emphasis>. </para> <para> An <emphasis><ulink url="/url">emphasized link</ulink></emphasis>. </para> <para> <emphasis role="strong"><emphasis>This is strong and em.</emphasis></emphasis> </para> <para> So is <emphasis role="strong"><emphasis>this</emphasis></emphasis> word. </para> <para> <emphasis role="strong"><emphasis>This is strong and em.</emphasis></emphasis> </para> <para> So is <emphasis role="strong"><emphasis>this</emphasis></emphasis> word. </para> <para> This is code: <literal>></literal>, <literal>$</literal>, <literal>\</literal>, <literal>\$</literal>, <literal><html></literal>. </para> <para> More code: <classname>Class</classname> and <type>Type</type> </para> <para> <emphasis role="strikethrough">This is <emphasis>strikeout</emphasis>.</emphasis> </para> <para> Superscripts: a<superscript>bc</superscript>d a<superscript><emphasis>hello</emphasis></superscript> a<superscript>hello there</superscript>. </para> <para> Subscripts: H<subscript>2</subscript>O, H<subscript>23</subscript>O, H<subscript>many of them</subscript>O. </para> <para> These should not be superscripts or subscripts, because of the unescaped spaces: a^b c^d, a~b c~d. </para> </sect1> <sect1 id="smart-quotes-ellipses-dashes"> <title>Smart quotes, ellipses, dashes</title> <para> <quote>Hello,</quote> said the spider. <quote><quote>Shelob</quote> is my name.</quote> </para> <para> <quote>A</quote>, <quote>B</quote>, and <quote>C</quote> are letters. </para> <para> <quote>He said, <quote>I want to go.</quote></quote> Were you alive in the 70’s? </para> <para> Some dashes: one—two — three—four — five. </para> <para> Dashes between numbers: 5–7, 255–66, 1987–1999. </para> <para> Ellipses…and…and…. </para> </sect1> <sect1 id="math"> <para> <equation> <mml:math> <mml:mrow> <mml:mi>e</mml:mi> <mml:mo>=</mml:mo> <mml:mi>m</mml:mi> <mml:msup> <mml:mi>c</mml:mi> <mml:mn>2</mml:mn> </mml:msup> </mml:mrow> </mml:math> <mml:math> <mrow> <mn>1</mn> </mrow> </mml:math> </equation> <inlineequation> <mml:math> <mml:mrow> <mml:mi>e</mml:mi> <mml:mo>=</mml:mo> <mml:mi>m</mml:mi> <mml:msup> <mml:mi>c</mml:mi> <mml:mn>2</mml:mn> </mml:msup> </mml:mrow> </mml:math> </inlineequation> <informalequation> <mml:math> <mml:mrow> <mml:mi>e</mml:mi> <mml:mo>=</mml:mo> <mml:mi>m</mml:mi> <mml:msup> <mml:mi>c</mml:mi> <mml:mn>2</mml:mn> </mml:msup> </mml:mrow> </mml:math> </informalequation> </para> </sect1> <sect1 id="special-characters"> <title>Special Characters</title> <para> Here is some unicode: </para> <itemizedlist> <listitem> <para> I hat: Î </para> </listitem> <listitem> <para> o umlaut: ö </para> </listitem> <listitem> <para> section: § </para> </listitem> <listitem> <para> set membership: ∈ </para> </listitem> <listitem> <para> copyright: © </para> </listitem> </itemizedlist> <para> AT&T has an ampersand in their name. </para> <para> AT&T is another way to write it. </para> <para> This & that. </para> <para> 4 < 5. </para> <para> 6 > 5. </para> <para> Backslash: \ </para> <para> Backtick: ` </para> <para> Asterisk: * </para> <para> Underscore: _ </para> <para> Left brace: { </para> <para> Right brace: } </para> <para> Left bracket: [ </para> <para> Right bracket: ] </para> <para> Left paren: ( </para> <para> Right paren: ) </para> <para> Greater-than: > </para> <para> Hash: # </para> <para> Period: . </para> <para> Bang: ! </para> <para> Plus: + </para> <para> Minus: - </para> </sect1> <sect1 id="links"> <title>Links</title> <sect2 id="explicit"> <title>Explicit</title> <para> Just a <ulink url="/url/">URL</ulink>. </para> <para> <ulink url="/url/">URL and title</ulink>. </para> <para> <ulink url="/url/">URL and title</ulink>. </para> <para> <ulink url="/url/">URL and title</ulink>. </para> <para> <ulink url="/url/">URL and title</ulink> </para> <para> <ulink url="/url/">URL and title</ulink> </para> <para> <ulink url="/url/with_underscore">with_underscore</ulink> </para> <para> <email>nobody@nowhere.net</email> </para> <para> <ulink url="">Empty</ulink>. </para> </sect2> <sect2 id="reference"> <title>Reference</title> <para> Foo <ulink url="/url/">bar</ulink>. </para> <para> Foo <ulink url="/url/">bar</ulink>. </para> <para> Foo <ulink url="/url/">bar</ulink>. </para> <para> With <ulink url="/url/">embedded [brackets]</ulink>. </para> <para> <ulink url="/url/">b</ulink> by itself should be a link. </para> <para> Indented <ulink url="/url">once</ulink>. </para> <para> Indented <ulink url="/url">twice</ulink>. </para> <para> Indented <ulink url="/url">thrice</ulink>. </para> <para> This should [not][] be a link. </para> <programlisting> [not]: /url </programlisting> <para> Foo <ulink url="/url/">bar</ulink>. </para> <para> Foo <ulink url="/url/">biz</ulink>. </para> </sect2> <sect2 id="with-ampersands"> <title>With ampersands</title> <para> Here’s a <ulink url="http://example.com/?foo=1&bar=2">link with an ampersand in the URL</ulink>. </para> <para> Here’s a link with an amersand in the link text: <ulink url="http://att.com/">AT&T</ulink>. </para> <para> Here’s an <ulink url="/script?foo=1&bar=2">inline link</ulink>. </para> <para> Here’s an <ulink url="/script?foo=1&bar=2">inline link in pointy braces</ulink>. </para> </sect2> <sect2 id="autolinks"> <title>Autolinks</title> <para> With an ampersand: <ulink url="http://example.com/?foo=1&bar=2">http://example.com/?foo=1&bar=2</ulink> </para> <itemizedlist> <listitem> <para> In a list? </para> </listitem> <listitem> <para> <ulink url="http://example.com/">http://example.com/</ulink> </para> </listitem> <listitem> <para> It should. </para> </listitem> </itemizedlist> <para> An e-mail address: <email>nobody@nowhere.net</email> </para> <blockquote> <para> Blockquoted: <ulink url="http://example.com/">http://example.com/</ulink> </para> </blockquote> <para> Auto-links should not occur here: <literal><http://example.com/></literal> </para> <programlisting> or here: <http://example.com/> </programlisting> </sect2> </sect1> <sect1 id="images"> <title>Images</title> <para> From <quote>Voyage dans la Lune</quote> by Georges Melies (1902): </para> <figure> <title>lalune fig caption</title> <mediaobject> <imageobject> <imagedata fileref="lalune.jpg" /> </imageobject> <textobject><phrase>lalune alt text shadowed by fig caption</phrase></textobject> </mediaobject> </figure> <para> Here is a movie <inlinemediaobject> <imageobject> <imagedata fileref="movie.jpg" /> </imageobject> </inlinemediaobject> icon. And here a second movie <inlinemediaobject> <alt>alt text</alt> <imageobject> <imagedata fileref="movie.jpg" /> </imageobject> </inlinemediaobject> icon. And here a third movie <inlinemediaobject> <textobject><phrase>alt text</phrase></textobject> <imageobject> <imagedata fileref="movie.jpg" /> </imageobject> </inlinemediaobject> icon. </para> <mediaobject> <imageobject> <imagedata fileref="lalune.jpg" /> </imageobject> <textobject><phrase>lalune no figure alt text</phrase></textobject> </mediaobject> </sect1> <sect1 id="footnotes"> <title>Footnotes</title> <para> Here is a footnote reference,<footnote> <para> Here is the footnote. It can go anywhere after the footnote reference. It need not be placed at the end of the document. </para> </footnote> and another.<footnote> <para> Here’s the long note. This one contains multiple blocks. </para> <para> Subsequent blocks are indented to show that they belong to the footnote (as with list items). </para> <programlisting> { <code> } </programlisting> <para> If you want, you can indent every line, but you can also be lazy and just indent the first line of each block. </para> </footnote> This should <emphasis>not</emphasis> be a footnote reference, because it contains a space.[^my note] Here is an inline note.<footnote> <para> This is <emphasis>easier</emphasis> to type. Inline notes may contain <ulink url="http://google.com">links</ulink> and <literal>]</literal> verbatim characters, as well as [bracketed text]. </para> </footnote> </para> <blockquote> <para> Notes can go in quotes.<footnote> <para> In quote. </para> </footnote> </para> </blockquote> <orderedlist numeration="arabic"> <listitem> <para> And in list items.<footnote> <para> In list. </para> </footnote> </para> </listitem> </orderedlist> <para> This paragraph should not be part of the note, as it is not indented. </para> </sect1> <sect1 id="tables"> <title>Tables</title> <para> Simple table with caption: </para> <table> <title> Demonstration of simple table syntax. </title> <tgroup cols="4"> <colspec align="right" /> <colspec align="left" /> <colspec align="center" /> <colspec align="left" /> <thead> <row> <entry> Right </entry> <entry> Left </entry> <entry> Center </entry> <entry> Default </entry> </row> </thead> <tbody> <row> <entry> 12 </entry> <entry> 12 </entry> <entry> 12 </entry> <entry> 12 </entry> </row> <row> <entry> 123 </entry> <entry> 123 </entry> <entry> 123 </entry> <entry> 123 </entry> </row> <row> <entry> 1 </entry> <entry> 1 </entry> <entry> 1 </entry> <entry> 1 </entry> </row> </tbody> </tgroup> </table> <para> Simple table without caption: </para> <informaltable> <tgroup cols="4"> <colspec align="right" /> <colspec align="left" /> <colspec align="center" /> <colspec align="left" /> <thead> <row> <entry> Right </entry> <entry> Left </entry> <entry> Center </entry> <entry> Default </entry> </row> </thead> <tbody> <row> <entry> 12 </entry> <entry> 12 </entry> <entry> 12 </entry> <entry> 12 </entry> </row> <row> <entry> 123 </entry> <entry> 123 </entry> <entry> 123 </entry> <entry> 123 </entry> </row> <row> <entry> 1 </entry> <entry> 1 </entry> <entry> 1 </entry> <entry> 1 </entry> </row> </tbody> </tgroup> </informaltable> <para> Simple table indented two spaces: </para> <table> <title> Demonstration of simple table syntax. </title> <tgroup cols="4"> <colspec align="right" /> <colspec align="left" /> <colspec align="center" /> <colspec align="left" /> <thead> <row> <entry> Right </entry> <entry> Left </entry> <entry> Center </entry> <entry> Default </entry> </row> </thead> <tbody> <row> <entry> 12 </entry> <entry> 12 </entry> <entry> 12 </entry> <entry> 12 </entry> </row> <row> <entry> 123 </entry> <entry> 123 </entry> <entry> 123 </entry> <entry> 123 </entry> </row> <row> <entry> 1 </entry> <entry> 1 </entry> <entry> 1 </entry> <entry> 1 </entry> </row> </tbody> </tgroup> </table> <para> Multiline table with caption: </para> <table> <title> Here's the caption. It may span multiple lines. </title> <tgroup cols="4"> <colspec colwidth="2*" align="center" /> <colspec colwidth="2*" align="left" /> <colspec colwidth="3*" align="right" /> <colspec colwidth="3*" align="left" /> <thead> <row> <entry> Centered Header </entry> <entry> Left Aligned </entry> <entry> Right Aligned </entry> <entry> Default aligned </entry> </row> </thead> <tbody> <row> <entry> First </entry> <entry> row </entry> <entry> 12.0 </entry> <entry> Example of a row that spans multiple lines. </entry> </row> <row> <entry> Second </entry> <entry> row </entry> <entry> 5.0 </entry> <entry> Here's another one. Note the blank line between rows. </entry> </row> </tbody> </tgroup> </table> <para> Multiline table without caption: </para> <informaltable> <tgroup cols="4"> <colspec colwidth="1*" align="center" /> <colspec colwidth="2*" align="left" /> <colspec colwidth="3*" align="right" /> <colspec colwidth="4*" align="left" /> <thead> <row> <entry> Centered Header </entry> <entry> Left Aligned </entry> <entry> Right Aligned </entry> <entry> Default aligned </entry> </row> </thead> <tbody> <row> <entry> First </entry> <entry> row </entry> <entry> 12.0 </entry> <entry> Example of a row that spans multiple lines. </entry> </row> <row> <entry> Second </entry> <entry> row </entry> <entry> 5.0 </entry> <entry> Here's another one. Note the blank line between rows. </entry> </row> </tbody> </tgroup> </informaltable> <para> Table without column headers: </para> <informaltable> <tgroup cols="4"> <colspec align="right" /> <colspec align="left" /> <colspec align="center" /> <colspec align="right" /> <tbody> <row> <entry> 12 </entry> <entry> 12 </entry> <entry> 12 </entry> <entry> 12 </entry> </row> <row> <entry> 123 </entry> <entry> 123 </entry> <entry> 123 </entry> <entry> 123 </entry> </row> <row> <entry> 1 </entry> <entry> 1 </entry> <entry> 1 </entry> <entry> 1 </entry> </row> </tbody> </tgroup> </informaltable> <para> Multiline table without column headers: </para> <informaltable> <tgroup cols="4"> <colspec colwidth="10*" align="center" /> <colspec colwidth="10*" align="left" /> <colspec colwidth="10*" align="right" /> <colspec colwidth="10*" align="left" /> <tbody> <row> <entry> First </entry> <entry> row </entry> <entry> 12.0 </entry> <entry> Example of a row that spans multiple lines. </entry> </row> <row> <entry> Second </entry> <entry> row </entry> <entry> 5.0 </entry> <entry> Here's another one. Note the blank line between rows. </entry> </row> </tbody> </tgroup> </informaltable> </sect1> </article>