]> granicus.if.org Git - multimarkdown/commitdiff
FIXED: Improve OPML export; add OPML tests
authorFletcher T. Penney <fletcher@fletcherpenney.net>
Sat, 4 Aug 2018 20:21:52 +0000 (16:21 -0400)
committerFletcher T. Penney <fletcher@fletcherpenney.net>
Sat, 4 Aug 2018 20:21:52 +0000 (16:21 -0400)
72 files changed:
Sources/libMultiMarkdown/opml.c
tests/Beamer/What Is MMD.tex
tests/MMD6Tests/Abbreviations.opml [new file with mode: 0644]
tests/MMD6Tests/Advanced Emph and Strong.opml [new file with mode: 0644]
tests/MMD6Tests/Advanced Fenced Code Blocks.opml [new file with mode: 0644]
tests/MMD6Tests/Advanced Headers.opml [new file with mode: 0644]
tests/MMD6Tests/Amps and Angles.opml [new file with mode: 0644]
tests/MMD6Tests/Automatic Links.opml [new file with mode: 0644]
tests/MMD6Tests/BOM.opml [new file with mode: 0644]
tests/MMD6Tests/Basic Blocks.opml [new file with mode: 0644]
tests/MMD6Tests/Basic Lists.opml [new file with mode: 0644]
tests/MMD6Tests/BibTeX.opml [new file with mode: 0644]
tests/MMD6Tests/Blockquotes.opml [new file with mode: 0644]
tests/MMD6Tests/Code Spans.opml [new file with mode: 0644]
tests/MMD6Tests/CriticMarkup.opml [new file with mode: 0644]
tests/MMD6Tests/Cross-References.opml [new file with mode: 0644]
tests/MMD6Tests/Definition Lists.opml [new file with mode: 0644]
tests/MMD6Tests/Dutch.opml [new file with mode: 0644]
tests/MMD6Tests/Edge Cases 2.opml [new file with mode: 0644]
tests/MMD6Tests/Edge Cases.opml [new file with mode: 0644]
tests/MMD6Tests/Emph and Strong Star.opml [new file with mode: 0644]
tests/MMD6Tests/Emph and Strong UL.opml [new file with mode: 0644]
tests/MMD6Tests/English.opml [new file with mode: 0644]
tests/MMD6Tests/Escapes.fodt
tests/MMD6Tests/Escapes.html
tests/MMD6Tests/Escapes.htmlc
tests/MMD6Tests/Escapes.opml [new file with mode: 0644]
tests/MMD6Tests/Escapes.tex
tests/MMD6Tests/Escapes.text
tests/MMD6Tests/Fenced Code Blocks.opml [new file with mode: 0644]
tests/MMD6Tests/Figure Images.opml [new file with mode: 0644]
tests/MMD6Tests/French.opml [new file with mode: 0644]
tests/MMD6Tests/Fuzz.opml [new file with mode: 0644]
tests/MMD6Tests/German Guillemets.opml [new file with mode: 0644]
tests/MMD6Tests/German.opml [new file with mode: 0644]
tests/MMD6Tests/Glossaries.opml [new file with mode: 0644]
tests/MMD6Tests/HTML Blocks.opml [new file with mode: 0644]
tests/MMD6Tests/HTML Comments.opml [new file with mode: 0644]
tests/MMD6Tests/HTML Inline.opml [new file with mode: 0644]
tests/MMD6Tests/Headers.opml [new file with mode: 0644]
tests/MMD6Tests/Horizontal Rules.opml [new file with mode: 0644]
tests/MMD6Tests/Indented Code Blocks.opml [new file with mode: 0644]
tests/MMD6Tests/Inline Citations.opml [new file with mode: 0644]
tests/MMD6Tests/Inline Footnotes.opml [new file with mode: 0644]
tests/MMD6Tests/Inline Images.opml [new file with mode: 0644]
tests/MMD6Tests/Inline Links.opml [new file with mode: 0644]
tests/MMD6Tests/International.opml [new file with mode: 0644]
tests/MMD6Tests/Linebreaks.opml [new file with mode: 0644]
tests/MMD6Tests/Link Attributes.opml [new file with mode: 0644]
tests/MMD6Tests/Link Variations.opml [new file with mode: 0644]
tests/MMD6Tests/MMD Header and Footer.opml [new file with mode: 0644]
tests/MMD6Tests/Markdown Syntax.opml [new file with mode: 0644]
tests/MMD6Tests/Math.opml [new file with mode: 0644]
tests/MMD6Tests/Metadata YAML.opml [new file with mode: 0644]
tests/MMD6Tests/Metadata.opml [new file with mode: 0644]
tests/MMD6Tests/Nested Definition Lists.opml [new file with mode: 0644]
tests/MMD6Tests/Nested Lists.opml [new file with mode: 0644]
tests/MMD6Tests/Raw Source.opml [new file with mode: 0644]
tests/MMD6Tests/Reference Footnotes.opml [new file with mode: 0644]
tests/MMD6Tests/Reference Images.opml [new file with mode: 0644]
tests/MMD6Tests/Reference Links.opml [new file with mode: 0644]
tests/MMD6Tests/Setext Headers.opml [new file with mode: 0644]
tests/MMD6Tests/Smart Quotes.opml [new file with mode: 0644]
tests/MMD6Tests/Spanish.opml [new file with mode: 0644]
tests/MMD6Tests/Special Characters.opml [new file with mode: 0644]
tests/MMD6Tests/Superscript.opml [new file with mode: 0644]
tests/MMD6Tests/Swedish.opml [new file with mode: 0644]
tests/MMD6Tests/Table of Contents.opml [new file with mode: 0644]
tests/MMD6Tests/Tables.opml [new file with mode: 0644]
tests/MMD6Tests/Transclusion.opml [new file with mode: 0644]
tests/MMD6Tests/Variables.opml [new file with mode: 0644]
tests/Memoir/Integrated.tex

index 4a767bda9cac95267c093571d823fc8854d89c15..adaf6aa78e96b927a370e5aeb7f9f292f9d43510 100644 (file)
@@ -281,7 +281,11 @@ void mmd_outline_add_opml(DString * out, const char * source, token * current, s
                        switch (t->type) {
                                case BLOCK_SETEXT_1:
                                case BLOCK_SETEXT_2:
-                                       start = t->next->start;
+                                       if (t->next) {
+                                               start = t->next->start;
+                                       } else {
+                                               start = t->start + t->len;
+                                       }
                                        break;
 
                                case BLOCK_H1:
index 7728f4ebd51fd9926ec829968b279e29417fb819..155a659a1cae36bad16a97892032c6d5916c21de 100644 (file)
@@ -322,12 +322,8 @@ It uses the \texttt{beamer} XSLT file, and the \texttt{keynote-gradient} beamer
 \bibitem{gruber}
 John Gruber. Daring Fireball: Markdown. {[Cited January 2006]}. Available from \href{http://daringfireball.net/projects/markdown/}{http:\slash \slash daringfireball.net\slash projects\slash markdown\slash }.
 
-
-
 \bibitem{fake}
 John Doe. \emph{A Totally Fake Book}. Vanity Press, 2006.
-
-
 \end{thebibliography}
 \end{frame}
 
diff --git a/tests/MMD6Tests/Abbreviations.opml b/tests/MMD6Tests/Abbreviations.opml
new file mode 100644 (file)
index 0000000..992d6df
--- /dev/null
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Abbreviations</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;foo foo&#10;&#10;f.o.o. f.o.o.&#10;&#10;f-o-o f-o-o&#10;&#10;f o o f o o&#10;&#10;fo&apos;o fo&apos;o&#10;&#10;5&#10;&#10;[&gt;bar] [&gt;bar]&#10;&#10;[&gt;b.a.r.] [&gt;b.a.r.]&#10;&#10;[&gt;b-a-r] [&gt;b-a-r]&#10;&#10;[&gt;b a r] [&gt;b a r]&#10;&#10;[&gt;ba&apos;r] [&gt;ba&apos;r]&#10;&#10;10&#10;&#10;foo bar&#10;&#10;foo&#10;bar&#10;&#10;foo  bar&#10;&#10;[&gt;(baz) BAZ]&#10;&#10;&gt; foo bar&#10;&#10;15&#10;&#10;| foo | bar |&#10;| --- | --- |&#10;| foo | bar |&#10;[foo bar]&#10;&#10;"></outline>
+<outline text="foo bar " _note="&#10;"><outline text="foo bar " _note="&#10;"></outline>
+</outline>
+<outline text="foo bar" _note="&#10;![foo bar](http://foobar.net/)&#10;&#10;20&#10;&#10;[^foo and bar]&#10;&#10;[^note]&#10;&#10;* foo&#10;* foo&#10;* foo&#10;&#10;&#10;[&gt;foo]: FOO&#10;[&gt;f.o.o.]: F.O.O.&#10;[&gt;f-o-o]: F-O-O&#10;[&gt;f o o]: F O O&#10;[&gt;fo&apos;o]: FO&apos;O&#10;&#10;[&gt;bar]: BAR&#10;[&gt;b.a.r.]: B.A.R.&#10;[&gt;b-a-r]: B-A-R&#10;[&gt;b a r]: B A R&#10;[&gt;ba&apos;r]: BA&apos;R&#10;&#10;[&gt;foo bar]: FOO BAR&#10;&#10;[^note]: foo and bar&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="Abbreviations"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/Advanced Emph and Strong.opml b/tests/MMD6Tests/Advanced Emph and Strong.opml
new file mode 100644 (file)
index 0000000..98c4e97
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Advanced Emph and Strong</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;foo*bar*&#10;&#10;foo*bar**&#10;&#10;foo*bar***&#10;&#10;foo**bar*&#10;&#10;foo**bar**&#10;&#10;5&#10;&#10;foo**bar***&#10;&#10;foo***bar*&#10;&#10;foo***bar**&#10;&#10;foo***bar***&#10;&#10;*foo*bar&#10;&#10;10&#10;&#10;*foo**bar&#10;&#10;*foo*bar*&#10;&#10;*foo**bar*&#10;&#10;*foo***bar**&#10;&#10;*foo****bar*&#10;&#10;15&#10;&#10;*foo**bar**foo*&#10;&#10;**foo*bar&#10;&#10;**foo*bar**&#10;&#10;**foo**bar**&#10;&#10;**foo***bar*&#10;&#10;20&#10;&#10;**foo****bar**&#10;&#10;**foo foo*bar*foo foo**&#10;&#10;***foo*bar**&#10;&#10;***foo**bar*&#10;&#10;*ab*duct instead of ab*duct*&#10;&#10;25&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="Advanced Emph and Strong"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/Advanced Fenced Code Blocks.opml b/tests/MMD6Tests/Advanced Fenced Code Blocks.opml
new file mode 100644 (file)
index 0000000..e6d7882
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Advanced Fenced Code Blocks</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;``&#10;foo *2*&#10;``&#10;&#10;```&#10;foo *3*&#10;```&#10;&#10;````&#10;foo *4*&#10;````&#10;&#10;`````&#10;foo *5*&#10;`````&#10;&#10;``````&#10;foo *6*&#10;``````&#10;&#10;5&#10;&#10;```&#10;``&#10;foo *3*&#10;``&#10;```&#10;&#10;````&#10;```&#10;foo *4*&#10;```&#10;````&#10;&#10;`````&#10;````&#10;foo *5*&#10;````&#10;`````&#10;&#10;``````&#10;`````&#10;foo *6*&#10;`````&#10;``````&#10;&#10;10&#10;&#10;```perl&#10;foo&#10;```&#10;&#10;````  &#9;perl&#10;foo&#10;````&#10;&#10;``` perl ruby&#10;foo&#10;```&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="Advanced Fenced Code Blocks"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/Advanced Headers.opml b/tests/MMD6Tests/Advanced Headers.opml
new file mode 100644 (file)
index 0000000..d0db718
--- /dev/null
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Advanced Headers</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;"></outline>
+<outline text="foo [bar] " _note="&#10;"></outline>
+<outline text="foo[bar]" _note="&#10;"></outline>
+<outline text="foo [bar][bat]" _note="&#10;"></outline>
+<outline text="foo [bar] [bat]" _note="&#10;"></outline>
+<outline text="foo [bar][bat][baz]" _note="&#10;5&#10;&#10;"></outline>
+<outline text="foo [bar]" _note="&#10;"></outline>
+<outline text="*foo* bar " _note="&#10;"></outline>
+<outline text="*foo&#10;bar*" _note="&#10;[bar]&#10;&#10;[foo][bar]&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="Advanced Headers"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/Amps and Angles.opml b/tests/MMD6Tests/Amps and Angles.opml
new file mode 100644 (file)
index 0000000..276fb95
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Amps and Angles</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;AT&amp;T has an ampersand in their name.&#10;&#10;AT&amp;amp;T is another way to write it.&#10;&#10;This &amp; that.&#10;&#10;4 &lt; 5.&#10;&#10;6 &gt; 5.&#10;&#10;5&#10;&#10;Here is a [link][1] with an ampersand in the URL.&#10;&#10;Here is a link with an amersand in the link text: [AT&amp;T][2].&#10;&#10;Here is an inline [link](/script%20here?foo=1&amp;bar=2).&#10;&#10;Here is an inline [link](&lt;/script%20here?foo=1&amp;bar=2&gt;).&#10;&#10;&#9;&amp; and &amp;amp; and &lt; and &gt; in code block.&#10;&#10;10&#10;&#10;[1]: http://example.com/?foo=1&amp;bar=2&#10;[2]: http://att.com/  &quot;AT&amp;T&quot;&#10;&#10;&amp;copy; `&amp;copy;`&#10; &#10;&amp;#169; `&amp;#169;`&#10; &#10;&amp;#xA9; `&amp;#xA9;`&#10;&#10;15&#10;&#10;`&amp; and &amp;amp; and &lt; and &gt; in code span.`&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="Amps and Angles"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/Automatic Links.opml b/tests/MMD6Tests/Automatic Links.opml
new file mode 100644 (file)
index 0000000..136ebe2
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Automatic Links</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;&lt;http://foo.com/&gt;&#10;&#10;&lt;foo@bar.com&gt;&#10;&#10;&lt;mailto:foo@bar.com&gt;&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="Automatic Links"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/BOM.opml b/tests/MMD6Tests/BOM.opml
new file mode 100644 (file)
index 0000000..6a850c0
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>BOM</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;This file leads with a Byte Order Marker (BOM).&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="BOM"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/Basic Blocks.opml b/tests/MMD6Tests/Basic Blocks.opml
new file mode 100644 (file)
index 0000000..e1264fd
--- /dev/null
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Basic Blocks</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;foo&#10;&#10;"></outline>
+<outline text="Heading *foo* " _note="&#10;"><outline text="Heading " _note="&#10;foo&#10;bar&#10;&#10;5&#10;&#10;foo&#10;&#9;bar&#10;&#10;foo&#10;&#9;&#9;bar&#10;&#10;"></outline>
+</outline>
+<outline text="Metadata">
+<outline text="title" _note="Basic Blocks"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/Basic Lists.opml b/tests/MMD6Tests/Basic Lists.opml
new file mode 100644 (file)
index 0000000..5d64924
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Basic Lists</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;* foo&#10;* foo&#10;* foo&#10;&#10;&#10;bar&#10;&#10;* foo&#10;&#10;* foo&#10;&#10;* foo&#10;&#10;&#10;bar&#10;&#10;*  foo&#10;*       foo&#10;&#10;*&#9;&#9;foo&#10;&#10;5&#10;&#10;1. foo&#10;2.       foo&#10;3.&#9;foo&#10;&#10;bar&#10;&#10;1. foo&#10;&#10;2. foo&#10;&#10;3. foo&#10;&#10;bar&#10;&#10;1. foo&#10;2. foo&#10;&#10;3. foo&#10;&#10;10&#10;&#10;+ foo&#10;+ foo&#10;+ foo&#10;&#10;bar&#10;&#10;- foo&#10;- foo&#10;- foo&#10;&#10;bar&#10;&#10;* foo&#10;&#9;bar&#10;* foo&#10;&#9;bar&#10;* foo&#10;&#9;bar&#10;&#10;15&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="Basic Lists"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/BibTeX.opml b/tests/MMD6Tests/BibTeX.opml
new file mode 100644 (file)
index 0000000..41e8ee8
--- /dev/null
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Bibliography</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;&#10;[#Knuth:1968]&#10;&#10;[#Knuth:1968;]&#10;&#10;[#Knuth:1981]&#10;&#10;[#Knuth:1981;]&#10;&#10;[#Knuth:1968,Knuth:1981]&#10;&#10;5&#10;&#10;[#Knuth:1968,Knuth:1981;]&#10;&#10;[chap. 2][#Knuth:1981]&#10;&#10;[chap. 2][#Knuth:1981;]&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="Bibliography"/>
+<outline text="latexconfig" _note="article"/>
+<outline text="bibtex" _note="bibtex"/>
+<outline text="bibliostyle" _note="apalike"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/Blockquotes.opml b/tests/MMD6Tests/Blockquotes.opml
new file mode 100644 (file)
index 0000000..c545d96
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Blockquotes</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;&gt; foo&#10;&gt;&#9;bar&#10;&#10;&gt; foo&#10;&gt;&gt; bar&#10;&gt; foo&#10;&#10;&gt; foo&#10;&gt; &gt; bar&#10;&gt;&#10;&gt; foo&#10;&#10;&gt;   foo&#10;&gt;    bar&#10;&gt;           foo&#10;&gt;&#10;&gt;&#9;&#9;bar&#10;&gt;&#9;foo&#10;&gt;bar&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="Blockquotes"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/Code Spans.opml b/tests/MMD6Tests/Code Spans.opml
new file mode 100644 (file)
index 0000000..7e46f45
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Code Spans</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;`foo`&#10;&#10;`` foo ` bar  ``&#10;&#10;` `` `&#10;&#10;`foo``bar`&#10;&#10;``foo`&#10;&#10;5&#10;&#10;`foo``&#10;&#10;``&#10;foo&#10;``&#10;&#10;`foo   bar&#10;  baz`&#10;&#10;`foo `` bar`&#10;&#10;`   foo    `&#10;&#10;10&#10;&#10;`   foo   bar   `&#10;&#10;`*foo*`&#10;&#10;`[foo]`&#10;&#10;`-&lt;&gt;--&amp;\&amp;---...`&#10;&#10;`` `foo` ``&#10;&#10;15&#10;&#10;`$foo &lt;&lt; $bar`&#10;&#10;`#foo`&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="Code Spans"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/CriticMarkup.opml b/tests/MMD6Tests/CriticMarkup.opml
new file mode 100644 (file)
index 0000000..5135eaf
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>CriticMarkup</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;{++foo++}&#10;&#10;{--bar--}&#10;&#10;{~~foo~&gt;bar~~}&#10;&#10;{&gt;&gt;foo&lt;&lt;}&#10;&#10;{==bar==}&#10;&#10;5&#10;&#10;foo{++ bar++}&#10;&#10;foo{-- bar--}&#10;&#10;foo {~~foo~&gt;bar~~}&#10;&#10;foo {&gt;&gt;bar&lt;&lt;}&#10;&#10;foo {==bar==}&#10;&#10;10&#10;&#10;foo{++ **bar**++}&#10;&#10;foo{-- **bar**--}&#10;&#10;foo {~~**bar**~&gt;**bar**~~}&#10;&#10;foo {&gt;&gt;**bar**&lt;&lt;}&#10;&#10;foo {==**bar**==}&#10;&#10;15&#10;&#10;foo **{++bar++}**&#10;&#10;foo **{--bar--}**&#10;&#10;foo **{~~foo~&gt;bar~~}**&#10;&#10;foo **{&gt;&gt;bar&lt;&lt;}**&#10;&#10;foo **{==bar==}**&#10;&#10;20&#10;&#10;foo **{++bar**++}&#10;&#10;foo **{--bar**--}&#10;&#10;foo **{~~foo**~&gt;bar**~~}&#10;&#10;foo **{&gt;&gt;bar**&lt;&lt;}&#10;&#10;foo **{==bar**==}&#10;&#10;25&#10;&#10;`{++foo++}`&#10;&#10;`{--bar--}`&#10;&#10;`{~~foo~&gt;bar~~}`&#10;&#10;`{&gt;&gt;foo&lt;&lt;}`&#10;&#10;`{==bar==}`&#10;&#10;30&#10;&#10;$${++foo++}$$&#10;&#10;$${--bar--}$$&#10;&#10;$${~~foo~&gt;bar~~}$$&#10;&#10;$${&gt;&gt;foo&lt;&lt;}$$&#10;&#10;$${==bar==}$$&#10;&#10;35&#10;&#10;{++foo{++ bar++}++}&#10;&#10;{--foo{-- bar--}--}&#10;&#10;{++foo{-- bar--}++}&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="CriticMarkup"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/Cross-References.opml b/tests/MMD6Tests/Cross-References.opml
new file mode 100644 (file)
index 0000000..b432b3f
--- /dev/null
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Cross-References</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;"></outline>
+<outline text="A Section " _note="&#10;"></outline>
+<outline text="109&amp;*&amp;#()^ Can Start With Digit " _note="&#10;"></outline>
+<outline text="Strip out &amp;%^ characters &amp;*^ " _note="&#10;[A Section].&#10;&#10;"><outline text="1 Cross-References: Special Characters!@#$%&amp;*()&lt;&gt;^ " _note="&#10;5&#10;&#10;And now, link to [1 Cross-References: Special Characters!@#$%&amp;*()&lt;&gt;^][]&#10;&#10;"></outline>
+</outline>
+<outline text="Заголовок по-русски " _note="&#10;И ссылка на [Заголовок по-русски].&#10;&#10;"></outline>
+<outline text="Test 的 Multibyte " _note="&#10;10&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="Cross-References"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/Definition Lists.opml b/tests/MMD6Tests/Definition Lists.opml
new file mode 100644 (file)
index 0000000..39d103c
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Definition Lists</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;foo&#10;bar&#10;:&#9;*foo bar&#10;:&#9;baz bat*&#10;&#10;foo&#10;bar&#10;:&#9;*foo bar&#10;&#9;bar foo*&#10;:&#9;baz bat&#10;&#10;bat&#10;:&#9;*foo*&#10;&#10;foo&#10;:&#9;*foo bar&#10;&#9;bar foo&#10;:&#9;baz* bat&#10;&#10;foo&#10;&#10;:foo&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="Definition Lists"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/Dutch.opml b/tests/MMD6Tests/Dutch.opml
new file mode 100644 (file)
index 0000000..8d49442
--- /dev/null
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Dutch</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;&apos;foo&apos;&#10;&#10;&quot;foo&quot;&#10;&#10;foo&apos;s&#10;&#10;foo --- bar&#10;&#10;foo -- bar&#10;&#10;5&#10;&#10;foo...&#10;&#10;[^foo]&#10;&#10;[#bar]&#10;&#10;[#bar]: foo&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="Dutch"/>
+<outline text="latexconfig" _note="article"/>
+<outline text="language" _note="nl"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/Edge Cases 2.opml b/tests/MMD6Tests/Edge Cases 2.opml
new file mode 100644 (file)
index 0000000..83a45f5
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Edge Cases 2</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;**b**, _u_, __v__, *__w__*, _**x**_, ***y***, ___z___, *t __w__ t*&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="Edge Cases 2"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/Edge Cases.opml b/tests/MMD6Tests/Edge Cases.opml
new file mode 100644 (file)
index 0000000..8331b68
--- /dev/null
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Edge Cases</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;* foo&#10;bar&#10;&#10;foo&#10;* bar&#10;&#10;foo&#10;1. bar&#10;&#10;foo&#10;2. bar&#10;&#10;foo&#10;&gt; bar&#10;&#10;5&#10;&#10;foo&#10;"></outline>
+<outline text="bar" _note="&#10;foo&#10;&#9;bar&#10;&#10;The ***quick*** brown ***fox*** jumped&#10;&#10;The ***quick*** brown fox jumped&#10;&#10;The ***quick** brown fox* jumped&#10;&#10;10&#10;&#10;The ***quick* brown fox** jumped&#10;&#10;The ***quick* brown *fox*** jumped&#10;&#10;The ***quick** brown **fox*** jumped&#10;&#10;This *should* be parsed --  fo***o&#10;&#10;*test this*thing&#10;&#10;15&#10;&#10;_test this_thing&#10;&#10;**test this**thing&#10;&#10;__test this__thing&#10;&#10;***test this***thing&#10;&#10;___test this___thing&#10;&#10;20&#10;&#10;This is ***another* test** of *italics* and **bold**.&#10;&#10;This is ***another* test** of **bold** and *italics*.&#10;&#10;This is ***another** test* of **bold** and *italics*.&#10;&#10;This is ***another** test* of *italics* and **bold**.&#10;&#10;This is ___another_ test__ of _italics_ and __bold__.&#10;&#10;25&#10;&#10;This is ___another_ test__ of __bold__ and _italics_.&#10;&#10;This is ___another__ test_ of __bold__ and _italics_.&#10;&#10;This is ___another__ test_ of _italics_ and __bold__.&#10;&#10;*a *a *a *a *a *a *a *a *a *a *a *a *a *a *a *a *a *a *a *a *a *a *a *a *a *a *a *a *a *a *a *a *a *a *a *a *a *a *a *a *a *a &#10;&#10;[foo *bar] foo* *bar*&#10;&#10;30&#10;&#10;[foo *bar]: http://foo.bar&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="Edge Cases"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/Emph and Strong Star.opml b/tests/MMD6Tests/Emph and Strong Star.opml
new file mode 100644 (file)
index 0000000..29334d4
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Emph and Strong Star</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;*foo*&#10;&#10;**foo*&#10;&#10;*foo**&#10;&#10;*foo bar*&#10;&#10;*foo* bar&#10;&#10;5&#10;&#10;foo *bar*&#10;&#10;**foo**&#10;&#10;**foo bar**&#10;&#10;**foo** bar&#10;&#10;foo **bar**&#10;&#10;10&#10;&#10;*foo *bar* foo*&#10;&#10;*foo **bar** foo*&#10;&#10;*foo ***bar*** foo*&#10;&#10;**foo *bar* foo**&#10;&#10;**foo **bar** foo**&#10;&#10;15&#10;&#10;**foo ***bar*** foo**&#10;&#10;***foo *bar* foo***&#10;&#10;***foo **bar** foo***&#10;&#10;***foo ***bar*** foo***&#10;&#10;***foo***&#10;&#10;20&#10;&#10;***foo** bar*&#10;&#10;***foo* bar**&#10;&#10;*foo **bar***&#10;&#10;**foo *bar***&#10;&#10;*foo*bar*&#10;&#10;25&#10;&#10;*foo *bar *foo *bar****&#10;&#10;****foo* bar* foo* bar*&#10;&#10;*foo bar*bar&#10;&#10;**foo bar**bar&#10;&#10;***foo bar***bar&#10;&#10;30&#10;&#10;foo*bar*foo&#10;&#10;foo**bar**foo&#10;&#10;foo***bar***foo&#10;&#10;foo*bar*foo&#10;&#10;**foo *foobarfoo* foo**&#10;&#10;35&#10;&#10;foo**`*bar*`**&#10;&#10;*(*foo*)&#10;&#10;*foo*:&#10;&#10;**foo**:&#10;&#10;***foo***:&#10;&#10;40&#10;&#10;foo*bar&#10;&#10;foo*bar foo*bar&#10;&#10;foo**bar&#10;&#10;foo**bar foo**bar&#10;&#10;foo***bar&#10;&#10;45&#10;&#10;foo***bar foo***bar&#10;&#10;foo **- bar**&#10;&#10;foo **1. bar**&#10;&#10;**foo:** bar&#10;&#10;*foo [bar]*&#10;&#10;50&#10;&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo&#10;*foo*&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="Emph and Strong Star"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/Emph and Strong UL.opml b/tests/MMD6Tests/Emph and Strong UL.opml
new file mode 100644 (file)
index 0000000..87694f9
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Emph and Strong UL</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;_foo_&#10;&#10;__foo_&#10;&#10;_foo__&#10;&#10;_foo bar_&#10;&#10;_foo_ bar&#10;&#10;5&#10;&#10;foo _bar_&#10;&#10;__foo__&#10;&#10;__foo bar__&#10;&#10;__foo__ bar&#10;&#10;foo __bar__&#10;&#10;10&#10;&#10;_foo _bar_ foo_&#10;&#10;_foo __bar__ foo_&#10;&#10;_foo ___bar___ foo_&#10;&#10;__foo _bar_ foo__&#10;&#10;__foo __bar__ foo__&#10;&#10;15&#10;&#10;__foo ___bar___ foo__&#10;&#10;___foo _bar_ foo___&#10;&#10;___foo __bar__ foo___&#10;&#10;___foo ___bar___ foo___&#10;&#10;___foo___&#10;&#10;20&#10;&#10;___foo__ bar_&#10;&#10;___foo_ bar__&#10;&#10;_foo __bar___&#10;&#10;__foo _bar___&#10;&#10;_foo_bar_&#10;&#10;25&#10;&#10;_foo _bar _foo _bar____&#10;&#10;____foo_ bar_ foo_ bar_&#10;&#10;_foo bar_bar&#10;&#10;__foo bar__bar&#10;&#10;___foo bar___bar&#10;&#10;30&#10;&#10;foo_bar_foo&#10;&#10;foo__bar__foo&#10;&#10;foo___bar___foo&#10;&#10;foo_bar_foo&#10;&#10;__foo _foobarfoo_ foo__&#10;&#10;35&#10;&#10;foo__`_bar_`__&#10;&#10;_(_foo_)&#10;&#10;_foo_:&#10;&#10;__foo__:&#10;&#10;___foo___:&#10;&#10;40&#10;&#10;foo_bar&#10;&#10;foo_bar foo_bar&#10;&#10;foo__bar&#10;&#10;foo__bar foo__bar&#10;&#10;foo___bar&#10;&#10;45&#10;&#10;foo___bar foo___bar&#10;&#10;foo __- bar__&#10;&#10;foo __1. bar__&#10;&#10;__foo:__ bar&#10;&#10;_foo [bar]_&#10;&#10;50&#10;&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo&#10;_foo_&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="Emph and Strong UL"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/English.opml b/tests/MMD6Tests/English.opml
new file mode 100644 (file)
index 0000000..028e07e
--- /dev/null
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>English</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;&apos;foo&apos;&#10;&#10;&quot;foo&quot;&#10;&#10;foo&apos;s&#10;&#10;foo --- bar&#10;&#10;foo -- bar&#10;&#10;5&#10;&#10;foo...&#10;&#10;[^foo]&#10;&#10;[#bar]&#10;&#10;[#bar]: foo&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="English"/>
+<outline text="latexconfig" _note="article"/>
+<outline text="language" _note="en"/>
+</outline>
+</body>
+</opml>
+
index 03c1d2fd68bac01718252b64e4089de48318b898..a2b4529ede1ee141c13229ddcb5ef1ca292ab185 100644 (file)
@@ -379,6 +379,10 @@ office:mimetype="application/vnd.oasis.opendocument.text">
 <text:p text:style-name="Standard">foo bar</text:p>
 
 <text:p text:style-name="Standard"><text:span text:style-name="Source_20_Text">\\[foo]</text:span></text:p>
+
+<text:p text:style-name="Standard"><text:span text:style-name="Source_20_Text">\</text:span></text:p>
+
+<text:p text:style-name="Standard"><text:span text:style-name="Source_20_Text">\ </text:span></text:p>
 </office:text>
 </office:body>
 </office:document>
index aca209437290967643d5a75d3b6cdae43a14b75b..ce5605a7e9b615a12d951a9ceaa4f5f5052f39aa 100644 (file)
 
 <p><code>\\[foo]</code></p>
 
+<p><code>\</code></p>
+
+<p><code>\ </code></p>
+
 </body>
 </html>
 
index 0838679ac8fe995396d59ec9e413a3255721a6de..959f5484978ad852decf1d9f20690bf703c910da 100644 (file)
@@ -107,3 +107,7 @@ latex config:       article</p>
 <p>foo bar</p>
 
 <p><code>\\[foo]</code></p>
+
+<p><code>\</code></p>
+
+<p><code>\ </code></p>
diff --git a/tests/MMD6Tests/Escapes.opml b/tests/MMD6Tests/Escapes.opml
new file mode 100644 (file)
index 0000000..caffdae
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Escapes</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;\.&#10;&#10;\!&#10;&#10;\?&#10;&#10;\,&#10;&#10;\;&#10;&#10;5&#10;&#10;\:&#10;&#10;\&quot;&#10;&#10;\&apos;&#10;&#10;\`&#10;&#10;\~&#10;&#10;10&#10;&#10;\(&#10;&#10;\)&#10;&#10;\{&#10;&#10;\}&#10;&#10;\[&#10;&#10;15&#10;&#10;\]&#10;&#10;\#&#10;&#10;\$&#10;&#10;\%&#10;&#10;\+&#10;&#10;20&#10;&#10;\-&#10;&#10;\=&#10;&#10;\&lt;&#10;&#10;\&gt;&#10;&#10;\&amp;&#10;&#10;25&#10;&#10;\@&#10;&#10;\\&#10;&#10;\/&#10;&#10;\^&#10;&#10;\*&#10;&#10;30&#10;&#10;\_&#10;&#10;\|&#10;&#10;&#9;\-&#10;&#9;\&amp;&#10;&#9;\%&#10;&#9;\\&#10;&#9;\`&#10;&#10;`\- \&amp; \% \\ \ \ `&#10;&#10;\*foo\*&#10;&#10;35&#10;&#10;\_bar\_&#10;&#10;\`foo\`&#10;&#10;\`foo`&#10;&#10;`foo\ `&#10;&#10;\``foo\ `&#10;&#10;40&#10;&#10;\``foo`&#10;&#10;foo\ bar&#10;&#10;`\\[foo]`&#10;&#10;`\ `&#10;&#10;`\  `&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="Escapes"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
index 05f82f7327409b56b1c18998ca8a8dee420d40b1..f59f61a27144bdf7fb1f3e60da9c0735a2685ac4 100644 (file)
@@ -86,7 +86,7 @@ $>$
 \`
 \end{verbatim}
 
-\texttt{\textbackslash{}- \textbackslash{}\& \textbackslash{}\% \textbackslash{}\textbackslash{} \textbackslash{} \textbackslash{} }
+\texttt{\textbackslash{}- \textbackslash{}\& \textbackslash{}\% \textbackslash{}\textbackslash{} \textbackslash{} \textbackslash{}}
 
 *foo*
 
@@ -98,9 +98,9 @@ $>$
 
 `foo`
 
-\texttt{foo\textbackslash{} }
+\texttt{foo\textbackslash{}}
 
-`\texttt{foo\textbackslash{} }
+`\texttt{foo\textbackslash{}}
 
 40
 
@@ -110,5 +110,9 @@ foo~bar
 
 \texttt{\textbackslash{}\textbackslash{}[foo]}
 
+\texttt{\textbackslash{}}
+
+\texttt{\textbackslash{} }
+
 \input{mmd6-article-footer}
 \end{document}
index 03fe2fe23cbda12489b8e58015e5e544856c464d..d429baa032a854f41187a5405ea7830008a454f6 100644 (file)
@@ -106,3 +106,7 @@ latex config:       article
 foo\ bar
 
 `\\[foo]`
+
+`\ `
+
+`\  `
diff --git a/tests/MMD6Tests/Fenced Code Blocks.opml b/tests/MMD6Tests/Fenced Code Blocks.opml
new file mode 100644 (file)
index 0000000..0c1b253
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Fenced Code Blocks</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;```&#10;*foo*&#10;```&#10;&#10;````&#10;*foo*&#10;&#10;bar&#10;````&#10;&#10;* foo&#10;&#10;&#9;```&#10;&#9;*foo*&#10;&#9;```&#10;&#10;* foo&#10;&#10;&#9;````&#10;&#9;*foo*&#10;&#10;&#9;bar&#10;&#9;````&#10;&#10;```&#10;\begin{equation}\nabla \times \mathbf{E} = - \frac{\partial \mathbf{B}}{\partial t}\end{equation}&#10;```&#10;&#10;```tex&#10;\begin{equation}\nabla \times \mathbf{E} = - \frac{\partial \mathbf{B}}{\partial t}\end{equation}&#10;```&#10;&#10;5&#10;&#10;```&#10;&lt;p&gt;foo&lt;/p&gt;&#10;```&#10;&#10;```&#10;foo&#10;&#10;&#9;bar&#10;&#10;  bar&#10;&#10;    foo&#10;```&#10;&#10;```&#10;* foo&#10;+  bar&#10;-   baz&#10;*    foo&#10;+     bar&#10;-      baz&#10;&#10;1.   foo&#10;2.    bar&#10;3.     baz&#10;```&#10;&#10;```&#10;# foo&#10;##&#9;bar&#10;### baz #&#10;####&#9;foo&#9;##  &#10;#####&#9;&#9;bar&#9;&#9;##&#9;&#10;###### baz#&#10;```&#10;&#10;```&#10;foo&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="Fenced Code Blocks"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/Figure Images.opml b/tests/MMD6Tests/Figure Images.opml
new file mode 100644 (file)
index 0000000..318debd
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Figure Images</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;![foo]&#10;&#10;![*bar*][foo]&#10;&#10;![*bar*][foo] bar&#10;&#10;![*foo*](http://foo.bar/ &quot;foo&quot; width=&quot;40px&quot; height=&quot;20px&quot;)&#10;&#10;![*foo*](http://foo.bar/ &quot;foo&quot; width=&quot;40px&quot;)&#10;&#10;[foo]: http://foo.bar/&#9;&quot;foo&quot; width=&quot;40px&quot; height=&quot;20px&quot;&#10;&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="Figure Images"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/French.opml b/tests/MMD6Tests/French.opml
new file mode 100644 (file)
index 0000000..ebc4ccc
--- /dev/null
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>French</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;&apos;foo&apos;&#10;&#10;&quot;foo&quot;&#10;&#10;foo&apos;s&#10;&#10;foo --- bar&#10;&#10;foo -- bar&#10;&#10;5&#10;&#10;foo...&#10;&#10;[^foo]&#10;&#10;[#bar]&#10;&#10;[#bar]: foo&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="French"/>
+<outline text="latexconfig" _note="article"/>
+<outline text="language" _note="fr"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/Fuzz.opml b/tests/MMD6Tests/Fuzz.opml
new file mode 100644 (file)
index 0000000..3c9e2bb
--- /dev/null
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Fuzz Testing</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;Collection of test cases identified by [American fuzzy lop](http://lcamtuf.coredump.cx/afl/).&#10;&#10;û~~foo~&gt;bar~~}&#10;&#10;* list&#10;* &#9;tems&#10;&#10;"></outline>
+<outline text=":Escapes [escaped]" _note="&#10;[&gt;MM\]: MultiMarkdown&#10;&#10;[?terí¢ıı[?term]: A term to be defined.&#10;&#10;[foo1]&#10;&#10;[foo2]&#10;&#10;[foo1]:  #ba\&#10;[foo2]: #bar&#10;&#10;]: And aÄe footn.I^Thi1. \$&#10;&#10;[MMD]:&#10;&#10;f o o f o o&#10;&#10;[&gt;  o o]: F O O&#10;&#10;*  foo&#10;*       foo&#10;&#10;&#10;&#10;(This must be at end of file without trailing newline)&#10;&#10;"></outline>
+<outline text="A" _note=""></outline>
+<outline text="Metadata">
+<outline text="title" _note="Fuzz Testing"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/German Guillemets.opml b/tests/MMD6Tests/German Guillemets.opml
new file mode 100644 (file)
index 0000000..93e20c3
--- /dev/null
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>German Guillemets</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;&apos;foo&apos;&#10;&#10;&quot;foo&quot;&#10;&#10;foo&apos;s&#10;&#10;foo --- bar&#10;&#10;foo -- bar&#10;&#10;5&#10;&#10;foo...&#10;&#10;[^foo]&#10;&#10;[#bar]&#10;&#10;[#bar]: foo&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="German Guillemets"/>
+<outline text="latexconfig" _note="article"/>
+<outline text="language" _note="de"/>
+<outline text="quoteslanguage" _note="germanguillemets"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/German.opml b/tests/MMD6Tests/German.opml
new file mode 100644 (file)
index 0000000..93be8e7
--- /dev/null
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>German</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;&apos;foo&apos;&#10;&#10;&quot;foo&quot;&#10;&#10;foo&apos;s&#10;&#10;foo --- bar&#10;&#10;foo -- bar&#10;&#10;5&#10;&#10;foo...&#10;&#10;[^foo]&#10;&#10;[#bar]&#10;&#10;[#bar]: foo&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="German"/>
+<outline text="latexconfig" _note="article"/>
+<outline text="language" _note="de"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/Glossaries.opml b/tests/MMD6Tests/Glossaries.opml
new file mode 100644 (file)
index 0000000..925fa80
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Glossaries</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;foo foo&#10;&#10;f.o.o. f.o.o.&#10;&#10;f-o-o f-o-o&#10;&#10;f o o f o o&#10;&#10;fo&apos;o fo&apos;o&#10;&#10;5&#10;&#10;[?bar] [?bar]&#10;&#10;[?b.a.r.] [?b.a.r.]&#10;&#10;[?b-a-r] [?b-a-r]&#10;&#10;[?b a r] [?b a r]&#10;&#10;[?ba&apos;r] [?ba&apos;r]&#10;&#10;10&#10;&#10;foo bar&#10;&#10;foo&#10;bar&#10;&#10;foo  bar&#10;&#10;[?(baz) BAZ]&#10;&#10;&#10;&#10;[?foo]: FOO&#10;[?f.o.o.]: F.O.O.&#10;[?f-o-o]: F-O-O&#10;[?f o o]: F O O&#10;[?fo&apos;o]: FO&apos;O&#10;&#10;[?bar]: BAR&#10;[?b.a.r.]: B.A.R.&#10;[?b-a-r]: B-A-R&#10;[?b a r]: B A R&#10;[?ba&apos;r]: BA&apos;R&#10;&#10;[?foo bar]: FOO BAR&#10;&#10;&#9;BAR FOO"></outline>
+<outline text="Metadata">
+<outline text="title" _note="Glossaries"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/HTML Blocks.opml b/tests/MMD6Tests/HTML Blocks.opml
new file mode 100644 (file)
index 0000000..4d7e2d9
--- /dev/null
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>HTML Blocks</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;&lt;del&gt;*bar1*&lt;/del&gt;&#10;&#10;&lt;del&gt;&#10;*bar2*&#10;&lt;/del&gt;&#10;&#10;foo&#10;&lt;del&gt;&#10;*bar3*&#10;&lt;/del&gt;&#10;&#10;&lt;del&gt;&#10;*bar4*&#10;&#10;&lt;/del&gt;&#10;&#10;&#10;&lt;del&gt;&#10;&#10;*bar5*&#10;&#10;&lt;/del&gt;&#10;&#10;5&#10;&#10;&lt;div&gt;*bar1*&lt;/div&gt;&#10;&#10;&lt;div&gt;&#10;*bar2*&#10;&lt;/div&gt;&#10;&#10;foo&#10;&lt;div&gt;&#10;*bar3*&#10;&lt;/div&gt;&#10;&#10;&lt;div&gt;&#10;*bar4*&#10;&#10;&lt;/div&gt;&#10;&#10;&#10;&lt;div&gt;&#10;&#10;*bar5*&#10;&#10;&lt;/div&gt;&#10;&#10;10&#10;&#10;&lt;div&gt;&#10;# foo1 #&#10;[foo][foo1]&#10;&lt;/div&gt;&#10;&#10;&lt;div&gt;&#10;&#10;"></outline>
+<outline text="foo2 " _note="&#10;[foo][foo2]&#10;&#10;&lt;/div&gt;&#10;&#10;&lt;!-- This is a *comment* --&gt;&#10;&#10;&lt;!-- This is a&#10;longer&#10; *comment* --&gt;&#10;&#10;&lt;!--&#10;This&#10;&#10;is&#10;&#10;a comment&#10;--&gt;&#10;&#10;15&#10;&#10;&lt;!-- This is not a&#10;&#10;*comment* --&gt;&#10;&#10;&lt;div&gt;&#10;&lt;div&gt;&#10;**foo1**&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&#10;&#10;&lt;div&gt;&#10;&#10;&lt;div&gt;&#10;**foo2**&#10;&lt;/div&gt;&#10;&#10;&lt;/div&gt;&#10;&#10;&#10;&lt;div&gt;&#10;&#10;&lt;div&gt;&#10;&#10;**foo3**&#10;&#10;&lt;/div&gt;&#10;&#10;&lt;/div&gt;&#10;&#10;&#10;&lt;div&gt;&#10;&#10;&lt;div&gt;&#10;**foo4**&#10;&lt;/div&gt;&#10;&#10;&lt;/div&gt;&#10;&#10;20&#10;&#10;&lt;div&gt;&#10;&lt;div&gt;&#10;&#10;**foo5**&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="HTML Blocks"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/HTML Comments.opml b/tests/MMD6Tests/HTML Comments.opml
new file mode 100644 (file)
index 0000000..27f04fa
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>HTML Comments</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;foo &lt;!-- *bar* --&gt;&#10;&#10;foo &lt;!--&#10;*bar* --&gt;&#10;&#10;foo &lt;!--&#10;*bar*&#10;--&gt;&#10;&#10;foo &lt;!--&#10;*bar*&#10;&#10;--&gt;&#10;&#10;foo &lt;!--&#10;&#10;*bar*&#10;&#10;--&gt;&#10;&#10;5&#10;&#10;&#9;&lt;!-- *foo* --&gt;&#10;&#10;&lt;!--&#10;&#10;*foo*&#10;&#10;--&gt;&#10;&#10;foo &lt;!-- &#10;&#10;*bar* --&gt;&#10;&#10;&lt;!-- *foo*&#10;&#10;*bar*&#10;&#10;--&gt;&#10;&#10;*foo*&#10;&#10;&lt;!--&#10;&#10;*foo* --&gt; *bar*&#10;&#10;*foo*&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="HTML Comments"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/HTML Inline.opml b/tests/MMD6Tests/HTML Inline.opml
new file mode 100644 (file)
index 0000000..f284eda
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>HTML Inline</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;&lt;foo&gt;*bar*&lt;/foo&gt;&#10;&#10;&lt;foo bar=&quot;foo&quot;&gt;*bar*&lt;/foo&gt;&#10;&#10;&#10;&#9;&lt;div&gt;&#10;&#9;    foo&#10;&#9;&lt;/div&gt;&#10;&#10;test.&lt;!-- Comment --&gt;&#10;&#10;test.&lt;!-- Comment &#10;with&#10;multiple&#10;lines. --&gt;&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="HTML Inline"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/Headers.opml b/tests/MMD6Tests/Headers.opml
new file mode 100644 (file)
index 0000000..536424a
--- /dev/null
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Headers</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;"></outline>
+<outline text="foo " _note="&#10;"></outline>
+<outline text="foo " _note="&#10;"></outline>
+<outline text="foo " _note="&#10;"></outline>
+<outline text="foo " _note="&#10;    # foo #&#10;&#10;5&#10;&#10;#foo#&#10;&#10;#foo #&#10;&#10;"></outline>
+<outline text="foo # bar" _note="&#10;\# foo #&#10;&#10;"><outline text="foo " _note="&#10;10&#10;&#10;"><outline text="foo " _note="&#10;"><outline text="foo " _note="&#10;"><outline text="foo " _note="&#10;"><outline text="foo " _note="&#10;####### foo #######&#10;&#10;15&#10;&#10;"></outline>
+<outline text="foo " _note=""></outline>
+</outline>
+</outline>
+</outline>
+</outline>
+</outline>
+<outline text="Metadata">
+<outline text="title" _note="Headers"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/Horizontal Rules.opml b/tests/MMD6Tests/Horizontal Rules.opml
new file mode 100644 (file)
index 0000000..713fbc1
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Horizontal Rules</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;Dashes:&#10;&#10;---&#10;&#10; ---&#10; &#10;  ---&#10;&#10;   ---&#10;&#10;&#9;---&#10;&#10;5&#10;&#10;- - -&#10;&#10; - - -&#10; &#10;  - - -&#10;&#10;   - - -&#10;&#10;&#9;- - -&#10;&#10;10&#10;&#10;Asterisks:&#10;&#10;***&#10;&#10; ***&#10; &#10;  ***&#10;&#10;   ***&#10;&#10;&#9;***&#10;&#10;15&#10;&#10;* * *&#10;&#10; * * *&#10; &#10;  * * *&#10;&#10;   * * *&#10;&#10;&#9;* * *&#10;&#10;20&#10;&#10;Underscores:&#10;&#10;___&#10;&#10; ___&#10; &#10;  ___&#10;&#10;   ___&#10;&#10;    ___&#10;&#10;25&#10;&#10;_ _ _&#10;&#10; _ _ _&#10; &#10;  _ _ _&#10;&#10;   _ _ _&#10;&#10;    _ _ _&#10;&#10;30&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="Horizontal Rules"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/Indented Code Blocks.opml b/tests/MMD6Tests/Indented Code Blocks.opml
new file mode 100644 (file)
index 0000000..f998276
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Indented Code Blocks</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;&#9;foo&#10;&#10;foo&#10;&#10;&#9;bar&#10;&#10;foo&#10;&#10; foo&#10;&#10;5&#10;&#10;  foo&#10;&#10;   foo&#10;&#10;    bar&#10;&#10;foo&#10;&#10;&#9;&#9;bar&#10;&#10;10&#10;&#10;foo&#10;&#10;&#9;bar&#10;&#9;&#9;bar&#10;&#10;foo&#10;&#10;&#9;bar&#10;&#10;15&#10;&#10;foo&#10;&#9;bar&#10;&#9;&#9;bar&#10;&#10;foo&#10;&#10;&#9;bar&#10;&#10;foo&#10;&#9;&#10;&#9;bar&#10;&#10;&#9;bar&#10;&#10;&#9;bar&#10;&#10;foo&#10;&#10;&#9;-&lt;&gt;--&amp;\&amp;---...&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="Indented Code Blocks"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/Inline Citations.opml b/tests/MMD6Tests/Inline Citations.opml
new file mode 100644 (file)
index 0000000..f70d55b
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Inline Citations</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;Inline. [#John Doe. *A Totally Fake Book 1*.  Vanity Press, 2006.]&#10;[#John Doe. *A Totally Fake Book 2*.  Vanity Press, 2006.]&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="Inline Citations"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/Inline Footnotes.opml b/tests/MMD6Tests/Inline Footnotes.opml
new file mode 100644 (file)
index 0000000..45bcda3
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Inline Footnotes</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;Inline.[^foo *bar*]&#10;&#10;Inline.[^foo *bar*&#10;[foo](/bar)&#10;**foo**.]&#10;&#10;Inline.[^foo *bar*]&#10;&#10;Inline.[^foo][^foo][^bar]&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="Inline Footnotes"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/Inline Images.opml b/tests/MMD6Tests/Inline Images.opml
new file mode 100644 (file)
index 0000000..7bfe118
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Inline Images</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;Just a ![URL](/url/).&#10;&#10;![URL and title](/url/ &quot;title&quot;).&#10;&#10;![URL and title](/url/  &quot;title preceded by two spaces&quot;).&#10;&#10;![URL and title](/url/   &quot;title preceded by a tab&quot;).&#10;&#10;![URL and title](/url/ &quot;title has spaces afterward&quot;  ).&#10;&#10;5&#10;&#10;[Empty]().&#10;&#10;![**URL** and *title*](/url/ &quot;title&quot;).&#10;&#10;![URL and title](/url/ &quot;title&quot;).&#10;&#10;![URL and title](/url/ &apos;title&apos;).&#10;&#10;![URL and title](/url/ (title)).&#10;&#10;10&#10;&#10;![URL and title](/url/ &quot;&quot;).&#10;&#10;![URL and title](/url/ &quot;*title*&quot;).&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="Inline Images"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/Inline Links.opml b/tests/MMD6Tests/Inline Links.opml
new file mode 100644 (file)
index 0000000..731fc6c
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Inline Links</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;Just a [URL](http://url/file.txt).&#10;&#10;[URL and title](/url/file.txt &quot;title&quot;).&#10;&#10;[URL and title](/url/file.txt  &quot;title preceded by two spaces&quot;).&#10;&#10;[URL and title](/url/file.txt&#9;&quot;title preceded by a tab&quot;).&#10;&#10;[URL and title](/url/file.txt &quot;title has spaces afterward&quot;  ).&#10;&#10;5&#10;&#10;[Empty]().&#10;&#10;[**URL** and *title*](/url/file.txt &quot;title&quot;).&#10;&#10;[URL and title](/url/file.txt &quot;title&quot;).&#10;&#10;[URL and title](/url/file.txt &apos;title&apos;).&#10;&#10;[URL and title](/url/file.txt (title)).&#10;&#10;10&#10;&#10;[URL and title](/url/file.txt &quot;&quot;).&#10;&#10;[URL and title](/url/file.txt &quot;*title*&quot;).&#10;&#10;[URL and title] (/url/file.txt &quot;*title*&quot;).&#10;&#10;[URL and title]&#10;(/url/file.txt &quot;*title*&quot;).&#10;&#10;[URL and title]( /url/file.txt &quot;title&quot;).&#10;&#10;15&#10;&#10;[URL and title](    /url/file.txt &quot;title&quot;).&#10;&#10;[URL and title](&lt;/url/file.txt&gt; &quot;title&quot;).&#10;&#10;[URL and title]( &lt;/url/file.txt&gt; &quot;title&quot;).&#10;&#10;[URL and title](  &lt;/url/file.txt&gt; &quot;title&quot;).&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="Inline Links"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/International.opml b/tests/MMD6Tests/International.opml
new file mode 100644 (file)
index 0000000..6732c2b
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>International</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;été&#10;&#10;à la&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="International"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/Linebreaks.opml b/tests/MMD6Tests/Linebreaks.opml
new file mode 100644 (file)
index 0000000..dbfd432
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Linebreaks</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;foo&#10;bar&#10;&#10;foo &#10;bar&#10;&#10;foo  &#10;bar&#10;&#10;foo   &#10;bar&#10;&#10;foo\&#10;bar&#10;&#10;5&#10;&#10;foo  &#10;bar  &#10;&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="Linebreaks"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/Link Attributes.opml b/tests/MMD6Tests/Link Attributes.opml
new file mode 100644 (file)
index 0000000..c53802e
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Link Attributes</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;foo ![image][]&#10;&#10;foo [link][]&#10;&#10;foo [link2][]&#10;&#10;foo [link3][]&#10;&#10;![test](http://foo.bar/ &quot;title&quot; width=&quot;40px&quot; height=400px)&#10;&#10;5&#10;&#10;&#10;[image]:&#9;http://foo.bar/&#9;&quot;title&quot;&#9;width=&quot;40px&quot;&#9;height=400px&#10;[link]:&#9;&#9;&lt;http://foo.bar/1&gt; class=external&#10;&#9;&#9;&#9;style=&quot;border: solid black 1px;&quot;&#10;[link2]:&#9;http://foo.bar/2 class=external&#10;&#9;&#9;&#9;style=&quot;border: solid black 1px;&quot;&#10;[link3]:&#9;http://foo.bar/3&#9;class=external&#10;&#9;&#9;&#9;style=&quot;border: solid black 1px;&quot;&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="Link Attributes"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/Link Variations.opml b/tests/MMD6Tests/Link Variations.opml
new file mode 100644 (file)
index 0000000..a138f13
--- /dev/null
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Link Variations</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;"></outline>
+<outline text="Foo Bar " _note="&#10;Link to [Foo Bar].&#10;&#10;Link to [foo bar].&#10;&#10;Link to [foobar].&#10;&#10;Link to [Foo Bar](#foobar).&#10;&#10;Link to [](#foobar).&#10;&#10;5&#10;&#10;Link to [Foo][Foo Bar].&#10;&#10;[&amp; link](http://example.com/?bar=foo&amp;foo=bar)&#10;&#10;[&apos;%&apos; Link](http://example.com/%25%20link)&#10;&#10;[&apos;#&apos; link](http://example.com/#foo)&#10;&#10;10&#10;&#10;[_ link](http://example.com/_foo)&#10;&#10;[~ link](http://example.com/~foo)"></outline>
+<outline text="Metadata">
+<outline text="title" _note="Link Variations"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/MMD Header and Footer.opml b/tests/MMD6Tests/MMD Header and Footer.opml
new file mode 100644 (file)
index 0000000..c6ae3aa
--- /dev/null
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>MMD Header and Footer</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;&#10;MultiMarkdown *header*.&#10;&#10;&#10;Main Body&#10;&#10;&#10;MultiMarkdown *footer*."></outline>
+<outline text="Metadata">
+<outline text="title" _note="MMD Header and Footer"/>
+<outline text="latexconfig" _note="article"/>
+<outline text="mmdheader" _note="{{header.txt}}"/>
+<outline text="mmdfooter" _note="{{footer.txt}}"/>
+<outline text="htmlheader" _note="HTML &lt;em&gt;header&lt;/em&gt;."/>
+<outline text="htmlfooter" _note="HTML &lt;em&gt;footer&lt;/em&gt;."/>
+<outline text="latexheader" _note="\LaTeX \emph{header}"/>
+<outline text="odfheader" _note="ODF header."/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/Markdown Syntax.opml b/tests/MMD6Tests/Markdown Syntax.opml
new file mode 100644 (file)
index 0000000..6eca48f
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<body>
+<outline text="Markdown: Syntax " _note="&#10;&lt;ul id=&quot;ProjectSubmenu&quot;&gt;&#10;    &lt;li&gt;&lt;a href=&quot;/projects/markdown/&quot; title=&quot;Markdown Project Page&quot;&gt;Main&lt;/a&gt;&lt;/li&gt;&#10;    &lt;li&gt;&lt;a href=&quot;/projects/markdown/basics&quot; title=&quot;Markdown Basics&quot;&gt;Basics&lt;/a&gt;&lt;/li&gt;&#10;    &lt;li&gt;&lt;a class=&quot;selected&quot; title=&quot;Markdown Syntax Documentation&quot;&gt;Syntax&lt;/a&gt;&lt;/li&gt;&#10;    &lt;li&gt;&lt;a href=&quot;/projects/markdown/license&quot; title=&quot;Pricing and License Information&quot;&gt;License&lt;/a&gt;&lt;/li&gt;&#10;    &lt;li&gt;&lt;a href=&quot;/projects/markdown/dingus&quot; title=&quot;Online Markdown Web Form&quot;&gt;Dingus&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&#10;&#10;*   [Overview](#overview)&#10;    *   [Philosophy](#philosophy)&#10;    *   [Inline HTML](#html)&#10;    *   [Automatic Escaping for Special Characters](#autoescape)&#10;*   [Block Elements](#block)&#10;    *   [Paragraphs and Line Breaks](#p)&#10;    *   [Headers](#header)&#10;    *   [Blockquotes](#blockquote)&#10;    *   [Lists](#list)&#10;    *   [Code Blocks](#precode)&#10;    *   [Horizontal Rules](#hr)&#10;*   [Span Elements](#span)&#10;    *   [Links](#link)&#10;    *   [Emphasis](#em)&#10;    *   [Code](#code)&#10;    *   [Images](#img)&#10;*   [Miscellaneous](#misc)&#10;    *   [Backslash Escapes](#backslash)&#10;    *   [Automatic Links](#autolink)&#10;&#10;&#10;**Note:** This document is itself written using Markdown; you&#10;can [see the source for it by adding &apos;.text&apos; to the URL][src].&#10;&#10;  [src]: /projects/markdown/syntax.text&#10;&#10;* * *&#10;&#10;&lt;h2 id=&quot;overview&quot;&gt;Overview&lt;/h2&gt;&#10;&#10;&lt;h3 id=&quot;philosophy&quot;&gt;Philosophy&lt;/h3&gt;&#10;&#10;Markdown is intended to be as easy-to-read and easy-to-write as is feasible.&#10;&#10;Readability, however, is emphasized above all else. A Markdown-formatted&#10;document should be publishable as-is, as plain text, without looking&#10;like it&apos;s been marked up with tags or formatting instructions. While&#10;Markdown&apos;s syntax has been influenced by several existing text-to-HTML&#10;filters -- including [Setext][1], [atx][2], [Textile][3], [reStructuredText][4],&#10;[Grutatext][5], and [EtText][6] -- the single biggest source of&#10;inspiration for Markdown&apos;s syntax is the format of plain text email.&#10;&#10;  [1]: http://docutils.sourceforge.net/mirror/setext.html&#10;  [2]: http://www.aaronsw.com/2002/atx/&#10;  [3]: http://textism.com/tools/textile/&#10;  [4]: http://docutils.sourceforge.net/rst.html&#10;  [5]: http://www.triptico.com/software/grutatxt.html&#10;  [6]: http://ettext.taint.org/doc/&#10;&#10;To this end, Markdown&apos;s syntax is comprised entirely of punctuation&#10;characters, which punctuation characters have been carefully chosen so&#10;as to look like what they mean. E.g., asterisks around a word actually&#10;look like \*emphasis\*. Markdown lists look like, well, lists. Even&#10;blockquotes look like quoted passages of text, assuming you&apos;ve ever&#10;used email.&#10;&#10;&#10;&#10;&lt;h3 id=&quot;html&quot;&gt;Inline HTML&lt;/h3&gt;&#10;&#10;Markdown&apos;s syntax is intended for one purpose: to be used as a&#10;format for *writing* for the web.&#10;&#10;Markdown is not a replacement for HTML, or even close to it. Its&#10;syntax is very small, corresponding only to a very small subset of&#10;HTML tags. The idea is *not* to create a syntax that makes it easier&#10;to insert HTML tags. In my opinion, HTML tags are already easy to&#10;insert. The idea for Markdown is to make it easy to read, write, and&#10;edit prose. HTML is a *publishing* format; Markdown is a *writing*&#10;format. Thus, Markdown&apos;s formatting syntax only addresses issues that&#10;can be conveyed in plain text.&#10;&#10;For any markup that is not covered by Markdown&apos;s syntax, you simply&#10;use HTML itself. There&apos;s no need to preface it or delimit it to&#10;indicate that you&apos;re switching from Markdown to HTML; you just use&#10;the tags.&#10;&#10;The only restrictions are that block-level HTML elements -- e.g. `&lt;div&gt;`,&#10;`&lt;table&gt;`, `&lt;pre&gt;`, `&lt;p&gt;`, etc. -- must be separated from surrounding&#10;content by blank lines, and the start and end tags of the block should&#10;not be indented with tabs or spaces. Markdown is smart enough not&#10;to add extra (unwanted) `&lt;p&gt;` tags around HTML block-level tags.&#10;&#10;For example, to add an HTML table to a Markdown article:&#10;&#10;    This is a regular paragraph.&#10;&#10;    &lt;table&gt;&#10;        &lt;tr&gt;&#10;            &lt;td&gt;Foo&lt;/td&gt;&#10;        &lt;/tr&gt;&#10;    &lt;/table&gt;&#10;&#10;    This is another regular paragraph.&#10;&#10;Note that Markdown formatting syntax is not processed within block-level&#10;HTML tags. E.g., you can&apos;t use Markdown-style `*emphasis*` inside an&#10;HTML block.&#10;&#10;Span-level HTML tags -- e.g. `&lt;span&gt;`, `&lt;cite&gt;`, or `&lt;del&gt;` -- can be&#10;used anywhere in a Markdown paragraph, list item, or header. If you&#10;want, you can even use HTML tags instead of Markdown formatting; e.g. if&#10;you&apos;d prefer to use HTML `&lt;a&gt;` or `&lt;img&gt;` tags instead of Markdown&apos;s&#10;link or image syntax, go right ahead.&#10;&#10;Unlike block-level HTML tags, Markdown syntax *is* processed within&#10;span-level tags.&#10;&#10;&#10;&lt;h3 id=&quot;autoescape&quot;&gt;Automatic Escaping for Special Characters&lt;/h3&gt;&#10;&#10;In HTML, there are two characters that demand special treatment: `&lt;`&#10;and `&amp;`. Left angle brackets are used to start tags; ampersands are&#10;used to denote HTML entities. If you want to use them as literal&#10;characters, you must escape them as entities, e.g. `&amp;lt;`, and&#10;`&amp;amp;`.&#10;&#10;Ampersands in particular are bedeviling for web writers. If you want to&#10;write about &apos;AT&amp;T&apos;, you need to write &apos;`AT&amp;amp;T`&apos;. You even need to&#10;escape ampersands within URLs. Thus, if you want to link to:&#10;&#10;    http://images.google.com/images?num=30&amp;q=larry+bird&#10;&#10;you need to encode the URL as:&#10;&#10;    http://images.google.com/images?num=30&amp;amp;q=larry+bird&#10;&#10;in your anchor tag `href` attribute. Needless to say, this is easy to&#10;forget, and is probably the single most common source of HTML validation&#10;errors in otherwise well-marked-up web sites.&#10;&#10;Markdown allows you to use these characters naturally, taking care of&#10;all the necessary escaping for you. If you use an ampersand as part of&#10;an HTML entity, it remains unchanged; otherwise it will be translated&#10;into `&amp;amp;`.&#10;&#10;So, if you want to include a copyright symbol in your article, you can write:&#10;&#10;    &amp;copy;&#10;&#10;and Markdown will leave it alone. But if you write:&#10;&#10;    AT&amp;T&#10;&#10;Markdown will translate it to:&#10;&#10;    AT&amp;amp;T&#10;&#10;Similarly, because Markdown supports [inline HTML](#html), if you use&#10;angle brackets as delimiters for HTML tags, Markdown will treat them as&#10;such. But if you write:&#10;&#10;    4 &lt; 5&#10;&#10;Markdown will translate it to:&#10;&#10;    4 &amp;lt; 5&#10;&#10;However, inside Markdown code spans and blocks, angle brackets and&#10;ampersands are *always* encoded automatically. This makes it easy to use&#10;Markdown to write about HTML code. (As opposed to raw HTML, which is a&#10;terrible format for writing about HTML syntax, because every single `&lt;`&#10;and `&amp;` in your example code needs to be escaped.)&#10;&#10;&#10;* * *&#10;&#10;&#10;&lt;h2 id=&quot;block&quot;&gt;Block Elements&lt;/h2&gt;&#10;&#10;&#10;&lt;h3 id=&quot;p&quot;&gt;Paragraphs and Line Breaks&lt;/h3&gt;&#10;&#10;A paragraph is simply one or more consecutive lines of text, separated&#10;by one or more blank lines. (A blank line is any line that looks like a&#10;blank line -- a line containing nothing but spaces or tabs is considered&#10;blank.) Normal paragraphs should not be indented with spaces or tabs.&#10;&#10;The implication of the &quot;one or more consecutive lines of text&quot; rule is&#10;that Markdown supports &quot;hard-wrapped&quot; text paragraphs. This differs&#10;significantly from most other text-to-HTML formatters (including Movable&#10;Type&apos;s &quot;Convert Line Breaks&quot; option) which translate every line break&#10;character in a paragraph into a `&lt;br /&gt;` tag.&#10;&#10;When you *do* want to insert a `&lt;br /&gt;` break tag using Markdown, you&#10;end a line with two or more spaces, then type return.&#10;&#10;Yes, this takes a tad more effort to create a `&lt;br /&gt;`, but a simplistic&#10;&quot;every line break is a `&lt;br /&gt;`&quot; rule wouldn&apos;t work for Markdown.&#10;Markdown&apos;s email-style [blockquoting][bq] and multi-paragraph [list items][l]&#10;work best -- and look better -- when you format them with hard breaks.&#10;&#10;  [bq]: #blockquote&#10;  [l]:  #list&#10;&#10;&#10;&#10;&lt;h3 id=&quot;header&quot;&gt;Headers&lt;/h3&gt;&#10;&#10;Markdown supports two styles of headers, [Setext][1] and [atx][2].&#10;&#10;Setext-style headers are &quot;underlined&quot; using equal signs (for first-level&#10;headers) and dashes (for second-level headers). For example:&#10;&#10;    This is an H1&#10;    =============&#10;&#10;    This is an H2&#10;    -------------&#10;&#10;Any number of underlining `=`&apos;s or `-`&apos;s will work.&#10;&#10;Atx-style headers use 1-6 hash characters at the start of the line,&#10;corresponding to header levels 1-6. For example:&#10;&#10;    # This is an H1&#10;&#10;    ## This is an H2&#10;&#10;    ###### This is an H6&#10;&#10;Optionally, you may &quot;close&quot; atx-style headers. This is purely&#10;cosmetic -- you can use this if you think it looks better. The&#10;closing hashes don&apos;t even need to match the number of hashes&#10;used to open the header. (The number of opening hashes&#10;determines the header level.) :&#10;&#10;    # This is an H1 #&#10;&#10;    ## This is an H2 ##&#10;&#10;    ### This is an H3 ######&#10;&#10;&#10;&lt;h3 id=&quot;blockquote&quot;&gt;Blockquotes&lt;/h3&gt;&#10;&#10;Markdown uses email-style `&gt;` characters for blockquoting. If you&apos;re&#10;familiar with quoting passages of text in an email message, then you&#10;know how to create a blockquote in Markdown. It looks best if you hard&#10;wrap the text and put a `&gt;` before every line:&#10;&#10;    &gt; This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,&#10;    &gt; consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.&#10;    &gt; Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.&#10;    &gt; &#10;    &gt; Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse&#10;    &gt; id sem consectetuer libero luctus adipiscing.&#10;&#10;Markdown allows you to be lazy and only put the `&gt;` before the first&#10;line of a hard-wrapped paragraph:&#10;&#10;    &gt; This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,&#10;    consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.&#10;    Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.&#10;&#10;    &gt; Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse&#10;    id sem consectetuer libero luctus adipiscing.&#10;&#10;Blockquotes can be nested (i.e. a blockquote-in-a-blockquote) by&#10;adding additional levels of `&gt;`:&#10;&#10;    &gt; This is the first level of quoting.&#10;    &gt;&#10;    &gt; &gt; This is nested blockquote.&#10;    &gt;&#10;    &gt; Back to the first level.&#10;&#10;Blockquotes can contain other Markdown elements, including headers, lists,&#10;and code blocks:&#10;&#10;&#9;&gt; ## This is a header.&#10;&#9;&gt; &#10;&#9;&gt; 1.   This is the first list item.&#10;&#9;&gt; 2.   This is the second list item.&#10;&#9;&gt; &#10;&#9;&gt; Here&apos;s some example code:&#10;&#9;&gt; &#10;&#9;&gt;     return shell_exec(&quot;echo $input | $markdown_script&quot;);&#10;&#10;Any decent text editor should make email-style quoting easy. For&#10;example, with BBEdit, you can make a selection and choose Increase&#10;Quote Level from the Text menu.&#10;&#10;&#10;&lt;h3 id=&quot;list&quot;&gt;Lists&lt;/h3&gt;&#10;&#10;Markdown supports ordered (numbered) and unordered (bulleted) lists.&#10;&#10;Unordered lists use asterisks, pluses, and hyphens -- interchangably&#10;-- as list markers:&#10;&#10;    *   Red&#10;    *   Green&#10;    *   Blue&#10;&#10;is equivalent to:&#10;&#10;    +   Red&#10;    +   Green&#10;    +   Blue&#10;&#10;and:&#10;&#10;    -   Red&#10;    -   Green&#10;    -   Blue&#10;&#10;Ordered lists use numbers followed by periods:&#10;&#10;    1.  Bird&#10;    2.  McHale&#10;    3.  Parish&#10;&#10;It&apos;s important to note that the actual numbers you use to mark the&#10;list have no effect on the HTML output Markdown produces. The HTML&#10;Markdown produces from the above list is:&#10;&#10;    &lt;ol&gt;&#10;    &lt;li&gt;Bird&lt;/li&gt;&#10;    &lt;li&gt;McHale&lt;/li&gt;&#10;    &lt;li&gt;Parish&lt;/li&gt;&#10;    &lt;/ol&gt;&#10;&#10;If you instead wrote the list in Markdown like this:&#10;&#10;    1.  Bird&#10;    1.  McHale&#10;    1.  Parish&#10;&#10;or even:&#10;&#10;    3. Bird&#10;    1. McHale&#10;    8. Parish&#10;&#10;you&apos;d get the exact same HTML output. The point is, if you want to,&#10;you can use ordinal numbers in your ordered Markdown lists, so that&#10;the numbers in your source match the numbers in your published HTML.&#10;But if you want to be lazy, you don&apos;t have to.&#10;&#10;If you do use lazy list numbering, however, you should still start the&#10;list with the number 1. At some point in the future, Markdown may support&#10;starting ordered lists at an arbitrary number.&#10;&#10;List markers typically start at the left margin, but may be indented by&#10;up to three spaces. List markers must be followed by one or more spaces&#10;or a tab.&#10;&#10;To make lists look nice, you can wrap items with hanging indents:&#10;&#10;    *   Lorem ipsum dolor sit amet, consectetuer adipiscing elit.&#10;        Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,&#10;        viverra nec, fringilla in, laoreet vitae, risus.&#10;    *   Donec sit amet nisl. Aliquam semper ipsum sit amet velit.&#10;        Suspendisse id sem consectetuer libero luctus adipiscing.&#10;&#10;But if you want to be lazy, you don&apos;t have to:&#10;&#10;    *   Lorem ipsum dolor sit amet, consectetuer adipiscing elit.&#10;    Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,&#10;    viverra nec, fringilla in, laoreet vitae, risus.&#10;    *   Donec sit amet nisl. Aliquam semper ipsum sit amet velit.&#10;    Suspendisse id sem consectetuer libero luctus adipiscing.&#10;&#10;If list items are separated by blank lines, Markdown will wrap the&#10;items in `&lt;p&gt;` tags in the HTML output. For example, this input:&#10;&#10;    *   Bird&#10;    *   Magic&#10;&#10;will turn into:&#10;&#10;    &lt;ul&gt;&#10;    &lt;li&gt;Bird&lt;/li&gt;&#10;    &lt;li&gt;Magic&lt;/li&gt;&#10;    &lt;/ul&gt;&#10;&#10;But this:&#10;&#10;    *   Bird&#10;&#10;    *   Magic&#10;&#10;will turn into:&#10;&#10;    &lt;ul&gt;&#10;    &lt;li&gt;&lt;p&gt;Bird&lt;/p&gt;&lt;/li&gt;&#10;    &lt;li&gt;&lt;p&gt;Magic&lt;/p&gt;&lt;/li&gt;&#10;    &lt;/ul&gt;&#10;&#10;List items may consist of multiple paragraphs. Each subsequent&#10;paragraph in a list item must be indented by either 4 spaces&#10;or one tab:&#10;&#10;    1.  This is a list item with two paragraphs. Lorem ipsum dolor&#10;        sit amet, consectetuer adipiscing elit. Aliquam hendrerit&#10;        mi posuere lectus.&#10;&#10;        Vestibulum enim wisi, viverra nec, fringilla in, laoreet&#10;        vitae, risus. Donec sit amet nisl. Aliquam semper ipsum&#10;        sit amet velit.&#10;&#10;    2.  Suspendisse id sem consectetuer libero luctus adipiscing.&#10;&#10;It looks nice if you indent every line of the subsequent&#10;paragraphs, but here again, Markdown will allow you to be&#10;lazy:&#10;&#10;    *   This is a list item with two paragraphs.&#10;&#10;        This is the second paragraph in the list item. You&apos;re&#10;    only required to indent the first line. Lorem ipsum dolor&#10;    sit amet, consectetuer adipiscing elit.&#10;&#10;    *   Another item in the same list.&#10;&#10;To put a blockquote within a list item, the blockquote&apos;s `&gt;`&#10;delimiters need to be indented:&#10;&#10;    *   A list item with a blockquote:&#10;&#10;        &gt; This is a blockquote&#10;        &gt; inside a list item.&#10;&#10;To put a code block within a list item, the code block needs&#10;to be indented *twice* -- 8 spaces or two tabs:&#10;&#10;    *   A list item with a code block:&#10;&#10;            &lt;code goes here&gt;&#10;&#10;&#10;It&apos;s worth noting that it&apos;s possible to trigger an ordered list by&#10;accident, by writing something like this:&#10;&#10;    1986. What a great season.&#10;&#10;In other words, a *number-period-space* sequence at the beginning of a&#10;line. To avoid this, you can backslash-escape the period:&#10;&#10;    1986\. What a great season.&#10;&#10;&#10;&#10;&lt;h3 id=&quot;precode&quot;&gt;Code Blocks&lt;/h3&gt;&#10;&#10;Pre-formatted code blocks are used for writing about programming or&#10;markup source code. Rather than forming normal paragraphs, the lines&#10;of a code block are interpreted literally. Markdown wraps a code block&#10;in both `&lt;pre&gt;` and `&lt;code&gt;` tags.&#10;&#10;To produce a code block in Markdown, simply indent every line of the&#10;block by at least 4 spaces or 1 tab. For example, given this input:&#10;&#10;    This is a normal paragraph:&#10;&#10;        This is a code block.&#10;&#10;Markdown will generate:&#10;&#10;    &lt;p&gt;This is a normal paragraph:&lt;/p&gt;&#10;&#10;    &lt;pre&gt;&lt;code&gt;This is a code block.&#10;    &lt;/code&gt;&lt;/pre&gt;&#10;&#10;One level of indentation -- 4 spaces or 1 tab -- is removed from each&#10;line of the code block. For example, this:&#10;&#10;    Here is an example of AppleScript:&#10;&#10;        tell application &quot;Foo&quot;&#10;            beep&#10;        end tell&#10;&#10;will turn into:&#10;&#10;    &lt;p&gt;Here is an example of AppleScript:&lt;/p&gt;&#10;&#10;    &lt;pre&gt;&lt;code&gt;tell application &quot;Foo&quot;&#10;        beep&#10;    end tell&#10;    &lt;/code&gt;&lt;/pre&gt;&#10;&#10;A code block continues until it reaches a line that is not indented&#10;(or the end of the article).&#10;&#10;Within a code block, ampersands (`&amp;`) and angle brackets (`&lt;` and `&gt;`)&#10;are automatically converted into HTML entities. This makes it very&#10;easy to include example HTML source code using Markdown -- just paste&#10;it and indent it, and Markdown will handle the hassle of encoding the&#10;ampersands and angle brackets. For example, this:&#10;&#10;        &lt;div class=&quot;footer&quot;&gt;&#10;            &amp;copy; 2004 Foo Corporation&#10;        &lt;/div&gt;&#10;&#10;will turn into:&#10;&#10;    &lt;pre&gt;&lt;code&gt;&amp;lt;div class=&quot;footer&quot;&amp;gt;&#10;        &amp;amp;copy; 2004 Foo Corporation&#10;    &amp;lt;/div&amp;gt;&#10;    &lt;/code&gt;&lt;/pre&gt;&#10;&#10;Regular Markdown syntax is not processed within code blocks. E.g.,&#10;asterisks are just literal asterisks within a code block. This means&#10;it&apos;s also easy to use Markdown to write about Markdown&apos;s own syntax.&#10;&#10;&#10;&#10;&lt;h3 id=&quot;hr&quot;&gt;Horizontal Rules&lt;/h3&gt;&#10;&#10;You can produce a horizontal rule tag (`&lt;hr /&gt;`) by placing three or&#10;more hyphens, asterisks, or underscores on a line by themselves. If you&#10;wish, you may use spaces between the hyphens or asterisks. Each of the&#10;following lines will produce a horizontal rule:&#10;&#10;    * * *&#10;&#10;    ***&#10;&#10;    *****&#10;&#10;    - - -&#10;&#10;    ---------------------------------------&#10;&#10;&#10;* * *&#10;&#10;&lt;h2 id=&quot;span&quot;&gt;Span Elements&lt;/h2&gt;&#10;&#10;&lt;h3 id=&quot;link&quot;&gt;Links&lt;/h3&gt;&#10;&#10;Markdown supports two style of links: *inline* and *reference*.&#10;&#10;In both styles, the link text is delimited by [square brackets].&#10;&#10;To create an inline link, use a set of regular parentheses immediately&#10;after the link text&apos;s closing square bracket. Inside the parentheses,&#10;put the URL where you want the link to point, along with an *optional*&#10;title for the link, surrounded in quotes. For example:&#10;&#10;    This is [an example](http://example.com/ &quot;Title&quot;) inline link.&#10;&#10;    [This link](http://example.net/) has no title attribute.&#10;&#10;Will produce:&#10;&#10;    &lt;p&gt;This is &lt;a href=&quot;http://example.com/&quot; title=&quot;Title&quot;&gt;&#10;    an example&lt;/a&gt; inline link.&lt;/p&gt;&#10;&#10;    &lt;p&gt;&lt;a href=&quot;http://example.net/&quot;&gt;This link&lt;/a&gt; has no&#10;    title attribute.&lt;/p&gt;&#10;&#10;If you&apos;re referring to a local resource on the same server, you can&#10;use relative paths:&#10;&#10;    See my [About](/about/) page for details.   &#10;&#10;Reference-style links use a second set of square brackets, inside&#10;which you place a label of your choosing to identify the link:&#10;&#10;    This is [an example][id] reference-style link.&#10;&#10;You can optionally use a space to separate the sets of brackets:&#10;&#10;    This is [an example] [id] reference-style link.&#10;&#10;Then, anywhere in the document, you define your link label like this,&#10;on a line by itself:&#10;&#10;    [id]: http://example.com/  &quot;Optional Title Here&quot;&#10;&#10;That is:&#10;&#10;*   Square brackets containing the link identifier (optionally&#10;    indented from the left margin using up to three spaces);&#10;*   followed by a colon;&#10;*   followed by one or more spaces (or tabs);&#10;*   followed by the URL for the link;&#10;*   optionally followed by a title attribute for the link, enclosed&#10;    in double or single quotes, or enclosed in parentheses.&#10;&#10;The following three link definitions are equivalent:&#10;&#10;&#9;[foo]: http://example.com/  &quot;Optional Title Here&quot;&#10;&#9;[foo]: http://example.com/  &apos;Optional Title Here&apos;&#10;&#9;[foo]: http://example.com/  (Optional Title Here)&#10;&#10;**Note:** There is a known bug in Markdown.pl 1.0.1 which prevents&#10;single quotes from being used to delimit link titles.&#10;&#10;The link URL may, optionally, be surrounded by angle brackets:&#10;&#10;    [id]: &lt;http://example.com/&gt;  &quot;Optional Title Here&quot;&#10;&#10;You can put the title attribute on the next line and use extra spaces&#10;or tabs for padding, which tends to look better with longer URLs:&#10;&#10;    [id]: http://example.com/longish/path/to/resource/here&#10;        &quot;Optional Title Here&quot;&#10;&#10;Link definitions are only used for creating links during Markdown&#10;processing, and are stripped from your document in the HTML output.&#10;&#10;Link definition names may consist of letters, numbers, spaces, and&#10;punctuation -- but they are *not* case sensitive. E.g. these two&#10;links:&#10;&#10;&#9;[link text][a]&#10;&#9;[link text][A]&#10;&#10;are equivalent.&#10;&#10;The *implicit link name* shortcut allows you to omit the name of the&#10;link, in which case the link text itself is used as the name.&#10;Just use an empty set of square brackets -- e.g., to link the word&#10;&quot;Google&quot; to the google.com web site, you could simply write:&#10;&#10;&#9;[Google][]&#10;&#10;And then define the link:&#10;&#10;&#9;[Google]: http://google.com/&#10;&#10;Because link names may contain spaces, this shortcut even works for&#10;multiple words in the link text:&#10;&#10;&#9;Visit [Daring Fireball][] for more information.&#10;&#10;And then define the link:&#10;&#9;&#10;&#9;[Daring Fireball]: http://daringfireball.net/&#10;&#10;Link definitions can be placed anywhere in your Markdown document. I&#10;tend to put them immediately after each paragraph in which they&apos;re&#10;used, but if you want, you can put them all at the end of your&#10;document, sort of like footnotes.&#10;&#10;Here&apos;s an example of reference links in action:&#10;&#10;    I get 10 times more traffic from [Google] [1] than from&#10;    [Yahoo] [2] or [MSN] [3].&#10;&#10;      [1]: http://google.com/        &quot;Google&quot;&#10;      [2]: http://search.yahoo.com/  &quot;Yahoo Search&quot;&#10;      [3]: http://search.msn.com/    &quot;MSN Search&quot;&#10;&#10;Using the implicit link name shortcut, you could instead write:&#10;&#10;    I get 10 times more traffic from [Google][] than from&#10;    [Yahoo][] or [MSN][].&#10;&#10;      [google]: http://google.com/        &quot;Google&quot;&#10;      [yahoo]:  http://search.yahoo.com/  &quot;Yahoo Search&quot;&#10;      [msn]:    http://search.msn.com/    &quot;MSN Search&quot;&#10;&#10;Both of the above examples will produce the following HTML output:&#10;&#10;    &lt;p&gt;I get 10 times more traffic from &lt;a href=&quot;http://google.com/&quot;&#10;    title=&quot;Google&quot;&gt;Google&lt;/a&gt; than from&#10;    &lt;a href=&quot;http://search.yahoo.com/&quot; title=&quot;Yahoo Search&quot;&gt;Yahoo&lt;/a&gt;&#10;    or &lt;a href=&quot;http://search.msn.com/&quot; title=&quot;MSN Search&quot;&gt;MSN&lt;/a&gt;.&lt;/p&gt;&#10;&#10;For comparison, here is the same paragraph written using&#10;Markdown&apos;s inline link style:&#10;&#10;    I get 10 times more traffic from [Google](http://google.com/ &quot;Google&quot;)&#10;    than from [Yahoo](http://search.yahoo.com/ &quot;Yahoo Search&quot;) or&#10;    [MSN](http://search.msn.com/ &quot;MSN Search&quot;).&#10;&#10;The point of reference-style links is not that they&apos;re easier to&#10;write. The point is that with reference-style links, your document&#10;source is vastly more readable. Compare the above examples: using&#10;reference-style links, the paragraph itself is only 81 characters&#10;long; with inline-style links, it&apos;s 176 characters; and as raw HTML,&#10;it&apos;s 234 characters. In the raw HTML, there&apos;s more markup than there&#10;is text.&#10;&#10;With Markdown&apos;s reference-style links, a source document much more&#10;closely resembles the final output, as rendered in a browser. By&#10;allowing you to move the markup-related metadata out of the paragraph,&#10;you can add links without interrupting the narrative flow of your&#10;prose.&#10;&#10;&#10;&lt;h3 id=&quot;em&quot;&gt;Emphasis&lt;/h3&gt;&#10;&#10;Markdown treats asterisks (`*`) and underscores (`_`) as indicators of&#10;emphasis. Text wrapped with one `*` or `_` will be wrapped with an&#10;HTML `&lt;em&gt;` tag; double `*`&apos;s or `_`&apos;s will be wrapped with an HTML&#10;`&lt;strong&gt;` tag. E.g., this input:&#10;&#10;    *single asterisks*&#10;&#10;    _single underscores_&#10;&#10;    **double asterisks**&#10;&#10;    __double underscores__&#10;&#10;will produce:&#10;&#10;    &lt;em&gt;single asterisks&lt;/em&gt;&#10;&#10;    &lt;em&gt;single underscores&lt;/em&gt;&#10;&#10;    &lt;strong&gt;double asterisks&lt;/strong&gt;&#10;&#10;    &lt;strong&gt;double underscores&lt;/strong&gt;&#10;&#10;You can use whichever style you prefer; the lone restriction is that&#10;the same character must be used to open and close an emphasis span.&#10;&#10;Emphasis can be used in the middle of a word:&#10;&#10;    un*frigging*believable&#10;&#10;But if you surround an `*` or `_` with spaces, it&apos;ll be treated as a&#10;literal asterisk or underscore.&#10;&#10;To produce a literal asterisk or underscore at a position where it&#10;would otherwise be used as an emphasis delimiter, you can backslash&#10;escape it:&#10;&#10;    \*this text is surrounded by literal asterisks\*&#10;&#10;&#10;&#10;&lt;h3 id=&quot;code&quot;&gt;Code&lt;/h3&gt;&#10;&#10;To indicate a span of code, wrap it with backtick quotes (`` ` ``).&#10;Unlike a pre-formatted code block, a code span indicates code within a&#10;normal paragraph. For example:&#10;&#10;    Use the `printf()` function.&#10;&#10;will produce:&#10;&#10;    &lt;p&gt;Use the &lt;code&gt;printf()&lt;/code&gt; function.&lt;/p&gt;&#10;&#10;To include a literal backtick character within a code span, you can use&#10;multiple backticks as the opening and closing delimiters:&#10;&#10;    ``There is a literal backtick (`) here.``&#10;&#10;which will produce this:&#10;&#10;    &lt;p&gt;&lt;code&gt;There is a literal backtick (`) here.&lt;/code&gt;&lt;/p&gt;&#10;&#10;The backtick delimiters surrounding a code span may include spaces --&#10;one after the opening, one before the closing. This allows you to place&#10;literal backtick characters at the beginning or end of a code span:&#10;&#10;&#9;A single backtick in a code span: `` ` ``&#10;&#9;&#10;&#9;A backtick-delimited string in a code span: `` `foo` ``&#10;&#10;will produce:&#10;&#10;&#9;&lt;p&gt;A single backtick in a code span: &lt;code&gt;`&lt;/code&gt;&lt;/p&gt;&#10;&#9;&#10;&#9;&lt;p&gt;A backtick-delimited string in a code span: &lt;code&gt;`foo`&lt;/code&gt;&lt;/p&gt;&#10;&#10;With a code span, ampersands and angle brackets are encoded as HTML&#10;entities automatically, which makes it easy to include example HTML&#10;tags. Markdown will turn this:&#10;&#10;    Please don&apos;t use any `&lt;blink&gt;` tags.&#10;&#10;into:&#10;&#10;    &lt;p&gt;Please don&apos;t use any &lt;code&gt;&amp;lt;blink&amp;gt;&lt;/code&gt; tags.&lt;/p&gt;&#10;&#10;You can write this:&#10;&#10;    `&amp;#8212;` is the decimal-encoded equivalent of `&amp;mdash;`.&#10;&#10;to produce:&#10;&#10;    &lt;p&gt;&lt;code&gt;&amp;amp;#8212;&lt;/code&gt; is the decimal-encoded&#10;    equivalent of &lt;code&gt;&amp;amp;mdash;&lt;/code&gt;.&lt;/p&gt;&#10;&#10;&#10;&#10;&lt;h3 id=&quot;img&quot;&gt;Images&lt;/h3&gt;&#10;&#10;Admittedly, it&apos;s fairly difficult to devise a &quot;natural&quot; syntax for&#10;placing images into a plain text document format.&#10;&#10;Markdown uses an image syntax that is intended to resemble the syntax&#10;for links, allowing for two styles: *inline* and *reference*.&#10;&#10;Inline image syntax looks like this:&#10;&#10;    ![Alt text](/path/to/img.jpg)&#10;&#10;    ![Alt text](/path/to/img.jpg &quot;Optional title&quot;)&#10;&#10;That is:&#10;&#10;*   An exclamation mark: `!`;&#10;*   followed by a set of square brackets, containing the `alt`&#10;    attribute text for the image;&#10;*   followed by a set of parentheses, containing the URL or path to&#10;    the image, and an optional `title` attribute enclosed in double&#10;    or single quotes.&#10;&#10;Reference-style image syntax looks like this:&#10;&#10;    ![Alt text][id]&#10;&#10;Where &quot;id&quot; is the name of a defined image reference. Image references&#10;are defined using syntax identical to link references:&#10;&#10;    [id]: url/to/image  &quot;Optional title attribute&quot;&#10;&#10;As of this writing, Markdown has no syntax for specifying the&#10;dimensions of an image; if this is important to you, you can simply&#10;use regular HTML `&lt;img&gt;` tags.&#10;&#10;&#10;* * *&#10;&#10;&#10;&lt;h2 id=&quot;misc&quot;&gt;Miscellaneous&lt;/h2&gt;&#10;&#10;&lt;h3 id=&quot;autolink&quot;&gt;Automatic Links&lt;/h3&gt;&#10;&#10;Markdown supports a shortcut style for creating &quot;automatic&quot; links for URLs and email addresses: simply surround the URL or email address with angle brackets. What this means is that if you want to show the actual text of a URL or email address, and also have it be a clickable link, you can do this:&#10;&#10;    &lt;http://example.com/&gt;&#10;    &#10;Markdown will turn this into:&#10;&#10;    &lt;a href=&quot;http://example.com/&quot;&gt;http://example.com/&lt;/a&gt;&#10;&#10;Automatic links for email addresses work similarly, except that&#10;Markdown will also perform a bit of randomized decimal and hex&#10;entity-encoding to help obscure your address from address-harvesting&#10;spambots. For example, Markdown will turn this:&#10;&#10;    &lt;address@example.com&gt;&#10;&#10;into something like this:&#10;&#10;    &lt;a href=&quot;&amp;#x6D;&amp;#x61;i&amp;#x6C;&amp;#x74;&amp;#x6F;:&amp;#x61;&amp;#x64;&amp;#x64;&amp;#x72;&amp;#x65;&#10;    &amp;#115;&amp;#115;&amp;#64;&amp;#101;&amp;#120;&amp;#x61;&amp;#109;&amp;#x70;&amp;#x6C;e&amp;#x2E;&amp;#99;&amp;#111;&#10;    &amp;#109;&quot;&gt;&amp;#x61;&amp;#x64;&amp;#x64;&amp;#x72;&amp;#x65;&amp;#115;&amp;#115;&amp;#64;&amp;#101;&amp;#120;&amp;#x61;&#10;    &amp;#109;&amp;#x70;&amp;#x6C;e&amp;#x2E;&amp;#99;&amp;#111;&amp;#109;&lt;/a&gt;&#10;&#10;which will render in a browser as a clickable link to &quot;address@example.com&quot;.&#10;&#10;(This sort of entity-encoding trick will indeed fool many, if not&#10;most, address-harvesting bots, but it definitely won&apos;t fool all of&#10;them. It&apos;s better than nothing, but an address published in this way&#10;will probably eventually start receiving spam.)&#10;&#10;&#10;&#10;&lt;h3 id=&quot;backslash&quot;&gt;Backslash Escapes&lt;/h3&gt;&#10;&#10;Markdown allows you to use backslash escapes to generate literal&#10;characters which would otherwise have special meaning in Markdown&apos;s&#10;formatting syntax. For example, if you wanted to surround a word&#10;with literal asterisks (instead of an HTML `&lt;em&gt;` tag), you can use&#10;backslashes before the asterisks, like this:&#10;&#10;    \*literal asterisks\*&#10;&#10;Markdown provides backslash escapes for the following characters:&#10;&#10;    \   backslash&#10;    `   backtick&#10;    *   asterisk&#10;    _   underscore&#10;    {}  curly braces&#10;    []  square brackets&#10;    ()  parentheses&#10;    #   hash mark&#10;&#9;+   plus sign&#10;&#9;-   minus sign (hyphen)&#10;    .   dot&#10;    !   exclamation mark&#10;"></outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/Math.opml b/tests/MMD6Tests/Math.opml
new file mode 100644 (file)
index 0000000..6a49c1d
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Math</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;foo \\({e}^{i\pi }+1=0\\) bar&#10;&#10;\\[ {x}_{1,2}=\frac{-b\pm \sqrt{{b}^{2}-4ac}}{2a} \\]&#10;&#10;foo ${e}^{i\pi }+1=0$ bar&#10;&#10;foo ${e}^{i\pi }+1=0$, bar&#10;&#10;$${x}_{1,2}=\frac{-b\pm \sqrt{{b}^{2}-4ac}}{2a}$$&#10;&#10;5&#10;&#10;foo $ {e}^{i\pi }+1=0$ bar&#10;&#10;$$ {x}_{1,2}=\frac{-b\pm \sqrt{{b}^{2}-4ac}}{2a}$$&#10;&#10;foo ${e}^{i\pi }+1=0 $ bar&#10;&#10;$${x}_{1,2}=\frac{-b\pm \sqrt{{b}^{2}-4ac}}{2a} $$&#10;&#10;foo a${e}^{i\pi }+1=0$ bar&#10;&#10;10&#10;&#10;a$${x}_{1,2}=\frac{-b\pm \sqrt{{b}^{2}-4ac}}{2a}$$&#10;&#10;foo ${e}^{i\pi }+1=0$b bar&#10;&#10;$${x}_{1,2}=\frac{-b\pm \sqrt{{b}^{2}-4ac}}{2a}$$b&#10;&#10;$\nabla \times \mathbf{E} = - \frac{\partial \mathbf{B}}{\partial t}$&#10;&#10;$$\nabla \times \mathbf{E} = - \frac{\partial \mathbf{B}}{\partial t}$$&#10;&#10;15&#10;&#10;\\(\nabla \times \mathbf{E} = - \frac{\partial \mathbf{B}}{\partial t}\\)&#10;&#10;\\[\nabla \times \mathbf{E} = - \frac{\partial \mathbf{B}}{\partial t}\\]&#10;&#10;$\begin{equation}\nabla \times \mathbf{E} = - \frac{\partial \mathbf{B}}{\partial t}\end{equation}$&#10;&#10;$$\begin{equation}\nabla \times \mathbf{E} = - \frac{\partial \mathbf{B}}{\partial t}\end{equation}$$&#10;&#10;\\(\begin{equation}\nabla \times \mathbf{E} = - \frac{\partial \mathbf{B}}{\partial t}\end{equation}\\)&#10;&#10;20&#10;&#10;\\[\begin{equation}\nabla \times \mathbf{E} = - \frac{\partial \mathbf{B}}{\partial t}\end{equation}\\]&#10;&#10;`\begin{equation}\nabla \times \mathbf{E} = - \frac{\partial \mathbf{B}}{\partial t}\end{equation}`&#10;&#10;$a *foo* b$&#10;&#10;\\[a *foo* b\\]&#10;&#10;\\[\pi^2\\]&#10;&#10;25&#10;&#10;\\[\pi~2\\]&#10;&#10;`$a*x*y$`&#10;&#10;`$$a*x*y$$`&#10;&#10;`\\(a*x*y\\)`&#10;&#10;`\\[a*x*y\\]`&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="Math"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/Metadata YAML.opml b/tests/MMD6Tests/Metadata YAML.opml
new file mode 100644 (file)
index 0000000..8fcb7d1
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Metadata with YAML</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;---&#10;&#10;foo&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="Metadata with YAML"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/Metadata.opml b/tests/MMD6Tests/Metadata.opml
new file mode 100644 (file)
index 0000000..ef649ab
--- /dev/null
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>*foo* &quot;bar&quot;</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;foo:&#9;bar&#10;&#10;"></outline>
+<outline text="foo " _note=""></outline>
+<outline text="Metadata">
+<outline text="title" _note="*foo* &quot;bar&quot;"/>
+<outline text="empty" _note=""/>
+<outline text="css" _note="http://foo.com/bar.css"/>
+<outline text="htmlheader" _note="&lt;script type=&quot;text/javascript&quot; src=&quot;http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML&quot;&gt; &lt;/script&gt;"/>
+<outline text="latexleader" _note="mmd6-article-leader"/>
+<outline text="latexbegin" _note="mmd6-article-begin"/>
+<outline text="latexfooter" _note="mmd6-article-footer"/>
+<outline text="foo" _note="bar foo bar foo bar"/>
+<outline text="htmlheaderlevel" _note="2"/>
+<outline text="latexheaderlevel" _note="2"/>
+<outline text="baseheaderlevel" _note="3"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/Nested Definition Lists.opml b/tests/MMD6Tests/Nested Definition Lists.opml
new file mode 100644 (file)
index 0000000..5c7fb70
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Nested Definition Lists</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;bat&#10;:&#9;*foo*&#10;&#10;&#9;bar&#10;&#10;&#9;&#9;*foo*&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="Nested Definition Lists"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/Nested Lists.opml b/tests/MMD6Tests/Nested Lists.opml
new file mode 100644 (file)
index 0000000..026c599
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Nested Lists</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;* foo&#10;&#9;* bar&#10;* foo&#10;&#9;* bar&#10;* foo&#10;&#9;* bar&#10;&#10;bar&#10;&#10;* foo&#10;&#10;&#9;* bar&#10;* foo&#10;&#10;&#9;* bar&#10;* foo&#10;&#10;&#9;* bar&#10;&#10;bar&#10;&#10;* foo&#10;&#9;* bar&#10;&#10;* foo&#10;&#9;* bar&#10;&#10;* foo&#10;&#9;* bar&#10;&#10;5&#10;&#10;* foo&#10;&#9;* bar&#10;&#10;* foo&#10;&#9;* bar&#10;&#10;* foo&#10;&#9;* bar&#10;&#10;&#10;bar&#10;&#10;* foo&#10;&#10;&#9;* bar&#10;&#10;* foo&#10;&#10;&#9;* bar&#10;&#10;* foo&#10;&#10;&#9;* bar&#10;&#10;bar&#10;&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="Nested Lists"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/Raw Source.opml b/tests/MMD6Tests/Raw Source.opml
new file mode 100644 (file)
index 0000000..a020be6
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Raw Source</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;`*foo*`{*}&#10;&#10;`*foo*`{=html}&#10;&#10;`*foo*`{=latex}&#10;&#10;`*foo*`{=odt}&#10;&#10;`*foo*`{=*}&#10;&#10;5&#10;&#10;```{*}&#10;*foo*&#10;```&#10;&#10;```{=html}&#10;*foo*&#10;```&#10;&#10;```{=latex}&#10;*foo*&#10;```&#10;&#10;```{=odt}&#10;*foo*&#10;```&#10;&#10;```{=*}&#10;*foo*&#10;```&#10;&#10;10&#10;&#10;```{=*}&#10;*foo*&#10;&#10;*bar*&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="Raw Source"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/Reference Footnotes.opml b/tests/MMD6Tests/Reference Footnotes.opml
new file mode 100644 (file)
index 0000000..a8a6e16
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Reference Footnotes</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;foo.[^bar]&#10;&#10;foo.[^bar2]&#10;&#10;foo.[^bar3]&#10;&#10;foo.[^bar3]&#10;&#10;[^bar]: *foo*&#10;[^bar2]: *foo&#10;bar*&#10;[^bar3]: foo&#10;&#10;&#9;*bar*&#10;&#10;&#9;* bat&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="Reference Footnotes"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/Reference Images.opml b/tests/MMD6Tests/Reference Images.opml
new file mode 100644 (file)
index 0000000..9054ee7
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Reference Images</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;Test ![*foo*][bar].&#10;&#10;Test ![*foo*][BAR].&#10;&#10;Test ![*foo*][foobar].&#10;&#10;Test ![*foo*][foo bar].&#10;&#10;Test ![*foo*][foo  bar].&#10;&#10;5&#10;&#10;Test ![*foo*][long].&#10;&#10;Test ![foo][].&#10;&#10;Test ![foo].&#10;&#10;&#10;[foo]: http://test.0/&#10;[bar]: http://test.1/&#10;[BAR]: http://test.2/&#10;[foobar]: http://test.3/&#9;&quot;title&quot;&#10;[foo bar]: http://test.4/&#10;[foo  bar]: http://test.5/&#9;&quot;&quot;&#10;[long]: http://test.6/&#10;&quot;title&quot;&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="Reference Images"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/Reference Links.opml b/tests/MMD6Tests/Reference Links.opml
new file mode 100644 (file)
index 0000000..4caaa4e
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Reference Links</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;[*foo*][bar].&#10;&#10;[*foo*][BAR].&#10;&#10;[*foo*][foobar].&#10;&#10;[*foo*][foo bar].&#10;&#10;[*foo*][foo  bar].&#10;&#10;5&#10;&#10;[*foo*][long].&#10;&#10;[foo][].&#10;&#10;[foo].&#10;&#10;[[foo]][bar]&#10;&#10;[[foo]][]&#10;&#10;10&#10;&#10;[[foo][bar]][]&#10;&#10;[foo][bar]&#10;&#10;[foo] [bar]&#10;&#10;[foo]&#10;[bar]&#10;&#10;&#10;[foo]: http://test.0/&#10;[bar]:&#9;http://test.1/file.txt&#10;[BAR]:      http://test.2/&#10;[foobar]: http://test.3/file.txt&#9;&quot;title&quot;&#10;[foo bar]: http://test.4/&#10;[foo  bar]: http://test.5/&#9;&quot;&quot;&#10;[long]: http://test.6/&#10;&quot;title&quot;&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="Reference Links"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/Setext Headers.opml b/tests/MMD6Tests/Setext Headers.opml
new file mode 100644 (file)
index 0000000..8181938
--- /dev/null
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Setext Headers</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;"></outline>
+<outline text="foo bar" _note="&#10;"><outline text="foo *bar*" _note="&#10;"></outline>
+</outline>
+<outline text="foo&#10;bar" _note="&#10;"><outline text="foo&#10;bar" _note="&#10;"></outline>
+</outline>
+<outline text="foo" _note="bar&#10;&#10;5&#10;&#10;"><outline text="foo" _note="bar&#10;&#10;&#10;````&#10;foo&#10;====&#10;````&#10;&#10;====&#10;&#10;----&#10;"></outline>
+</outline>
+<outline text="Metadata">
+<outline text="title" _note="Setext Headers"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/Smart Quotes.opml b/tests/MMD6Tests/Smart Quotes.opml
new file mode 100644 (file)
index 0000000..31e6383
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Smart Quotes</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;&apos;foo&apos;&#10;&#10;&quot;foo&quot;&#10;&#10;&quot;foo&quot; &apos;bar&apos;&#10;&#10;&apos;foo&apos; &quot;bar&quot;&#10;&#10;&apos;.foo&apos;&#10;&#10;5&#10;&#10;\&quot;foo\&quot;.&#10;&#10;\&apos;foo\&apos;.&#10;&#10;`foo&apos;&#10;&#10;``foo&apos;&apos;&#10;&#10;```foo&apos;&apos;&apos;&#10;&#10;10&#10;&#10;&quot;&quot; foo &quot;&quot;?&#10;&#10;&apos;&apos; foo &apos;&apos;?&#10;&#10;isn&apos;t&#10;&#10;foo -- bar&#10;&#10;foo --- bar&#10;&#10;15&#10;&#10;1-2&#10;&#10;1--2&#10;&#10;1---3&#10;&#10;`--`&#10;&#10;`---`&#10;&#10;20&#10;&#10;...&#10;&#10;. . .&#10;&#10;`...`&#10;&#10;`. . .`&#10;&#10;l&apos;année l&apos;année&#10;&#10;25&#10;&#10;l&apos;été l&apos;année&#10;&#10;l&apos;été l&apos;été&#10;&#10;l&apos;année l&apos;été&#10;&#10;foo&apos;s and bar&apos;s&#10;&#10;`foo`&apos;s and `bar`&apos;s&#10;&#10;30&#10;&#10;foo(&apos;bar&apos;)&#10;&#10;foo(&quot;bar&quot;)&#10;&#10;foo-bar&#10;&#10;* foo-bar&#10;* foo-bar&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="Smart Quotes"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/Spanish.opml b/tests/MMD6Tests/Spanish.opml
new file mode 100644 (file)
index 0000000..5e60ee9
--- /dev/null
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Spanish</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;&apos;foo&apos;&#10;&#10;&quot;foo&quot;&#10;&#10;foo&apos;s&#10;&#10;foo --- bar&#10;&#10;foo -- bar&#10;&#10;5&#10;&#10;foo...&#10;&#10;[^foo]&#10;&#10;[#bar]&#10;&#10;[#bar]: foo&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="Spanish"/>
+<outline text="latexconfig" _note="article"/>
+<outline text="language" _note="es"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/Special Characters.opml b/tests/MMD6Tests/Special Characters.opml
new file mode 100644 (file)
index 0000000..5199d95
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Special Characters</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;{foo}&#10;&#10;[foo]&#10;&#10;{{foo}}&#10;&#10;[[foo]]&#10;&#10;(foo)&#10;&#10;5&#10;&#10;|foo|&#10;&#10;\foo\&#10;&#10;&lt;foo&gt;&#10;&#10;%&#10;&#10;`%`&#10;&#10;10&#10;&#10;&amp; %  # _ { } ~ ^ \\&#10;&#10;`&amp;`&#10;&#10;`%`&#10;&#10;`#`&#10;&#10;`_`&#10;&#10;15&#10;&#10;`{`&#10;&#10;`}`&#10;&#10;`~`&#10;&#10;`^`&#10;&#10;`\\`&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="Special Characters"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/Superscript.opml b/tests/MMD6Tests/Superscript.opml
new file mode 100644 (file)
index 0000000..0b64351
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Superscript</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;x^2.&#10;&#10;x^2xz.&#10;&#10;x^2.^&#10;&#10;x^2 3^&#10;&#10;x^2 3^2&#10;&#10;5&#10;&#10;x~z.&#10;&#10;x~xyz.&#10;&#10;z~z.~&#10;&#10;~/Library/MultiMarkdown&#10;&#10;^test&#10;&#10;10&#10;&#10;x\^y&#10;&#10;x\~y&#10;&#10;x~2 3~&#10;&#10;x~2 3~2&#10;&#10;H~2~O&#10;&#10;15&#10;&#10;CH~3~CH~2~CH~2~CH~3~&#10;&#10;CH~3~CH~2~CH~2~CH~3&#10;&#10;`\pi^2`&#10;&#10;`\pi^2^`&#10;&#10;`CH~4`&#10;&#10;20&#10;&#10;`CH~4~`&#10;&#10; ^238^U&#10;&#10; Ca^2+^&#10;&#10; ~t~p~x~&#10;&#10; ^23^Na^1+^&#10;&#10;25&#10;&#10;Na^1+&#10;&#10;Na^1+^&#10;&#10;Na^+&#10;&#10;Na^+^&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="Superscript"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/Swedish.opml b/tests/MMD6Tests/Swedish.opml
new file mode 100644 (file)
index 0000000..93e5738
--- /dev/null
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Swedish</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;&apos;foo&apos;&#10;&#10;&quot;foo&quot;&#10;&#10;foo&apos;s&#10;&#10;foo --- bar&#10;&#10;foo -- bar&#10;&#10;5&#10;&#10;foo...&#10;&#10;[^foo]&#10;&#10;[#bar]&#10;&#10;[#bar]: foo&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="Swedish"/>
+<outline text="latexconfig" _note="article"/>
+<outline text="language" _note="sv"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/Table of Contents.opml b/tests/MMD6Tests/Table of Contents.opml
new file mode 100644 (file)
index 0000000..233a2fd
--- /dev/null
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Table of Contents</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;{{TOC}}&#10;&#10;"></outline>
+<outline text="Second Level " _note="&#10;"></outline>
+<outline text="First Level " _note="&#10;"><outline text="Second Level b " _note="&#10;"><outline text="Third Level " _note="&#10;"></outline>
+</outline>
+<outline text="Second Level c " _note="&#10;"></outline>
+</outline>
+<outline text="First Level b " _note="&#10;"><outline text="Third Level b " _note="&#10;"></outline>
+<outline text="Second level d " _note="&#10;"><outline text="Third level d " _note="&#10;"><outline text="Fourth level d " _note="&#10;"></outline>
+</outline>
+</outline>
+</outline>
+<outline text="First level [First Level e] " _note="&#10;"><outline text="Second level [Second Level e] " _note=""></outline>
+</outline>
+<outline text="Metadata">
+<outline text="title" _note="Table of Contents"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/Tables.opml b/tests/MMD6Tests/Tables.opml
new file mode 100644 (file)
index 0000000..a73ce54
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Tables</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;| foo&#9;| bar&#9;|  &#10; -----+ | :--:+&#9;|  &#10;| *foo*&#9;| *bar*&#9;|  &#10;| **foo bar**&#9;||  &#10;&#10;&#10;| foo1  |  bar1 |&#10;| :---+ | ---:+ |&#10; *foo*  | *bar* |&#10;| **foo bar**  ||&#10;&#10;&#10;| foo2  |  bar2 |&#10;| :---- | ----:&#10; *foo*  | *bar* |&#10;| **foo bar**  ||&#10;&#10;| foo3  |  bar3 |  &#10; *foo*  | *bar* |  &#10;| **foo bar**  ||  &#10;&#10;&#10;| foo4  |  bar4 |  &#10; *foo*  | *bar* |  &#10;| **foo bar**  ||  &#10;&#10;5&#10;&#10;| foo5  |    bar5 |  &#10;| :---- | ------:  &#10; *foo*  |   *bar* |  &#10;| **foo bar** \| ||  &#10;&#10;| foo6  |  bar6 |&#10;| :---- | ----: |&#10; *foo*  | *bar* |&#10;| **foo bar**  ||&#10;&#10;&#10;| foo | bar |&#10;  --- | ---  &#10;| foo | bar |&#10;[*caption*][bar]&#10;&#10;| foo | bar |&#10;| --- | --- |&#10;| foo | bar |&#10;[*caption*]&#10;&#10;[*foo*][bar]&#10;| foo | bar |&#10;| --- | --- |&#10;| foo | bar |&#10;&#10;&#10;6&#10;&#10;  --- | --- |&#10;| foo | bar |&#10;[*caption*][bar]&#10;&#10;&#10;|    bat   ||&#10;| foo | bar |&#10;| --- | --- |&#10;| foo | bar |&#10;[**no trailing newline**]"></outline>
+<outline text="Metadata">
+<outline text="title" _note="Tables"/>
+<outline text="latexconfig" _note="article"/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/Transclusion.opml b/tests/MMD6Tests/Transclusion.opml
new file mode 100644 (file)
index 0000000..32adc21
--- /dev/null
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Transclusion</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;&#10;This text is included in `foo.txt`.&#10;&#10;This should not be transcluded to avoid an infinite loop -- {{foo.txt}}&#10;&#10;&#10;&#10;This text is included in `bar.txt`.&#10;&#10;This can be transcluded without causing an infinite loop -- &#10;This text is included in `foo.txt`.&#10;&#10;This should not be transcluded to avoid an infinite loop -- {{foo.txt}}&#10;&#10;&#10;```&#10;This is a file with no metadata.&#10;```&#10;&#10;```&#10;This is a file with no metadata.&#10;```&#10;&#10;&#10;{{transclusion/bat.*}}&#10;&#10;&#10;This text is included in `transclusion/baz.txt`.&#10;&#10;This should pull in `bar.txt`, *if* run from the parent directory, since it&#10;does *not* override the `transclude base` metadata.&#10;&#10;&#10;This text is included in `bar.txt`.&#10;&#10;This can be transcluded without causing an infinite loop -- &#10;This text is included in `foo.txt`.&#10;&#10;This should not be transcluded to avoid an infinite loop -- {{foo.txt}}&#10;&#10;&#10;```&#10;This is a file with no metadata.&#10;```&#10;&#10;```&#10;This is a file with no metadata.&#10;```&#10;&#10;&#10;&#10;&#10;This text is included in `transclusion/baz2.txt`.&#10;&#10;This should pull in `transclusion/bar.txt`, *even if* run from the parent&#10;directory, since it overrides the `transclude base` metadata.&#10;&#10;&#10;This text is included in `transclusion\bar.txt`.&#10;&#10;foo can no longer be found -- {{foo.txt}}&#10;&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="Transclusion"/>
+<outline text="latexconfig" _note="article"/>
+<outline text="transcludebase" _note="."/>
+</outline>
+</body>
+</opml>
+
diff --git a/tests/MMD6Tests/Variables.opml b/tests/MMD6Tests/Variables.opml
new file mode 100644 (file)
index 0000000..e05c2fb
--- /dev/null
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<opml version="1.0">
+<head><title>Variables</title></head>
+<body>
+<outline text="(Untitled Preamble)" _note="&#10;foo:&#9;bar&#10;&#10;[%foo]&#10;&#10;[%bar]&#10;&#10;[%bat]&#10;&#10;[%latex config]&#10;"></outline>
+<outline text="Metadata">
+<outline text="title" _note="Variables"/>
+<outline text="latexconfig" _note="article"/>
+<outline text="foo" _note="bar foo bar foo bar"/>
+<outline text="bat" _note="**foo**"/>
+</outline>
+</body>
+</opml>
+
index 4cfd66fe7e20a2dcf97d0c8b036a3016bbcd86d8..54dfb8f42c7bc0fe68dfcdc549ae04cee4a0ee2c 100644 (file)
@@ -154,8 +154,6 @@ Inline Citation
 
 \bibitem{foo}
 bar
-
-
 \end{thebibliography}
 
 \input{mmd6-article-footer}