diff options
author | John MacFarlane <fiddlosopher@gmail.com> | 2012-05-08 20:26:39 -0700 |
---|---|---|
committer | John MacFarlane <fiddlosopher@gmail.com> | 2012-05-08 20:26:39 -0700 |
commit | c20c139255a83e1dcaf1d923375b3759614adaf3 (patch) | |
tree | ba5fb9e2b1175a8341a07080b3c8f0f8f41bda7b /tests | |
parent | b79df946d1e162c9b6eae82674490b6425b0c9f2 (diff) | |
download | pandoc-c20c139255a83e1dcaf1d923375b3759614adaf3.tar.gz |
Added docbook reader tests (still failing).
Diffstat (limited to 'tests')
-rw-r--r-- | tests/docbook-reader.docbook | 1876 | ||||
-rw-r--r-- | tests/docbook-reader.native | 498 |
2 files changed, 2374 insertions, 0 deletions
diff --git a/tests/docbook-reader.docbook b/tests/docbook-reader.docbook new file mode 100644 index 000000000..75e951035 --- /dev/null +++ b/tests/docbook-reader.docbook @@ -0,0 +1,1876 @@ +<?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> + <author> + <firstname>John</firstname> + <surname>MacFarlane</surname> + </author> + <author> + <firstname></firstname> + <surname>Anonymous</surname> + </author> + <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> + </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> + <para> + There should be a hard line break<literallayout></literallayout>here. + </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> + <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 tight: + </para> + <itemizedlist> + <listitem> + <para> + asterisk 1 + </para> + </listitem> + <listitem> + <para> + asterisk 2 + </para> + </listitem> + <listitem> + <para> + asterisk 3 + </para> + </listitem> + </itemizedlist> + <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 tight: + </para> + <itemizedlist> + <listitem> + <para> + Plus 1 + </para> + </listitem> + <listitem> + <para> + Plus 2 + </para> + </listitem> + <listitem> + <para> + Plus 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 tight: + </para> + <itemizedlist> + <listitem> + <para> + Minus 1 + </para> + </listitem> + <listitem> + <para> + Minus 2 + </para> + </listitem> + <listitem> + <para> + Minus 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> + <para> + Tight: + </para> + <orderedlist numeration="arabic"> + <listitem> + <para> + First + </para> + </listitem> + <listitem> + <para> + Second + </para> + </listitem> + <listitem> + <para> + Third + </para> + </listitem> + </orderedlist> + <para> + and: + </para> + <orderedlist numeration="arabic"> + <listitem> + <para> + One + </para> + </listitem> + <listitem> + <para> + Two + </para> + </listitem> + <listitem> + <para> + Three + </para> + </listitem> + </orderedlist> + <para> + Loose using tabs: + </para> + <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> +</sect1> +<sect1 id="definition-lists"> + <title>Definition Lists</title> + <para> + Tight using spaces: + </para> + <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> + Tight using tabs: + </para> + <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> + Loose: + </para> + <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, tight: + </para> + <variablelist> + <varlistentry> + <term> + apple + </term> + <listitem> + <para> + red fruit + </para> + <para> + computer + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + orange + </term> + <listitem> + <para> + orange fruit + </para> + <para> + bank + </para> + </listitem> + </varlistentry> + </variablelist> + <para> + Multiple definitions, loose: + </para> + <variablelist> + <varlistentry> + <term> + apple + </term> + <listitem> + <para> + red fruit + </para> + <para> + computer + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + orange + </term> + <listitem> + <para> + orange fruit + </para> + <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> + <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="html-blocks"> + <title>HTML Blocks</title> + <para> + Simple block on one line: + </para> + <div> + foo + </div> + <para> + And nested without indentation: + </para> + <div> + <div> + <div> + foo + </div> + </div> + <div> + bar + </div> + </div> + <para> + Interpreted markdown in a table: + </para> + <table> + <tr> + <td> + This is <emphasis>emphasized</emphasis> + </td> + <td> + And this is <emphasis role="strong">strong</emphasis> + </td> + </tr> + </table> + + <script type="text/javascript">document.write('This *should not* be interpreted as markdown');</script> + <para> + Here’s a simple block: + </para> + <div> + + foo + </div> + <para> + This should be a code block, though: + </para> + <programlisting> +<div> + foo +</div> +</programlisting> + <para> + As should this: + </para> + <programlisting> +<div>foo</div> +</programlisting> + <para> + Now, nested: + </para> + <div> + <div> + <div> + + foo + </div> + </div> + </div> + <para> + This should just be an HTML comment: + </para> + <!-- Comment --> + <para> + Multiline: + </para> + <!-- + Blah + Blah + --> + + <!-- + This is another comment. + --> + <para> + Code block: + </para> + <programlisting> +<!-- Comment --> +</programlisting> + <para> + Just plain comment, with trailing spaces on the line: + </para> + <!-- foo --> + <para> + Code: + </para> + <programlisting> +<hr /> +</programlisting> + <para> + Hr’s: + </para> + <hr> + + <hr /> + + <hr /> + + <hr> + + <hr /> + + <hr /> + + <hr class="foo" id="bar" /> + + <hr class="foo" id="bar" /> + + <hr class="foo" id="bar"> +</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> + <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>Oak,</quote> <quote>elm,</quote> and <quote>beech</quote> are names + of trees. So is <quote>pine.</quote> + </para> + <para> + <quote>He said, <quote>I want to go.</quote></quote> Were you alive in the + 70’s? + </para> + <para> + Here is some quoted <quote><literal>code</literal></quote> and a + <quote><ulink url="http://example.com/?foo=1&bar=2">quoted + link</ulink></quote>. + </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="latex"> + <title>LaTeX</title> + <itemizedlist> + <listitem> + <para> + </para> + </listitem> + <listitem> + <para> + 2 + 2 = 4 + </para> + </listitem> + <listitem> + <para> + <emphasis>x</emphasis> ∈ <emphasis>y</emphasis> + </para> + </listitem> + <listitem> + <para> + <emphasis>α</emphasis> ∧ <emphasis>ω</emphasis> + </para> + </listitem> + <listitem> + <para> + 223 + </para> + </listitem> + <listitem> + <para> + <emphasis>p</emphasis>-Tree + </para> + </listitem> + <listitem> + <para> + Here’s some display math: + $\frac{d}{dx}f(x)=\lim_{h\to 0}\frac{f(x+h)-f(x)}{h}$ + </para> + </listitem> + <listitem> + <para> + Here’s one that has a line break in it: + <emphasis>α</emphasis> + <emphasis>ω</emphasis> × <emphasis>x</emphasis><superscript>2</superscript>. + </para> + </listitem> + </itemizedlist> + <para> + These shouldn’t be math: + </para> + <itemizedlist> + <listitem> + <para> + To get the famous equation, write <literal>$e = mc^2$</literal>. + </para> + </listitem> + <listitem> + <para> + $22,000 is a <emphasis>lot</emphasis> of money. So is $34,000. (It + worked if <quote>lot</quote> is emphasized.) + </para> + </listitem> + <listitem> + <para> + Shoes ($20) and socks ($5). + </para> + </listitem> + <listitem> + <para> + Escaped <literal>$</literal>: $73 <emphasis>this should be + emphasized</emphasis> 23$. + </para> + </listitem> + </itemizedlist> + <para> + Here’s a LaTeX table: + </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 link (<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"><literal>http://example.com/?foo=1&bar=2</literal></ulink> + </para> + <itemizedlist> + <listitem> + <para> + In a list? + </para> + </listitem> + <listitem> + <para> + <ulink url="http://example.com/"><literal>http://example.com/</literal></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/"><literal>http://example.com/</literal></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</title> + <mediaobject> + <imageobject> + <imagedata fileref="lalune.jpg" /> + </imageobject> + <textobject><phrase>lalune</phrase></textobject> + </mediaobject> + </figure> + <para> + Here is a movie <inlinemediaobject> + <imageobject> + <imagedata fileref="movie.jpg" /> + </imageobject> + </inlinemediaobject> icon. + </para> +</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="15*" align="center" /> + <colspec colwidth="13*" align="left" /> + <colspec colwidth="16*" align="right" /> + <colspec colwidth="33*" 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="15*" align="center" /> + <colspec colwidth="13*" align="left" /> + <colspec colwidth="16*" align="right" /> + <colspec colwidth="33*" 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="15*" align="center" /> + <colspec colwidth="13*" align="left" /> + <colspec colwidth="16*" align="right" /> + <colspec colwidth="33*" 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> diff --git a/tests/docbook-reader.native b/tests/docbook-reader.native new file mode 100644 index 000000000..f13d48820 --- /dev/null +++ b/tests/docbook-reader.native @@ -0,0 +1,498 @@ +Pandoc (Meta {docTitle = [Str "Pandoc",Space,Str "Test",Space,Str "Suite"], docAuthors = [[Str "John",Space,Str "MacFarlane"],[Str "Anonymous"]], docDate = [Str "July",Space,Str "17,",Space,Str "2006"]}) +[Para [Str "This",Space,Str "is",Space,Str "a",Space,Str "set",Space,Str "of",Space,Str "tests",Space,Str "for",Space,Str "pandoc.",Space,Str "Most",Space,Str "of",Space,Str "them",Space,Str "are",Space,Str "adapted",Space,Str "from",Space,Str "John",Space,Str "Gruber\8217s",Space,Str "markdown",Space,Str "test",Space,Str "suite."] +,Header 1 [Str "Headers"] +,Header 2 [Str "Level",Space,Str "2",Space,Str "with",Space,Str "an",Space,Link [Str "embedded",Space,Str "link"] ("/url","")] +,Header 3 [Str "Level",Space,Str "3",Space,Str "with",Space,Emph [Str "emphasis"]] +,Header 4 [Str "Level",Space,Str "4"] +,Header 5 [Str "Level",Space,Str "5"] +,Header 1 [Str "Level",Space,Str "1"] +,Header 2 [Str "Level",Space,Str "2",Space,Str "with",Space,Emph [Str "emphasis"]] +,Header 3 [Str "Level",Space,Str "3"] +,Para [Str "with",Space,Str "no",Space,Str "blank",Space,Str "line"] +,Header 2 [Str "Level",Space,Str "2"] +,Para [Str "with",Space,Str "no",Space,Str "blank",Space,Str "line"] +,Header 1 [Str "Paragraphs"] +,Para [Str "Here\8217s",Space,Str "a",Space,Str "regular",Space,Str "paragraph."] +,Para [Str "In",Space,Str "Markdown",Space,Str "1.0.0",Space,Str "and",Space,Str "earlier.",Space,Str "Version",Space,Str "8.",Space,Str "This",Space,Str "line",Space,Str "turns",Space,Str "into",Space,Str "a",Space,Str "list",Space,Str "item.",Space,Str "Because",Space,Str "a",Space,Str "hard-wrapped",Space,Str "line",Space,Str "in",Space,Str "the",Space,Str "middle",Space,Str "of",Space,Str "a",Space,Str "paragraph",Space,Str "looked",Space,Str "like",Space,Str "a",Space,Str "list",Space,Str "item."] +,Para [Str "Here\8217s",Space,Str "one",Space,Str "with",Space,Str "a",Space,Str "bullet.",Space,Str "*",Space,Str "criminey."] +,Para [Str "There",Space,Str "should",Space,Str "be",Space,Str "a",Space,Str "hard",Space,Str "line",Space,Str "break",LineBreak,Str "here."] +,Header 1 [Str "Block",Space,Str "Quotes"] +,Para [Str "E-mail",Space,Str "style:"] +,BlockQuote + [Para [Str "This",Space,Str "is",Space,Str "a",Space,Str "block",Space,Str "quote.",Space,Str "It",Space,Str "is",Space,Str "pretty",Space,Str "short."]] +,BlockQuote + [Para [Str "Code",Space,Str "in",Space,Str "a",Space,Str "block",Space,Str "quote:"] + ,CodeBlock ("",[],[]) "sub status {\n print \"working\";\n}" + ,Para [Str "A",Space,Str "list:"] + ,OrderedList (1,Decimal,Period) + [[Plain [Str "item",Space,Str "one"]] + ,[Plain [Str "item",Space,Str "two"]]] + ,Para [Str "Nested",Space,Str "block",Space,Str "quotes:"] + ,BlockQuote + [Para [Str "nested"]] + ,BlockQuote + [Para [Str "nested"]]] +,Para [Str "This",Space,Str "should",Space,Str "not",Space,Str "be",Space,Str "a",Space,Str "block",Space,Str "quote:",Space,Str "2",Space,Str ">",Space,Str "1."] +,Para [Str "And",Space,Str "a",Space,Str "following",Space,Str "paragraph."] +,Header 1 [Str "Code",Space,Str "Blocks"] +,Para [Str "Code:"] +,CodeBlock ("",[],[]) "---- (should be four hyphens)\n\nsub status {\n print \"working\";\n}\n\nthis code block is indented by one tab" +,Para [Str "And:"] +,CodeBlock ("",[],[]) " this code block is indented by two tabs\n\nThese should not be escaped: \\$ \\\\ \\> \\[ \\{" +,Header 1 [Str "Lists"] +,Header 2 [Str "Unordered"] +,Para [Str "Asterisks",Space,Str "tight:"] +,BulletList + [[Plain [Str "asterisk",Space,Str "1"]] + ,[Plain [Str "asterisk",Space,Str "2"]] + ,[Plain [Str "asterisk",Space,Str "3"]]] +,Para [Str "Asterisks",Space,Str "loose:"] +,BulletList + [[Para [Str "asterisk",Space,Str "1"]] + ,[Para [Str "asterisk",Space,Str "2"]] + ,[Para [Str "asterisk",Space,Str "3"]]] +,Para [Str "Pluses",Space,Str "tight:"] +,BulletList + [[Plain [Str "Plus",Space,Str "1"]] + ,[Plain [Str "Plus",Space,Str "2"]] + ,[Plain [Str "Plus",Space,Str "3"]]] +,Para [Str "Pluses",Space,Str "loose:"] +,BulletList + [[Para [Str "Plus",Space,Str "1"]] + ,[Para [Str "Plus",Space,Str "2"]] + ,[Para [Str "Plus",Space,Str "3"]]] +,Para [Str "Minuses",Space,Str "tight:"] +,BulletList + [[Plain [Str "Minus",Space,Str "1"]] + ,[Plain [Str "Minus",Space,Str "2"]] + ,[Plain [Str "Minus",Space,Str "3"]]] +,Para [Str "Minuses",Space,Str "loose:"] +,BulletList + [[Para [Str "Minus",Space,Str "1"]] + ,[Para [Str "Minus",Space,Str "2"]] + ,[Para [Str "Minus",Space,Str "3"]]] +,Header 2 [Str "Ordered"] +,Para [Str "Tight:"] +,OrderedList (1,Decimal,Period) + [[Plain [Str "First"]] + ,[Plain [Str "Second"]] + ,[Plain [Str "Third"]]] +,Para [Str "and:"] +,OrderedList (1,Decimal,Period) + [[Plain [Str "One"]] + ,[Plain [Str "Two"]] + ,[Plain [Str "Three"]]] +,Para [Str "Loose",Space,Str "using",Space,Str "tabs:"] +,OrderedList (1,Decimal,Period) + [[Para [Str "First"]] + ,[Para [Str "Second"]] + ,[Para [Str "Third"]]] +,Para [Str "and",Space,Str "using",Space,Str "spaces:"] +,OrderedList (1,Decimal,Period) + [[Para [Str "One"]] + ,[Para [Str "Two"]] + ,[Para [Str "Three"]]] +,Para [Str "Multiple",Space,Str "paragraphs:"] +,OrderedList (1,Decimal,Period) + [[Para [Str "Item",Space,Str "1,",Space,Str "graf",Space,Str "one."] + ,Para [Str "Item",Space,Str "1.",Space,Str "graf",Space,Str "two.",Space,Str "The",Space,Str "quick",Space,Str "brown",Space,Str "fox",Space,Str "jumped",Space,Str "over",Space,Str "the",Space,Str "lazy",Space,Str "dog\8217s",Space,Str "back."]] + ,[Para [Str "Item",Space,Str "2."]] + ,[Para [Str "Item",Space,Str "3."]]] +,Header 2 [Str "Nested"] +,BulletList + [[Plain [Str "Tab"] + ,BulletList + [[Plain [Str "Tab"] + ,BulletList + [[Plain [Str "Tab"]]]]]]] +,Para [Str "Here\8217s",Space,Str "another:"] +,OrderedList (1,Decimal,Period) + [[Plain [Str "First"]] + ,[Plain [Str "Second:"] + ,BulletList + [[Plain [Str "Fee"]] + ,[Plain [Str "Fie"]] + ,[Plain [Str "Foe"]]]] + ,[Plain [Str "Third"]]] +,Para [Str "Same",Space,Str "thing",Space,Str "but",Space,Str "with",Space,Str "paragraphs:"] +,OrderedList (1,Decimal,Period) + [[Para [Str "First"]] + ,[Para [Str "Second:"] + ,BulletList + [[Plain [Str "Fee"]] + ,[Plain [Str "Fie"]] + ,[Plain [Str "Foe"]]]] + ,[Para [Str "Third"]]] +,Header 2 [Str "Tabs",Space,Str "and",Space,Str "spaces"] +,BulletList + [[Para [Str "this",Space,Str "is",Space,Str "a",Space,Str "list",Space,Str "item",Space,Str "indented",Space,Str "with",Space,Str "tabs"]] + ,[Para [Str "this",Space,Str "is",Space,Str "a",Space,Str "list",Space,Str "item",Space,Str "indented",Space,Str "with",Space,Str "spaces"] + ,BulletList + [[Para [Str "this",Space,Str "is",Space,Str "an",Space,Str "example",Space,Str "list",Space,Str "item",Space,Str "indented",Space,Str "with",Space,Str "tabs"]] + ,[Para [Str "this",Space,Str "is",Space,Str "an",Space,Str "example",Space,Str "list",Space,Str "item",Space,Str "indented",Space,Str "with",Space,Str "spaces"]]]]] +,Header 2 [Str "Fancy",Space,Str "list",Space,Str "markers"] +,OrderedList (2,Decimal,TwoParens) + [[Plain [Str "begins",Space,Str "with",Space,Str "2"]] + ,[Para [Str "and",Space,Str "now",Space,Str "3"] + ,Para [Str "with",Space,Str "a",Space,Str "continuation"] + ,OrderedList (4,LowerRoman,Period) + [[Plain [Str "sublist",Space,Str "with",Space,Str "roman",Space,Str "numerals,",Space,Str "starting",Space,Str "with",Space,Str "4"]] + ,[Plain [Str "more",Space,Str "items"] + ,OrderedList (1,UpperAlpha,TwoParens) + [[Plain [Str "a",Space,Str "subsublist"]] + ,[Plain [Str "a",Space,Str "subsublist"]]]]]]] +,Para [Str "Nesting:"] +,OrderedList (1,UpperAlpha,Period) + [[Plain [Str "Upper",Space,Str "Alpha"] + ,OrderedList (1,UpperRoman,Period) + [[Plain [Str "Upper",Space,Str "Roman."] + ,OrderedList (6,Decimal,TwoParens) + [[Plain [Str "Decimal",Space,Str "start",Space,Str "with",Space,Str "6"] + ,OrderedList (3,LowerAlpha,OneParen) + [[Plain [Str "Lower",Space,Str "alpha",Space,Str "with",Space,Str "paren"]]]]]]]]] +,Para [Str "Autonumbering:"] +,OrderedList (1,DefaultStyle,DefaultDelim) + [[Plain [Str "Autonumber."]] + ,[Plain [Str "More."] + ,OrderedList (1,DefaultStyle,DefaultDelim) + [[Plain [Str "Nested."]]]]] +,Para [Str "Should",Space,Str "not",Space,Str "be",Space,Str "a",Space,Str "list",Space,Str "item:"] +,Para [Str "M.A.\160\&2007"] +,Para [Str "B.",Space,Str "Williams"] +,Header 1 [Str "Definition",Space,Str "Lists"] +,Para [Str "Tight",Space,Str "using",Space,Str "spaces:"] +,DefinitionList + [([Str "apple"], + [[Plain [Str "red",Space,Str "fruit"]]]) + ,([Str "orange"], + [[Plain [Str "orange",Space,Str "fruit"]]]) + ,([Str "banana"], + [[Plain [Str "yellow",Space,Str "fruit"]]])] +,Para [Str "Tight",Space,Str "using",Space,Str "tabs:"] +,DefinitionList + [([Str "apple"], + [[Plain [Str "red",Space,Str "fruit"]]]) + ,([Str "orange"], + [[Plain [Str "orange",Space,Str "fruit"]]]) + ,([Str "banana"], + [[Plain [Str "yellow",Space,Str "fruit"]]])] +,Para [Str "Loose:"] +,DefinitionList + [([Str "apple"], + [[Para [Str "red",Space,Str "fruit"]]]) + ,([Str "orange"], + [[Para [Str "orange",Space,Str "fruit"]]]) + ,([Str "banana"], + [[Para [Str "yellow",Space,Str "fruit"]]])] +,Para [Str "Multiple",Space,Str "blocks",Space,Str "with",Space,Str "italics:"] +,DefinitionList + [([Emph [Str "apple"]], + [[Para [Str "red",Space,Str "fruit"] + ,Para [Str "contains",Space,Str "seeds,",Space,Str "crisp,",Space,Str "pleasant",Space,Str "to",Space,Str "taste"]]]) + ,([Emph [Str "orange"]], + [[Para [Str "orange",Space,Str "fruit"] + ,CodeBlock ("",[],[]) "{ orange code block }" + ,BlockQuote + [Para [Str "orange",Space,Str "block",Space,Str "quote"]]]])] +,Para [Str "Multiple",Space,Str "definitions,",Space,Str "tight:"] +,DefinitionList + [([Str "apple"], + [[Plain [Str "red",Space,Str "fruit"]] + ,[Plain [Str "computer"]]]) + ,([Str "orange"], + [[Plain [Str "orange",Space,Str "fruit"]] + ,[Plain [Str "bank"]]])] +,Para [Str "Multiple",Space,Str "definitions,",Space,Str "loose:"] +,DefinitionList + [([Str "apple"], + [[Para [Str "red",Space,Str "fruit"]] + ,[Para [Str "computer"]]]) + ,([Str "orange"], + [[Para [Str "orange",Space,Str "fruit"]] + ,[Para [Str "bank"]]])] +,Para [Str "Blank",Space,Str "line",Space,Str "after",Space,Str "term,",Space,Str "indented",Space,Str "marker,",Space,Str "alternate",Space,Str "markers:"] +,DefinitionList + [([Str "apple"], + [[Para [Str "red",Space,Str "fruit"]] + ,[Para [Str "computer"]]]) + ,([Str "orange"], + [[Para [Str "orange",Space,Str "fruit"] + ,OrderedList (1,Decimal,Period) + [[Plain [Str "sublist"]] + ,[Plain [Str "sublist"]]]]])] +,Header 1 [Str "HTML",Space,Str "Blocks"] +,Para [Str "Simple",Space,Str "block",Space,Str "on",Space,Str "one",Space,Str "line:"] +,RawBlock "html" "<div>" +,Plain [Str "foo"] +,RawBlock "html" "</div>\n" +,Para [Str "And",Space,Str "nested",Space,Str "without",Space,Str "indentation:"] +,RawBlock "html" "<div>\n<div>\n<div>" +,Plain [Str "foo"] +,RawBlock "html" "</div>\n</div>\n<div>" +,Plain [Str "bar"] +,RawBlock "html" "</div>\n</div>\n" +,Para [Str "Interpreted",Space,Str "markdown",Space,Str "in",Space,Str "a",Space,Str "table:"] +,RawBlock "html" "<table>\n<tr>\n<td>" +,Plain [Str "This",Space,Str "is",Space,Emph [Str "emphasized"]] +,RawBlock "html" "</td>\n<td>" +,Plain [Str "And",Space,Str "this",Space,Str "is",Space,Strong [Str "strong"]] +,RawBlock "html" "</td>\n</tr>\n</table>\n\n<script type=\"text/javascript\">document.write('This *should not* be interpreted as markdown');</script>\n" +,Para [Str "Here\8217s",Space,Str "a",Space,Str "simple",Space,Str "block:"] +,RawBlock "html" "<div>\n " +,Plain [Str "foo"] +,RawBlock "html" "</div>\n" +,Para [Str "This",Space,Str "should",Space,Str "be",Space,Str "a",Space,Str "code",Space,Str "block,",Space,Str "though:"] +,CodeBlock ("",[],[]) "<div>\n foo\n</div>" +,Para [Str "As",Space,Str "should",Space,Str "this:"] +,CodeBlock ("",[],[]) "<div>foo</div>" +,Para [Str "Now,",Space,Str "nested:"] +,RawBlock "html" "<div>\n <div>\n <div>\n " +,Plain [Str "foo"] +,RawBlock "html" "</div>\n </div>\n</div>\n" +,Para [Str "This",Space,Str "should",Space,Str "just",Space,Str "be",Space,Str "an",Space,Str "HTML",Space,Str "comment:"] +,RawBlock "html" "<!-- Comment -->\n" +,Para [Str "Multiline:"] +,RawBlock "html" "<!--\nBlah\nBlah\n-->\n\n<!--\n This is another comment.\n-->\n" +,Para [Str "Code",Space,Str "block:"] +,CodeBlock ("",[],[]) "<!-- Comment -->" +,Para [Str "Just",Space,Str "plain",Space,Str "comment,",Space,Str "with",Space,Str "trailing",Space,Str "spaces",Space,Str "on",Space,Str "the",Space,Str "line:"] +,RawBlock "html" "<!-- foo --> \n" +,Para [Str "Code:"] +,CodeBlock ("",[],[]) "<hr />" +,Para [Str "Hr\8217s:"] +,RawBlock "html" "<hr>\n\n<hr />\n\n<hr />\n\n<hr> \n\n<hr /> \n\n<hr /> \n\n<hr class=\"foo\" id=\"bar\" />\n\n<hr class=\"foo\" id=\"bar\" />\n\n<hr class=\"foo\" id=\"bar\">\n" +,Header 1 [Str "Inline",Space,Str "Markup"] +,Para [Str "This",Space,Str "is",Space,Emph [Str "emphasized"],Str ",",Space,Str "and",Space,Str "so",Space,Emph [Str "is",Space,Str "this"],Str "."] +,Para [Str "This",Space,Str "is",Space,Strong [Str "strong"],Str ",",Space,Str "and",Space,Str "so",Space,Strong [Str "is",Space,Str "this"],Str "."] +,Para [Str "An",Space,Emph [Link [Str "emphasized",Space,Str "link"] ("/url","")],Str "."] +,Para [Strong [Emph [Str "This",Space,Str "is",Space,Str "strong",Space,Str "and",Space,Str "em."]]] +,Para [Str "So",Space,Str "is",Space,Strong [Emph [Str "this"]],Space,Str "word."] +,Para [Strong [Emph [Str "This",Space,Str "is",Space,Str "strong",Space,Str "and",Space,Str "em."]]] +,Para [Str "So",Space,Str "is",Space,Strong [Emph [Str "this"]],Space,Str "word."] +,Para [Str "This",Space,Str "is",Space,Str "code:",Space,Code ("",[],[]) ">",Str ",",Space,Code ("",[],[]) "$",Str ",",Space,Code ("",[],[]) "\\",Str ",",Space,Code ("",[],[]) "\\$",Str ",",Space,Code ("",[],[]) "<html>",Str "."] +,Para [Strikeout [Str "This",Space,Str "is",Space,Emph [Str "strikeout"],Str "."]] +,Para [Str "Superscripts:",Space,Str "a",Superscript [Str "bc"],Str "d",Space,Str "a",Superscript [Emph [Str "hello"]],Space,Str "a",Superscript [Str "hello\160there"],Str "."] +,Para [Str "Subscripts:",Space,Str "H",Subscript [Str "2"],Str "O,",Space,Str "H",Subscript [Str "23"],Str "O,",Space,Str "H",Subscript [Str "many\160of\160them"],Str "O."] +,Para [Str "These",Space,Str "should",Space,Str "not",Space,Str "be",Space,Str "superscripts",Space,Str "or",Space,Str "subscripts,",Space,Str "because",Space,Str "of",Space,Str "the",Space,Str "unescaped",Space,Str "spaces:",Space,Str "a^b",Space,Str "c^d,",Space,Str "a~b",Space,Str "c~d."] +,Header 1 [Str "Smart",Space,Str "quotes,",Space,Str "ellipses,",Space,Str "dashes"] +,Para [Quoted DoubleQuote [Str "Hello,"],Space,Str "said",Space,Str "the",Space,Str "spider.",Space,Quoted DoubleQuote [Quoted SingleQuote [Str "Shelob"],Space,Str "is",Space,Str "my",Space,Str "name."]] +,Para [Quoted SingleQuote [Str "A"],Str ",",Space,Quoted SingleQuote [Str "B"],Str ",",Space,Str "and",Space,Quoted SingleQuote [Str "C"],Space,Str "are",Space,Str "letters."] +,Para [Quoted SingleQuote [Str "Oak,"],Space,Quoted SingleQuote [Str "elm,"],Space,Str "and",Space,Quoted SingleQuote [Str "beech"],Space,Str "are",Space,Str "names",Space,Str "of",Space,Str "trees.",Space,Str "So",Space,Str "is",Space,Quoted SingleQuote [Str "pine."]] +,Para [Quoted SingleQuote [Str "He",Space,Str "said,",Space,Quoted DoubleQuote [Str "I",Space,Str "want",Space,Str "to",Space,Str "go."]],Space,Str "Were",Space,Str "you",Space,Str "alive",Space,Str "in",Space,Str "the",Space,Str "70\8217s?"] +,Para [Str "Here",Space,Str "is",Space,Str "some",Space,Str "quoted",Space,Quoted SingleQuote [Code ("",[],[]) "code"],Space,Str "and",Space,Str "a",Space,Quoted DoubleQuote [Link [Str "quoted",Space,Str "link"] ("http://example.com/?foo=1&bar=2","")],Str "."] +,Para [Str "Some",Space,Str "dashes:",Space,Str "one\8212two",Space,Str "\8212",Space,Str "three\8212four",Space,Str "\8212",Space,Str "five."] +,Para [Str "Dashes",Space,Str "between",Space,Str "numbers:",Space,Str "5\8211\&7,",Space,Str "255\8211\&66,",Space,Str "1987\8211\&1999."] +,Para [Str "Ellipses\8230and\8230and\8230."] +,Header 1 [Str "LaTeX"] +,BulletList + [[Plain [RawInline "tex" "\\cite[22-23]{smith.1899}"]] + ,[Plain [Math InlineMath "2+2=4"]] + ,[Plain [Math InlineMath "x \\in y"]] + ,[Plain [Math InlineMath "\\alpha \\wedge \\omega"]] + ,[Plain [Math InlineMath "223"]] + ,[Plain [Math InlineMath "p",Str "-Tree"]] + ,[Plain [Str "Here\8217s",Space,Str "some",Space,Str "display",Space,Str "math:",Space,Math DisplayMath "\\frac{d}{dx}f(x)=\\lim_{h\\to 0}\\frac{f(x+h)-f(x)}{h}"]] + ,[Plain [Str "Here\8217s",Space,Str "one",Space,Str "that",Space,Str "has",Space,Str "a",Space,Str "line",Space,Str "break",Space,Str "in",Space,Str "it:",Space,Math InlineMath "\\alpha + \\omega \\times x^2",Str "."]]] +,Para [Str "These",Space,Str "shouldn\8217t",Space,Str "be",Space,Str "math:"] +,BulletList + [[Plain [Str "To",Space,Str "get",Space,Str "the",Space,Str "famous",Space,Str "equation,",Space,Str "write",Space,Code ("",[],[]) "$e = mc^2$",Str "."]] + ,[Plain [Str "$22,000",Space,Str "is",Space,Str "a",Space,Emph [Str "lot"],Space,Str "of",Space,Str "money.",Space,Str "So",Space,Str "is",Space,Str "$34,000.",Space,Str "(It",Space,Str "worked",Space,Str "if",Space,Quoted DoubleQuote [Str "lot"],Space,Str "is",Space,Str "emphasized.)"]] + ,[Plain [Str "Shoes",Space,Str "($20)",Space,Str "and",Space,Str "socks",Space,Str "($5)."]] + ,[Plain [Str "Escaped",Space,Code ("",[],[]) "$",Str ":",Space,Str "$73",Space,Emph [Str "this",Space,Str "should",Space,Str "be",Space,Str "emphasized"],Space,Str "23$."]]] +,Para [Str "Here\8217s",Space,Str "a",Space,Str "LaTeX",Space,Str "table:"] +,RawBlock "latex" "\\begin{tabular}{|l|l|}\\hline\nAnimal & Number \\\\ \\hline\nDog & 2 \\\\\nCat & 1 \\\\ \\hline\n\\end{tabular}" +,Header 1 [Str "Special",Space,Str "Characters"] +,Para [Str "Here",Space,Str "is",Space,Str "some",Space,Str "unicode:"] +,BulletList + [[Plain [Str "I",Space,Str "hat:",Space,Str "\206"]] + ,[Plain [Str "o",Space,Str "umlaut:",Space,Str "\246"]] + ,[Plain [Str "section:",Space,Str "\167"]] + ,[Plain [Str "set",Space,Str "membership:",Space,Str "\8712"]] + ,[Plain [Str "copyright:",Space,Str "\169"]]] +,Para [Str "AT&T",Space,Str "has",Space,Str "an",Space,Str "ampersand",Space,Str "in",Space,Str "their",Space,Str "name."] +,Para [Str "AT&T",Space,Str "is",Space,Str "another",Space,Str "way",Space,Str "to",Space,Str "write",Space,Str "it."] +,Para [Str "This",Space,Str "&",Space,Str "that."] +,Para [Str "4",Space,Str "<",Space,Str "5."] +,Para [Str "6",Space,Str ">",Space,Str "5."] +,Para [Str "Backslash:",Space,Str "\\"] +,Para [Str "Backtick:",Space,Str "`"] +,Para [Str "Asterisk:",Space,Str "*"] +,Para [Str "Underscore:",Space,Str "_"] +,Para [Str "Left",Space,Str "brace:",Space,Str "{"] +,Para [Str "Right",Space,Str "brace:",Space,Str "}"] +,Para [Str "Left",Space,Str "bracket:",Space,Str "["] +,Para [Str "Right",Space,Str "bracket:",Space,Str "]"] +,Para [Str "Left",Space,Str "paren:",Space,Str "("] +,Para [Str "Right",Space,Str "paren:",Space,Str ")"] +,Para [Str "Greater-than:",Space,Str ">"] +,Para [Str "Hash:",Space,Str "#"] +,Para [Str "Period:",Space,Str "."] +,Para [Str "Bang:",Space,Str "!"] +,Para [Str "Plus:",Space,Str "+"] +,Para [Str "Minus:",Space,Str "-"] +,Header 1 [Str "Links"] +,Header 2 [Str "Explicit"] +,Para [Str "Just",Space,Str "a",Space,Link [Str "URL"] ("/url/",""),Str "."] +,Para [Link [Str "URL",Space,Str "and",Space,Str "title"] ("/url/","title"),Str "."] +,Para [Link [Str "URL",Space,Str "and",Space,Str "title"] ("/url/","title preceded by two spaces"),Str "."] +,Para [Link [Str "URL",Space,Str "and",Space,Str "title"] ("/url/","title preceded by a tab"),Str "."] +,Para [Link [Str "URL",Space,Str "and",Space,Str "title"] ("/url/","title with \"quotes\" in it")] +,Para [Link [Str "URL",Space,Str "and",Space,Str "title"] ("/url/","title with single quotes")] +,Para [Link [Str "with_underscore"] ("/url/with_underscore","")] +,Para [Link [Str "Email",Space,Str "link"] ("mailto:nobody@nowhere.net","")] +,Para [Link [Str "Empty"] ("",""),Str "."] +,Header 2 [Str "Reference"] +,Para [Str "Foo",Space,Link [Str "bar"] ("/url/",""),Str "."] +,Para [Str "Foo",Space,Link [Str "bar"] ("/url/",""),Str "."] +,Para [Str "Foo",Space,Link [Str "bar"] ("/url/",""),Str "."] +,Para [Str "With",Space,Link [Str "embedded",Space,Str "[brackets]"] ("/url/",""),Str "."] +,Para [Link [Str "b"] ("/url/",""),Space,Str "by",Space,Str "itself",Space,Str "should",Space,Str "be",Space,Str "a",Space,Str "link."] +,Para [Str "Indented",Space,Link [Str "once"] ("/url",""),Str "."] +,Para [Str "Indented",Space,Link [Str "twice"] ("/url",""),Str "."] +,Para [Str "Indented",Space,Link [Str "thrice"] ("/url",""),Str "."] +,Para [Str "This",Space,Str "should",Space,Str "[not][]",Space,Str "be",Space,Str "a",Space,Str "link."] +,CodeBlock ("",[],[]) "[not]: /url" +,Para [Str "Foo",Space,Link [Str "bar"] ("/url/","Title with \"quotes\" inside"),Str "."] +,Para [Str "Foo",Space,Link [Str "biz"] ("/url/","Title with \"quote\" inside"),Str "."] +,Header 2 [Str "With",Space,Str "ampersands"] +,Para [Str "Here\8217s",Space,Str "a",Space,Link [Str "link",Space,Str "with",Space,Str "an",Space,Str "ampersand",Space,Str "in",Space,Str "the",Space,Str "URL"] ("http://example.com/?foo=1&bar=2",""),Str "."] +,Para [Str "Here\8217s",Space,Str "a",Space,Str "link",Space,Str "with",Space,Str "an",Space,Str "amersand",Space,Str "in",Space,Str "the",Space,Str "link",Space,Str "text:",Space,Link [Str "AT&T"] ("http://att.com/","AT&T"),Str "."] +,Para [Str "Here\8217s",Space,Str "an",Space,Link [Str "inline",Space,Str "link"] ("/script?foo=1&bar=2",""),Str "."] +,Para [Str "Here\8217s",Space,Str "an",Space,Link [Str "inline",Space,Str "link",Space,Str "in",Space,Str "pointy",Space,Str "braces"] ("/script?foo=1&bar=2",""),Str "."] +,Header 2 [Str "Autolinks"] +,Para [Str "With",Space,Str "an",Space,Str "ampersand:",Space,Link [Code ("",["url"],[]) "http://example.com/?foo=1&bar=2"] ("http://example.com/?foo=1&bar=2","")] +,BulletList + [[Plain [Str "In",Space,Str "a",Space,Str "list?"]] + ,[Plain [Link [Code ("",["url"],[]) "http://example.com/"] ("http://example.com/","")]] + ,[Plain [Str "It",Space,Str "should."]]] +,Para [Str "An",Space,Str "e-mail",Space,Str "address:",Space,Link [Code ("",["url"],[]) "nobody@nowhere.net"] ("mailto:nobody@nowhere.net","")] +,BlockQuote + [Para [Str "Blockquoted:",Space,Link [Code ("",["url"],[]) "http://example.com/"] ("http://example.com/","")]] +,Para [Str "Auto-links",Space,Str "should",Space,Str "not",Space,Str "occur",Space,Str "here:",Space,Code ("",[],[]) "<http://example.com/>"] +,CodeBlock ("",[],[]) "or here: <http://example.com/>" +,Header 1 [Str "Images"] +,Para [Str "From",Space,Quoted DoubleQuote [Str "Voyage",Space,Str "dans",Space,Str "la",Space,Str "Lune"],Space,Str "by",Space,Str "Georges",Space,Str "Melies",Space,Str "(1902):"] +,Para [Image [Str "lalune"] ("lalune.jpg","Voyage dans la Lune")] +,Para [Str "Here",Space,Str "is",Space,Str "a",Space,Str "movie",Space,Image [Str "movie"] ("movie.jpg",""),Space,Str "icon."] +,Header 1 [Str "Footnotes"] +,Para [Str "Here",Space,Str "is",Space,Str "a",Space,Str "footnote",Space,Str "reference,",Note [Para [Str "Here",Space,Str "is",Space,Str "the",Space,Str "footnote.",Space,Str "It",Space,Str "can",Space,Str "go",Space,Str "anywhere",Space,Str "after",Space,Str "the",Space,Str "footnote",Space,Str "reference.",Space,Str "It",Space,Str "need",Space,Str "not",Space,Str "be",Space,Str "placed",Space,Str "at",Space,Str "the",Space,Str "end",Space,Str "of",Space,Str "the",Space,Str "document."]],Space,Str "and",Space,Str "another.",Note [Para [Str "Here\8217s",Space,Str "the",Space,Str "long",Space,Str "note.",Space,Str "This",Space,Str "one",Space,Str "contains",Space,Str "multiple",Space,Str "blocks."],Para [Str "Subsequent",Space,Str "blocks",Space,Str "are",Space,Str "indented",Space,Str "to",Space,Str "show",Space,Str "that",Space,Str "they",Space,Str "belong",Space,Str "to",Space,Str "the",Space,Str "footnote",Space,Str "(as",Space,Str "with",Space,Str "list",Space,Str "items)."],CodeBlock ("",[],[]) " { <code> }",Para [Str "If",Space,Str "you",Space,Str "want,",Space,Str "you",Space,Str "can",Space,Str "indent",Space,Str "every",Space,Str "line,",Space,Str "but",Space,Str "you",Space,Str "can",Space,Str "also",Space,Str "be",Space,Str "lazy",Space,Str "and",Space,Str "just",Space,Str "indent",Space,Str "the",Space,Str "first",Space,Str "line",Space,Str "of",Space,Str "each",Space,Str "block."]],Space,Str "This",Space,Str "should",Space,Emph [Str "not"],Space,Str "be",Space,Str "a",Space,Str "footnote",Space,Str "reference,",Space,Str "because",Space,Str "it",Space,Str "contains",Space,Str "a",Space,Str "space.[^my",Space,Str "note]",Space,Str "Here",Space,Str "is",Space,Str "an",Space,Str "inline",Space,Str "note.",Note [Para [Str "This",Space,Str "is",Space,Emph [Str "easier"],Space,Str "to",Space,Str "type.",Space,Str "Inline",Space,Str "notes",Space,Str "may",Space,Str "contain",Space,Link [Str "links"] ("http://google.com",""),Space,Str "and",Space,Code ("",[],[]) "]",Space,Str "verbatim",Space,Str "characters,",Space,Str "as",Space,Str "well",Space,Str "as",Space,Str "[bracketed",Space,Str "text]."]]] +,BlockQuote + [Para [Str "Notes",Space,Str "can",Space,Str "go",Space,Str "in",Space,Str "quotes.",Note [Para [Str "In",Space,Str "quote."]]]] +,OrderedList (1,Decimal,Period) + [[Plain [Str "And",Space,Str "in",Space,Str "list",Space,Str "items.",Note [Para [Str "In",Space,Str "list."]]]]] +,Para [Str "This",Space,Str "paragraph",Space,Str "should",Space,Str "not",Space,Str "be",Space,Str "part",Space,Str "of",Space,Str "the",Space,Str "note,",Space,Str "as",Space,Str "it",Space,Str "is",Space,Str "not",Space,Str "indented."] +,Header 1 [Str "Tables"] +,Para [Str "Simple",Space,Str "table",Space,Str "with",Space,Str "caption:"] +,Table [Str "Demonstration",Space,Str "of",Space,Str "simple",Space,Str "table",Space,Str "syntax."] [AlignRight,AlignLeft,AlignCenter,AlignDefault] [0.0,0.0,0.0,0.0] + [[Plain [Str "Right"]] + ,[Plain [Str "Left"]] + ,[Plain [Str "Center"]] + ,[Plain [Str "Default"]]] + [[[Plain [Str "12"]] + ,[Plain [Str "12"]] + ,[Plain [Str "12"]] + ,[Plain [Str "12"]]] + ,[[Plain [Str "123"]] + ,[Plain [Str "123"]] + ,[Plain [Str "123"]] + ,[Plain [Str "123"]]] + ,[[Plain [Str "1"]] + ,[Plain [Str "1"]] + ,[Plain [Str "1"]] + ,[Plain [Str "1"]]]] +,Para [Str "Simple",Space,Str "table",Space,Str "without",Space,Str "caption:"] +,Table [] [AlignRight,AlignLeft,AlignCenter,AlignDefault] [0.0,0.0,0.0,0.0] + [[Plain [Str "Right"]] + ,[Plain [Str "Left"]] + ,[Plain [Str "Center"]] + ,[Plain [Str "Default"]]] + [[[Plain [Str "12"]] + ,[Plain [Str "12"]] + ,[Plain [Str "12"]] + ,[Plain [Str "12"]]] + ,[[Plain [Str "123"]] + ,[Plain [Str "123"]] + ,[Plain [Str "123"]] + ,[Plain [Str "123"]]] + ,[[Plain [Str "1"]] + ,[Plain [Str "1"]] + ,[Plain [Str "1"]] + ,[Plain [Str "1"]]]] +,Para [Str "Simple",Space,Str "table",Space,Str "indented",Space,Str "two",Space,Str "spaces:"] +,Table [Str "Demonstration",Space,Str "of",Space,Str "simple",Space,Str "table",Space,Str "syntax."] [AlignRight,AlignLeft,AlignCenter,AlignDefault] [0.0,0.0,0.0,0.0] + [[Plain [Str "Right"]] + ,[Plain [Str "Left"]] + ,[Plain [Str "Center"]] + ,[Plain [Str "Default"]]] + [[[Plain [Str "12"]] + ,[Plain [Str "12"]] + ,[Plain [Str "12"]] + ,[Plain [Str "12"]]] + ,[[Plain [Str "123"]] + ,[Plain [Str "123"]] + ,[Plain [Str "123"]] + ,[Plain [Str "123"]]] + ,[[Plain [Str "1"]] + ,[Plain [Str "1"]] + ,[Plain [Str "1"]] + ,[Plain [Str "1"]]]] +,Para [Str "Multiline",Space,Str "table",Space,Str "with",Space,Str "caption:"] +,Table [Str "Here's",Space,Str "the",Space,Str "caption.",Space,Str "It",Space,Str "may",Space,Str "span",Space,Str "multiple",Space,Str "lines."] [AlignCenter,AlignLeft,AlignRight,AlignLeft] [0.15,0.1375,0.1625,0.3375] + [[Plain [Str "Centered",Space,Str "Header"]] + ,[Plain [Str "Left",Space,Str "Aligned"]] + ,[Plain [Str "Right",Space,Str "Aligned"]] + ,[Plain [Str "Default",Space,Str "aligned"]]] + [[[Plain [Str "First"]] + ,[Plain [Str "row"]] + ,[Plain [Str "12.0"]] + ,[Plain [Str "Example",Space,Str "of",Space,Str "a",Space,Str "row",Space,Str "that",Space,Str "spans",Space,Str "multiple",Space,Str "lines."]]] + ,[[Plain [Str "Second"]] + ,[Plain [Str "row"]] + ,[Plain [Str "5.0"]] + ,[Plain [Str "Here's",Space,Str "another",Space,Str "one.",Space,Str "Note",Space,Str "the",Space,Str "blank",Space,Str "line",Space,Str "between",Space,Str "rows."]]]] +,Para [Str "Multiline",Space,Str "table",Space,Str "without",Space,Str "caption:"] +,Table [] [AlignCenter,AlignLeft,AlignRight,AlignLeft] [0.15,0.1375,0.1625,0.3375] + [[Plain [Str "Centered",Space,Str "Header"]] + ,[Plain [Str "Left",Space,Str "Aligned"]] + ,[Plain [Str "Right",Space,Str "Aligned"]] + ,[Plain [Str "Default",Space,Str "aligned"]]] + [[[Plain [Str "First"]] + ,[Plain [Str "row"]] + ,[Plain [Str "12.0"]] + ,[Plain [Str "Example",Space,Str "of",Space,Str "a",Space,Str "row",Space,Str "that",Space,Str "spans",Space,Str "multiple",Space,Str "lines."]]] + ,[[Plain [Str "Second"]] + ,[Plain [Str "row"]] + ,[Plain [Str "5.0"]] + ,[Plain [Str "Here's",Space,Str "another",Space,Str "one.",Space,Str "Note",Space,Str "the",Space,Str "blank",Space,Str "line",Space,Str "between",Space,Str "rows."]]]] +,Para [Str "Table",Space,Str "without",Space,Str "column",Space,Str "headers:"] +,Table [] [AlignRight,AlignLeft,AlignCenter,AlignRight] [0.0,0.0,0.0,0.0] + [[] + ,[] + ,[] + ,[]] + [[[Plain [Str "12"]] + ,[Plain [Str "12"]] + ,[Plain [Str "12"]] + ,[Plain [Str "12"]]] + ,[[Plain [Str "123"]] + ,[Plain [Str "123"]] + ,[Plain [Str "123"]] + ,[Plain [Str "123"]]] + ,[[Plain [Str "1"]] + ,[Plain [Str "1"]] + ,[Plain [Str "1"]] + ,[Plain [Str "1"]]]] +,Para [Str "Multiline",Space,Str "table",Space,Str "without",Space,Str "column",Space,Str "headers:"] +,Table [] [AlignCenter,AlignLeft,AlignRight,AlignDefault] [0.15,0.1375,0.1625,0.3375] + [[] + ,[] + ,[] + ,[]] + [[[Plain [Str "First"]] + ,[Plain [Str "row"]] + ,[Plain [Str "12.0"]] + ,[Plain [Str "Example",Space,Str "of",Space,Str "a",Space,Str "row",Space,Str "that",Space,Str "spans",Space,Str "multiple",Space,Str "lines."]]] + ,[[Plain [Str "Second"]] + ,[Plain [Str "row"]] + ,[Plain [Str "5.0"]] + ,[Plain [Str "Here's",Space,Str "another",Space,Str "one.",Space,Str "Note",Space,Str "the",Space,Str "blank",Space,Str "line",Space,Str "between",Space,Str "rows."]]]]] |