aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--MANIFEST.in2
-rwxr-xr-xMarkdownTest/MarkdownTest.pl165
-rw-r--r--MarkdownTest/Tests_2004/Amps and angle encoding.text-out21
-rw-r--r--MarkdownTest/Tests_2004/Amps and angle encoding.text-res21
-rw-r--r--MarkdownTest/Tests_2004/Auto links.text-out28
-rw-r--r--MarkdownTest/Tests_2004/Auto links.text-res28
-rw-r--r--MarkdownTest/Tests_2004/Backslash escapes.text-out79
-rw-r--r--MarkdownTest/Tests_2004/Backslash escapes.text-res79
-rw-r--r--MarkdownTest/Tests_2004/Blockquotes with code blocks.text-out25
-rw-r--r--MarkdownTest/Tests_2004/Blockquotes with code blocks.text-res25
-rw-r--r--MarkdownTest/Tests_2004/Hard-wrapped paragraphs with list-like lines.text-out14
-rw-r--r--MarkdownTest/Tests_2004/Hard-wrapped paragraphs with list-like lines.text-res14
-rw-r--r--MarkdownTest/Tests_2004/Horizontal rules.text-out61
-rw-r--r--MarkdownTest/Tests_2004/Horizontal rules.text-res61
-rw-r--r--MarkdownTest/Tests_2004/Inline HTML (Advanced).text-out19
-rw-r--r--MarkdownTest/Tests_2004/Inline HTML (Advanced).text-res19
-rw-r--r--MarkdownTest/Tests_2004/Inline HTML (Simple).text-out59
-rw-r--r--MarkdownTest/Tests_2004/Inline HTML (Simple).text-res59
-rw-r--r--MarkdownTest/Tests_2004/Inline HTML comments.text-out18
-rw-r--r--MarkdownTest/Tests_2004/Inline HTML comments.text-res18
-rw-r--r--MarkdownTest/Tests_2004/Links, inline style.text-out17
-rw-r--r--MarkdownTest/Tests_2004/Links, inline style.text-res17
-rw-r--r--MarkdownTest/Tests_2004/Links, reference style.text-out22
-rw-r--r--MarkdownTest/Tests_2004/Links, reference style.text-res22
-rw-r--r--MarkdownTest/Tests_2004/Links-in-Headers.text-out9
-rw-r--r--MarkdownTest/Tests_2004/Links-in-Headers.text-res9
-rw-r--r--MarkdownTest/Tests_2004/Literal quotes in titles.text-out14
-rw-r--r--MarkdownTest/Tests_2004/Literal quotes in titles.text-res14
-rw-r--r--MarkdownTest/Tests_2004/Markdown Documentation - Basics.text-out321
-rw-r--r--MarkdownTest/Tests_2004/Markdown Documentation - Basics.text-res321
-rw-r--r--MarkdownTest/Tests_2004/Markdown Documentation - Syntax.text-out957
-rw-r--r--MarkdownTest/Tests_2004/Markdown Documentation - Syntax.text-res957
-rw-r--r--MarkdownTest/Tests_2004/Nested blockquotes.text-out17
-rw-r--r--MarkdownTest/Tests_2004/Nested blockquotes.text-res17
-rw-r--r--MarkdownTest/Tests_2004/Ordered and unordered lists.text-out159
-rw-r--r--MarkdownTest/Tests_2004/Ordered and unordered lists.text-res159
-rw-r--r--MarkdownTest/Tests_2004/Strong and em together.text-out14
-rw-r--r--MarkdownTest/Tests_2004/Strong and em together.text-res14
-rw-r--r--MarkdownTest/Tests_2004/Tabs.text-out37
-rw-r--r--MarkdownTest/Tests_2004/Tabs.text-res37
-rw-r--r--MarkdownTest/Tests_2004/Tidyness.text-out18
-rw-r--r--MarkdownTest/Tests_2004/Tidyness.text-res18
-rw-r--r--MarkdownTest/Tests_2004/Yuri-Attributes.text-out29
-rw-r--r--MarkdownTest/Tests_2004/Yuri-Attributes.text-res29
-rw-r--r--MarkdownTest/Tests_2004/Yuri-Attributes.text~24
-rw-r--r--MarkdownTest/Tests_2004/Yuri-Email.text-out17
-rw-r--r--MarkdownTest/Tests_2004/Yuri-Email.text-res17
-rw-r--r--MarkdownTest/Tests_2004/Yuri-Footnotes.text-out42
-rw-r--r--MarkdownTest/Tests_2004/Yuri-Footnotes.text-res55
-rw-r--r--MarkdownTest/Tests_2004/Yuri-Links-in-Headers.text-out18
-rw-r--r--MarkdownTest/Tests_2004/Yuri-Links-in-Headers.text-res18
-rw-r--r--MarkdownTest/readme.txt1
-rw-r--r--setup.cfg2
-rwxr-xr-xtest-markdown.py347
-rw-r--r--tests/__init__.py117
-rw-r--r--tests/basic/amps-and-angle-encoding.html (renamed from tests/markdown-test/amps-and-angle-encoding.html)0
-rw-r--r--tests/basic/amps-and-angle-encoding.txt (renamed from tests/markdown-test/amps-and-angle-encoding.txt)0
-rw-r--r--tests/basic/angle-links-and-img.html (renamed from tests/markdown-test/angle-links-and-img.html)0
-rw-r--r--tests/basic/angle-links-and-img.txt (renamed from tests/markdown-test/angle-links-and-img.txt)0
-rw-r--r--tests/basic/auto-links.html (renamed from tests/markdown-test/auto-links.html)0
-rw-r--r--tests/basic/auto-links.txt (renamed from tests/markdown-test/auto-links.txt)0
-rw-r--r--tests/basic/backlash-escapes.html (renamed from tests/markdown-test/backlash-escapes.html)0
-rw-r--r--tests/basic/backlash-escapes.txt (renamed from tests/markdown-test/backlash-escapes.txt)0
-rw-r--r--tests/basic/benchmark.dat (renamed from tests/markdown-test/benchmark.dat)0
-rw-r--r--tests/basic/blockquotes-with-code-blocks.html (renamed from tests/markdown-test/blockquotes-with-code-blocks.html)0
-rw-r--r--tests/basic/blockquotes-with-code-blocks.txt (renamed from tests/markdown-test/blockquotes-with-code-blocks.txt)0
-rw-r--r--tests/basic/codeblock-in-list.html (renamed from tests/markdown-test/codeblock-in-list.html)0
-rw-r--r--tests/basic/codeblock-in-list.txt (renamed from tests/markdown-test/codeblock-in-list.txt)0
-rw-r--r--tests/basic/hard-wrapped.html (renamed from tests/markdown-test/hard-wrapped.html)0
-rw-r--r--tests/basic/hard-wrapped.txt (renamed from tests/markdown-test/hard-wrapped.txt)0
-rw-r--r--tests/basic/horizontal-rules.html (renamed from tests/markdown-test/horizontal-rules.html)0
-rw-r--r--tests/basic/horizontal-rules.txt (renamed from tests/markdown-test/horizontal-rules.txt)0
-rw-r--r--tests/basic/inline-html-advanced.html (renamed from tests/markdown-test/inline-html-advanced.html)0
-rw-r--r--tests/basic/inline-html-advanced.txt (renamed from tests/markdown-test/inline-html-advanced.txt)0
-rw-r--r--tests/basic/inline-html-comments.html (renamed from tests/markdown-test/inline-html-comments.html)0
-rw-r--r--tests/basic/inline-html-comments.txt (renamed from tests/markdown-test/inline-html-comments.txt)0
-rw-r--r--tests/basic/inline-html-simple.html (renamed from tests/markdown-test/inline-html-simple.html)0
-rw-r--r--tests/basic/inline-html-simple.txt (renamed from tests/markdown-test/inline-html-simple.txt)0
-rw-r--r--tests/basic/links-inline.html (renamed from tests/markdown-test/links-inline.html)0
-rw-r--r--tests/basic/links-inline.txt (renamed from tests/markdown-test/links-inline.txt)0
-rw-r--r--tests/basic/links-reference.html (renamed from tests/markdown-test/links-reference.html)0
-rw-r--r--tests/basic/links-reference.txt (renamed from tests/markdown-test/links-reference.txt)0
-rw-r--r--tests/basic/literal-quotes.html (renamed from tests/markdown-test/literal-quotes.html)0
-rw-r--r--tests/basic/literal-quotes.txt (renamed from tests/markdown-test/literal-quotes.txt)0
-rw-r--r--tests/basic/markdown-documentation-basics.html (renamed from tests/markdown-test/markdown-documentation-basics.html)0
-rw-r--r--tests/basic/markdown-documentation-basics.txt (renamed from tests/markdown-test/markdown-documentation-basics.txt)0
-rw-r--r--tests/basic/markdown-syntax.html (renamed from tests/extensions-x-def_list/markdown-syntax.html)10
-rw-r--r--tests/basic/markdown-syntax.txt (renamed from tests/extensions-x-def_list/markdown-syntax.txt)0
-rw-r--r--tests/basic/nested-blockquotes.html (renamed from tests/markdown-test/nested-blockquotes.html)0
-rw-r--r--tests/basic/nested-blockquotes.txt (renamed from tests/markdown-test/nested-blockquotes.txt)0
-rw-r--r--tests/basic/ordered-and-unordered-list.html (renamed from tests/markdown-test/ordered-and-unordered-list.html)0
-rw-r--r--tests/basic/ordered-and-unordered-list.txt (renamed from tests/markdown-test/ordered-and-unordered-list.txt)0
-rw-r--r--tests/basic/strong-and-em-together.html (renamed from tests/markdown-test/strong-and-em-together.html)0
-rw-r--r--tests/basic/strong-and-em-together.txt (renamed from tests/markdown-test/strong-and-em-together.txt)0
-rw-r--r--tests/basic/tabs.html (renamed from tests/markdown-test/tabs.html)4
-rw-r--r--tests/basic/tabs.txt (renamed from tests/markdown-test/tabs.txt)0
-rw-r--r--tests/basic/tidyness.html (renamed from tests/markdown-test/tidyness.html)0
-rw-r--r--tests/basic/tidyness.txt (renamed from tests/markdown-test/tidyness.txt)0
-rw-r--r--tests/extensions-x-wikilinks/wikilinks.html6
-rw-r--r--tests/extensions/codehilite.html (renamed from tests/extensions-x-codehilite/code.html)4
-rw-r--r--tests/extensions/codehilite.txt (renamed from tests/extensions-x-codehilite/code.txt)0
-rw-r--r--tests/extensions/extra/abbr.html (renamed from tests/extensions-x-abbr/abbr.html)0
-rw-r--r--tests/extensions/extra/abbr.txt (renamed from tests/extensions-x-abbr/abbr.txt)0
-rw-r--r--tests/extensions/extra/footnote.html (renamed from tests/extensions-x-footnotes/footnote.html)0
-rw-r--r--tests/extensions/extra/footnote.txt (renamed from tests/extensions-x-footnotes/footnote.txt)0
-rw-r--r--tests/extensions/extra/loose_def_list.html (renamed from tests/extensions-x-def_list/loose_def_list.html)0
-rw-r--r--tests/extensions/extra/loose_def_list.txt (renamed from tests/extensions-x-def_list/loose_def_list.txt)0
-rw-r--r--tests/extensions/extra/markdown-syntax.html (renamed from tests/markdown-test/markdown-syntax.html)10
-rw-r--r--tests/extensions/extra/markdown-syntax.txt (renamed from tests/markdown-test/markdown-syntax.txt)0
-rw-r--r--tests/extensions/extra/named_markers.html (renamed from tests/extensions-x-footnotes/named_markers.html)0
-rw-r--r--tests/extensions/extra/named_markers.txt (renamed from tests/extensions-x-footnotes/named_markers.txt)0
-rw-r--r--tests/extensions/extra/raw-html.html (renamed from tests/extensions-x-extra/raw-html.html)0
-rw-r--r--tests/extensions/extra/raw-html.txt (renamed from tests/extensions-x-extra/raw-html.txt)0
-rw-r--r--tests/extensions/extra/simple_def-lists.html (renamed from tests/extensions-x-def_list/simple_def-lists.html)0
-rw-r--r--tests/extensions/extra/simple_def-lists.txt (renamed from tests/extensions-x-def_list/simple_def-lists.txt)0
-rw-r--r--tests/extensions/extra/tables.html (renamed from tests/extensions-x-tables/tables.html)0
-rw-r--r--tests/extensions/extra/tables.txt (renamed from tests/extensions-x-tables/tables.txt)0
-rw-r--r--tests/extensions/extra/test.cfg17
-rw-r--r--tests/extensions/test.cfg17
-rw-r--r--tests/extensions/toc.html (renamed from tests/extensions-x-toc/syntax-toc.html)10
-rw-r--r--tests/extensions/toc.txt (renamed from tests/extensions-x-toc/syntax-toc.txt)0
-rw-r--r--tests/extensions/toc_invalid.html (renamed from tests/extensions-x-toc/invalid.html)0
-rw-r--r--tests/extensions/toc_invalid.txt (renamed from tests/extensions-x-toc/invalid.txt)0
-rw-r--r--tests/extensions/toc_nested.html (renamed from tests/extensions-x-toc/nested.html)0
-rw-r--r--tests/extensions/toc_nested.txt (renamed from tests/extensions-x-toc/nested.txt)0
-rw-r--r--tests/extensions/toc_nested2.html (renamed from tests/extensions-x-toc/nested2.html)0
-rw-r--r--tests/extensions/toc_nested2.txt (renamed from tests/extensions-x-toc/nested2.txt)0
-rw-r--r--tests/extensions/wikilinks.html9
-rw-r--r--tests/extensions/wikilinks.txt (renamed from tests/extensions-x-wikilinks/wikilinks.txt)0
-rw-r--r--tests/html4/test.cfg2
-rw-r--r--tests/misc/em-around-links.html13
-rw-r--r--tests/misc/multi-paragraph-block-quote.html2
-rw-r--r--tests/misc/tabs-in-lists.html2
-rw-r--r--tests/php/Auto Links.text3
-rw-r--r--tests/php/Auto Links.xhtml3
-rw-r--r--tests/php/Backslash escapes.text1
-rw-r--r--tests/php/Backslash escapes.xhtml1
-rw-r--r--tests/php/Code Spans.text6
-rw-r--r--tests/php/Code Spans.xhtml6
-rw-r--r--tests/php/Code block in a list item.text15
-rw-r--r--tests/php/Code block in a list item.xhtml18
-rw-r--r--tests/php/Code block on second line.text2
-rw-r--r--tests/php/Code block on second line.xhtml2
-rw-r--r--tests/php/Email auto links.text3
-rw-r--r--tests/php/Email auto links.xhtml3
-rw-r--r--tests/php/Emphasis.text80
-rw-r--r--tests/php/Emphasis.xhtml83
-rw-r--r--tests/php/Empty List Item.text35
-rw-r--r--tests/php/Empty List Item.xhtml47
-rw-r--r--tests/php/Headers.text9
-rw-r--r--tests/php/Headers.xhtml39
-rw-r--r--tests/php/Horizontal Rules.text29
-rw-r--r--tests/php/Horizontal Rules.xhtml30
-rw-r--r--tests/php/Inline HTML (Simple).text15
-rw-r--r--tests/php/Inline HTML (Simple).xhtml15
-rw-r--r--tests/php/Inline HTML (Span).text4
-rw-r--r--tests/php/Inline HTML (Span).xhtml4
-rw-r--r--tests/php/Inline HTML comments.text9
-rw-r--r--tests/php/Inline HTML comments.xhtml9
-rw-r--r--tests/php/Ins & del.text17
-rw-r--r--tests/php/Ins & del.xhtml17
-rw-r--r--tests/php/License339
-rw-r--r--tests/php/Links, inline style.text1
-rw-r--r--tests/php/Links, inline style.xhtml1
-rw-r--r--tests/php/MD5 Hashes.text11
-rw-r--r--tests/php/MD5 Hashes.xhtml11
-rw-r--r--tests/php/Mixed OLs and ULs.text13
-rw-r--r--tests/php/Mixed OLs and ULs.xhtml21
-rw-r--r--tests/php/Nesting.text11
-rw-r--r--tests/php/Nesting.xhtml11
-rw-r--r--tests/php/PHP-Specific Bugs.text22
-rw-r--r--tests/php/PHP-Specific Bugs.xhtml17
-rw-r--r--tests/php/Parens in URL.text14
-rw-r--r--tests/php/Parens in URL.xhtml11
-rw-r--r--tests/php/Quotes in attributes.text5
-rw-r--r--tests/php/Quotes in attributes.xhtml5
-rw-r--r--tests/php/Tight blocks.text1
-rw-r--r--tests/php/Tight blocks.xhtml21
-rw-r--r--tests/php/extra/Abbr.text31
-rw-r--r--tests/php/extra/Abbr.xhtml15
-rw-r--r--tests/php/extra/Definition Lists.text115
-rw-r--r--tests/php/extra/Definition Lists.xhtml155
-rw-r--r--tests/php/extra/Emphasis.text80
-rw-r--r--tests/php/extra/Emphasis.xhtml83
-rw-r--r--tests/php/extra/Fenced Code Blocks.text60
-rw-r--r--tests/php/extra/Fenced Code Blocks.xhtml53
-rw-r--r--tests/php/extra/Footnotes.text61
-rw-r--r--tests/php/extra/Footnotes.xhtml96
-rw-r--r--tests/php/extra/Inline HTML with Markdown content.text104
-rw-r--r--tests/php/extra/Inline HTML with Markdown content.xhtml125
-rw-r--r--tests/php/extra/Tables.text104
-rw-r--r--tests/php/extra/Tables.xhtml310
-rw-r--r--tests/php/extra/test.cfg6
-rw-r--r--tests/php/test.cfg5
-rw-r--r--tests/pl/Tests_2004/Amps and angle encoding.html (renamed from MarkdownTest/Tests_2004/Amps and angle encoding.html)0
-rw-r--r--tests/pl/Tests_2004/Amps and angle encoding.text (renamed from MarkdownTest/Tests_2004/Amps and angle encoding.text)0
-rw-r--r--tests/pl/Tests_2004/Auto links.html (renamed from MarkdownTest/Tests_2004/Auto links.html)0
-rw-r--r--tests/pl/Tests_2004/Auto links.text (renamed from MarkdownTest/Tests_2004/Auto links.text)0
-rw-r--r--tests/pl/Tests_2004/Backslash escapes.html (renamed from MarkdownTest/Tests_2004/Backslash escapes.html)0
-rw-r--r--tests/pl/Tests_2004/Backslash escapes.text (renamed from MarkdownTest/Tests_2004/Backslash escapes.text)0
-rw-r--r--tests/pl/Tests_2004/Blockquotes with code blocks.html (renamed from MarkdownTest/Tests_2004/Blockquotes with code blocks.html)0
-rw-r--r--tests/pl/Tests_2004/Blockquotes with code blocks.text (renamed from MarkdownTest/Tests_2004/Blockquotes with code blocks.text)0
-rw-r--r--tests/pl/Tests_2004/Hard-wrapped paragraphs with list-like lines.html (renamed from MarkdownTest/Tests_2004/Hard-wrapped paragraphs with list-like lines.html)0
-rw-r--r--tests/pl/Tests_2004/Hard-wrapped paragraphs with list-like lines.text (renamed from MarkdownTest/Tests_2004/Hard-wrapped paragraphs with list-like lines.text)0
-rw-r--r--tests/pl/Tests_2004/Horizontal rules.html (renamed from MarkdownTest/Tests_2004/Horizontal rules.html)0
-rw-r--r--tests/pl/Tests_2004/Horizontal rules.text (renamed from MarkdownTest/Tests_2004/Horizontal rules.text)0
-rw-r--r--tests/pl/Tests_2004/Inline HTML (Advanced).html (renamed from MarkdownTest/Tests_2004/Inline HTML (Advanced).html)0
-rw-r--r--tests/pl/Tests_2004/Inline HTML (Advanced).text (renamed from MarkdownTest/Tests_2004/Inline HTML (Advanced).text)0
-rw-r--r--tests/pl/Tests_2004/Inline HTML (Simple).html (renamed from MarkdownTest/Tests_2004/Inline HTML (Simple).html)0
-rw-r--r--tests/pl/Tests_2004/Inline HTML (Simple).text (renamed from MarkdownTest/Tests_2004/Inline HTML (Simple).text)0
-rw-r--r--tests/pl/Tests_2004/Inline HTML comments.html (renamed from MarkdownTest/Tests_2004/Inline HTML comments.html)0
-rw-r--r--tests/pl/Tests_2004/Inline HTML comments.text (renamed from MarkdownTest/Tests_2004/Inline HTML comments.text)0
-rw-r--r--tests/pl/Tests_2004/Links, inline style.html (renamed from MarkdownTest/Tests_2004/Links, inline style.html)0
-rw-r--r--tests/pl/Tests_2004/Links, inline style.text (renamed from MarkdownTest/Tests_2004/Links, inline style.text)0
-rw-r--r--tests/pl/Tests_2004/Links, reference style.html (renamed from MarkdownTest/Tests_2004/Links, reference style.html)0
-rw-r--r--tests/pl/Tests_2004/Links, reference style.text (renamed from MarkdownTest/Tests_2004/Links, reference style.text)0
-rw-r--r--tests/pl/Tests_2004/Literal quotes in titles.html (renamed from MarkdownTest/Tests_2004/Literal quotes in titles.html)0
-rw-r--r--tests/pl/Tests_2004/Literal quotes in titles.text (renamed from MarkdownTest/Tests_2004/Literal quotes in titles.text)0
-rw-r--r--tests/pl/Tests_2004/Markdown Documentation - Basics.html (renamed from MarkdownTest/Tests_2004/Markdown Documentation - Basics.html)0
-rw-r--r--tests/pl/Tests_2004/Markdown Documentation - Basics.text (renamed from MarkdownTest/Tests_2004/Markdown Documentation - Basics.text)0
-rw-r--r--tests/pl/Tests_2004/Markdown Documentation - Syntax.html (renamed from MarkdownTest/Tests_2004/Markdown Documentation - Syntax.html)0
-rw-r--r--tests/pl/Tests_2004/Markdown Documentation - Syntax.text (renamed from MarkdownTest/Tests_2004/Markdown Documentation - Syntax.text)0
-rw-r--r--tests/pl/Tests_2004/Nested blockquotes.html (renamed from MarkdownTest/Tests_2004/Nested blockquotes.html)0
-rw-r--r--tests/pl/Tests_2004/Nested blockquotes.text (renamed from MarkdownTest/Tests_2004/Nested blockquotes.text)0
-rw-r--r--tests/pl/Tests_2004/Ordered and unordered lists.html (renamed from MarkdownTest/Tests_2004/Ordered and unordered lists.html)0
-rw-r--r--tests/pl/Tests_2004/Ordered and unordered lists.text (renamed from MarkdownTest/Tests_2004/Ordered and unordered lists.text)0
-rw-r--r--tests/pl/Tests_2004/Strong and em together.html (renamed from MarkdownTest/Tests_2004/Strong and em together.html)0
-rw-r--r--tests/pl/Tests_2004/Strong and em together.text (renamed from MarkdownTest/Tests_2004/Strong and em together.text)0
-rw-r--r--tests/pl/Tests_2004/Tabs.html (renamed from MarkdownTest/Tests_2004/Tabs.html)0
-rw-r--r--tests/pl/Tests_2004/Tabs.text (renamed from MarkdownTest/Tests_2004/Tabs.text)0
-rw-r--r--tests/pl/Tests_2004/Tidyness.html (renamed from MarkdownTest/Tests_2004/Tidyness.html)0
-rw-r--r--tests/pl/Tests_2004/Tidyness.text (renamed from MarkdownTest/Tests_2004/Tidyness.text)0
-rw-r--r--tests/pl/Tests_2004/Yuri-Attributes.html (renamed from MarkdownTest/Tests_2004/Yuri-Attributes.html)0
-rw-r--r--tests/pl/Tests_2004/Yuri-Attributes.text (renamed from MarkdownTest/Tests_2004/Yuri-Attributes.text)0
-rw-r--r--tests/pl/Tests_2004/Yuri-Email.html (renamed from MarkdownTest/Tests_2004/Yuri-Email.html)0
-rw-r--r--tests/pl/Tests_2004/Yuri-Email.text (renamed from MarkdownTest/Tests_2004/Yuri-Email.text)0
-rw-r--r--tests/pl/Tests_2004/Yuri-Footnotes.html (renamed from MarkdownTest/Tests_2004/Yuri-Footnotes.html)0
-rw-r--r--tests/pl/Tests_2004/Yuri-Footnotes.text (renamed from MarkdownTest/Tests_2004/Yuri-Footnotes.text)0
-rw-r--r--tests/pl/Tests_2004/Yuri-Links-in-Headers.html (renamed from MarkdownTest/Tests_2004/Yuri-Links-in-Headers.html)0
-rw-r--r--tests/pl/Tests_2004/Yuri-Links-in-Headers.text (renamed from MarkdownTest/Tests_2004/Yuri-Links-in-Headers.text)0
-rw-r--r--tests/pl/Tests_2004/test.cfg10
-rw-r--r--tests/pl/Tests_2007/Amps and angle encoding.html (renamed from MarkdownTest/Tests_2007/Amps and angle encoding.html)0
-rw-r--r--tests/pl/Tests_2007/Amps and angle encoding.text (renamed from MarkdownTest/Tests_2007/Amps and angle encoding.text)0
-rw-r--r--tests/pl/Tests_2007/Auto links.html (renamed from MarkdownTest/Tests_2007/Auto links.html)0
-rw-r--r--tests/pl/Tests_2007/Auto links.text (renamed from MarkdownTest/Tests_2007/Auto links.text)0
-rw-r--r--tests/pl/Tests_2007/Backslash escapes.html (renamed from MarkdownTest/Tests_2007/Backslash escapes.html)0
-rw-r--r--tests/pl/Tests_2007/Backslash escapes.text (renamed from MarkdownTest/Tests_2007/Backslash escapes.text)0
-rw-r--r--tests/pl/Tests_2007/Blockquotes with code blocks.html (renamed from MarkdownTest/Tests_2007/Blockquotes with code blocks.html)0
-rw-r--r--tests/pl/Tests_2007/Blockquotes with code blocks.text (renamed from MarkdownTest/Tests_2007/Blockquotes with code blocks.text)0
-rw-r--r--tests/pl/Tests_2007/Code Blocks.html (renamed from MarkdownTest/Tests_2007/Code Blocks.html)0
-rw-r--r--tests/pl/Tests_2007/Code Blocks.text (renamed from MarkdownTest/Tests_2007/Code Blocks.text)0
-rw-r--r--tests/pl/Tests_2007/Code Spans.html (renamed from MarkdownTest/Tests_2007/Code Spans.html)0
-rw-r--r--tests/pl/Tests_2007/Code Spans.text (renamed from MarkdownTest/Tests_2007/Code Spans.text)0
-rw-r--r--tests/pl/Tests_2007/Hard-wrapped paragraphs with list-like lines.html (renamed from MarkdownTest/Tests_2007/Hard-wrapped paragraphs with list-like lines.html)0
-rw-r--r--tests/pl/Tests_2007/Hard-wrapped paragraphs with list-like lines.text (renamed from MarkdownTest/Tests_2007/Hard-wrapped paragraphs with list-like lines.text)0
-rw-r--r--tests/pl/Tests_2007/Horizontal rules.html (renamed from MarkdownTest/Tests_2007/Horizontal rules.html)0
-rw-r--r--tests/pl/Tests_2007/Horizontal rules.text (renamed from MarkdownTest/Tests_2007/Horizontal rules.text)0
-rw-r--r--tests/pl/Tests_2007/Images.html (renamed from MarkdownTest/Tests_2007/Images.html)0
-rw-r--r--tests/pl/Tests_2007/Images.text (renamed from MarkdownTest/Tests_2007/Images.text)0
-rw-r--r--tests/pl/Tests_2007/Inline HTML (Advanced).html (renamed from MarkdownTest/Tests_2007/Inline HTML (Advanced).html)0
-rw-r--r--tests/pl/Tests_2007/Inline HTML (Advanced).text (renamed from MarkdownTest/Tests_2007/Inline HTML (Advanced).text)0
-rw-r--r--tests/pl/Tests_2007/Inline HTML (Simple).html (renamed from MarkdownTest/Tests_2007/Inline HTML (Simple).html)0
-rw-r--r--tests/pl/Tests_2007/Inline HTML (Simple).text (renamed from MarkdownTest/Tests_2007/Inline HTML (Simple).text)0
-rw-r--r--tests/pl/Tests_2007/Inline HTML comments.html (renamed from MarkdownTest/Tests_2007/Inline HTML comments.html)0
-rw-r--r--tests/pl/Tests_2007/Inline HTML comments.text (renamed from MarkdownTest/Tests_2007/Inline HTML comments.text)0
-rw-r--r--tests/pl/Tests_2007/Links, inline style.html (renamed from MarkdownTest/Tests_2007/Links, inline style.html)0
-rw-r--r--tests/pl/Tests_2007/Links, inline style.text (renamed from MarkdownTest/Tests_2007/Links, inline style.text)0
-rw-r--r--tests/pl/Tests_2007/Links, reference style.html (renamed from MarkdownTest/Tests_2007/Links, reference style.html)0
-rw-r--r--tests/pl/Tests_2007/Links, reference style.text (renamed from MarkdownTest/Tests_2007/Links, reference style.text)0
-rw-r--r--[-rwxr-xr-x]tests/pl/Tests_2007/Links, shortcut references.html (renamed from MarkdownTest/Tests_2007/Links, shortcut references.html)0
-rw-r--r--[-rwxr-xr-x]tests/pl/Tests_2007/Links, shortcut references.text (renamed from MarkdownTest/Tests_2007/Links, shortcut references.text)0
-rw-r--r--tests/pl/Tests_2007/Literal quotes in titles.html (renamed from MarkdownTest/Tests_2007/Literal quotes in titles.html)0
-rw-r--r--tests/pl/Tests_2007/Literal quotes in titles.text (renamed from MarkdownTest/Tests_2007/Literal quotes in titles.text)0
-rw-r--r--tests/pl/Tests_2007/Markdown Documentation - Basics.html (renamed from MarkdownTest/Tests_2007/Markdown Documentation - Basics.html)0
-rw-r--r--tests/pl/Tests_2007/Markdown Documentation - Basics.text (renamed from MarkdownTest/Tests_2007/Markdown Documentation - Basics.text)0
-rw-r--r--tests/pl/Tests_2007/Markdown Documentation - Syntax.html (renamed from MarkdownTest/Tests_2007/Markdown Documentation - Syntax.html)0
-rw-r--r--tests/pl/Tests_2007/Markdown Documentation - Syntax.text (renamed from MarkdownTest/Tests_2007/Markdown Documentation - Syntax.text)0
-rw-r--r--tests/pl/Tests_2007/Nested blockquotes.html (renamed from MarkdownTest/Tests_2007/Nested blockquotes.html)0
-rw-r--r--tests/pl/Tests_2007/Nested blockquotes.text (renamed from MarkdownTest/Tests_2007/Nested blockquotes.text)0
-rw-r--r--tests/pl/Tests_2007/Ordered and unordered lists.html (renamed from MarkdownTest/Tests_2007/Ordered and unordered lists.html)0
-rw-r--r--tests/pl/Tests_2007/Ordered and unordered lists.text (renamed from MarkdownTest/Tests_2007/Ordered and unordered lists.text)0
-rw-r--r--tests/pl/Tests_2007/Strong and em together.html (renamed from MarkdownTest/Tests_2007/Strong and em together.html)0
-rw-r--r--tests/pl/Tests_2007/Strong and em together.text (renamed from MarkdownTest/Tests_2007/Strong and em together.text)0
-rw-r--r--tests/pl/Tests_2007/Tabs.html (renamed from MarkdownTest/Tests_2007/Tabs.html)0
-rw-r--r--tests/pl/Tests_2007/Tabs.text (renamed from MarkdownTest/Tests_2007/Tabs.text)0
-rw-r--r--tests/pl/Tests_2007/Tidyness.html (renamed from MarkdownTest/Tests_2007/Tidyness.html)0
-rw-r--r--tests/pl/Tests_2007/Tidyness.text (renamed from MarkdownTest/Tests_2007/Tidyness.text)0
-rw-r--r--tests/pl/Tests_2007/test.cfg5
-rw-r--r--tests/plugins.py115
-rw-r--r--tests/safe_mode/remove.html34
-rw-r--r--tests/safe_mode/remove.txt69
-rw-r--r--tests/safe_mode/replace.html34
-rw-r--r--tests/safe_mode/replace.txt69
-rw-r--r--tests/safe_mode/test.cfg8
-rw-r--r--[-rwxr-xr-x]tests/test_apis.py (renamed from regression-tests.py)22
-rw-r--r--tests/util.py15
296 files changed, 2974 insertions, 4637 deletions
diff --git a/MANIFEST.in b/MANIFEST.in
index 4558938..1cbe234 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -1,6 +1,6 @@
recursive-include bin *
recursive-include markdown *.py
recursive-include docs *
-prune markdown/extensions/legacy.py
+recursive-include tests *.txt *.html *.cfg *.py
include setup.py
include MANIFEST
diff --git a/MarkdownTest/MarkdownTest.pl b/MarkdownTest/MarkdownTest.pl
deleted file mode 100755
index 8e7048f..0000000
--- a/MarkdownTest/MarkdownTest.pl
+++ /dev/null
@@ -1,165 +0,0 @@
-#!/usr/bin/perl
-
-#
-# MarkdownTester -- Run tests for Markdown implementations
-#
-# Copyright (c) 2004-2005 John Gruber
-# <http://daringfireball.net/projects/markdown/>
-#
-
-use strict;
-use warnings;
-use Getopt::Long;
-use Benchmark;
-
-our $VERSION = '1.0.2';
-# Sat 24 Dec 2005
-
-my $time_start = new Benchmark;
-my $test_dir = "Tests";
-my $script = "./Markdown.pl";
-my $use_tidy = 0;
-my ($flag_version);
-
-GetOptions (
- "script=s" => \$script,
- "testdir=s" => \$test_dir,
- "tidy" => \$use_tidy,
- "version" => \$flag_version,
- );
-
-if($flag_version) {
- my $progname = $0;
- $progname =~ s{.*/}{};
- die "$progname version $VERSION\n";
-}
-
-unless (-d $test_dir) { die "'$test_dir' is not a directory.\n"; }
-unless (-f $script) { die "$script does not exist.\n"; }
-unless (-x $script) { die "$script is not executable.\n"; }
-
-my $tests_passed = 0;
-my $tests_failed = 0;
-
-TEST:
-foreach my $testfile (glob "$test_dir/*.text") {
- my $testname = $testfile;
- $testname =~ s{.*/(.+)\.text$}{$1}i;
- print "$testname ... ";
-
- # Look for a corresponding .html file for each .text file:
- my $resultfile = $testfile;
- $resultfile =~ s{\.text$}{\.html}i;
- unless (-f $resultfile) {
- print "'$resultfile' does not exist.\n\n";
- next TEST;
- }
-
- # open(TEST, $testfile) || die("Can't open testfile: $!");
- open(RESULT, $resultfile) || die("Can't open resultfile: $!");
- undef $/;
- # my $t_input = <TEST>;
- my $t_result = <RESULT>;
-
- my $t_output = `'$script' '$testfile'`;
-
- # Normalize the output and expected result strings:
- $t_result =~ s/\s+\z//; # trim trailing whitespace
- $t_output =~ s/\s+\z//; # trim trailing whitespace
- if ($use_tidy) {
- # Escape the strings, pass them through to CLI tidy tool for tag-level equivalency
- $t_result =~ s{'}{'\\''}g; # escape ' chars for shell
- $t_output =~ s{'}{'\\''}g;
- $t_result = `echo '$t_result' | tidy -quiet --show-warnings n`;
- $t_output = `echo '$t_output' | tidy -quiet --show-warnings n`;
- }
-
- if ($t_output eq $t_result) {
- print "OK\n";
- $tests_passed++;
- }
- else {
- print "FAILED\n\n";
- $tests_failed++;
- }
-}
-
-print "\n\n";
-print "$tests_passed passed; $tests_failed failed.\n";
-
-my $time_end = new Benchmark;
-my $time_diff = timediff($time_end, $time_start);
-print "Benchmark: ", timestr($time_diff), "\n";
-
-
-__END__
-
-=pod
-
-=head1 NAME
-
-B<MarkdownTest>
-
-
-=head1 SYNOPSIS
-
-B<MarkdownTest.pl> [ B<--options> ] [ I<file> ... ]
-
-
-=head1 DESCRIPTION
-
-
-=head1 OPTIONS
-
-Use "--" to end switch parsing. For example, to open a file named "-z", use:
-
- MarkdownTest.pl -- -z
-
-=over 4
-
-=item B<--script>
-
-Specify the path to the Markdown script to test. Defaults to
-"./Markdown.pl". Example:
-
- ./MarkdownTest.pl --script ./PHP-Markdown/php-markdown
-
-=item B<--testdir>
-
-Specify the path to a directory containing test data. Defaults to "Tests".
-
-=item B<--tidy>
-
-Flag to turn on using the command line 'tidy' tool to normalize HTML
-output before comparing script output to the expected test result.
-Assumes that the 'tidy' command is available in your PATH. Defaults to
-off.
-
-=back
-
-
-
-=head1 BUGS
-
-
-
-=head1 VERSION HISTORY
-
-1.0 Mon 13 Dec 2004-2005
-
-1.0.1 Mon 19 Sep 2005
-
- + Better handling of case when foo.text exists, but foo.html doesn't.
- It now prints a message and moves on, rather than dying.
-
-
-=head1 COPYRIGHT AND LICENSE
-
-Copyright (c) 2004-2005 John Gruber
-<http://daringfireball.net/>
-All rights reserved.
-
-This is free software; you may redistribute it and/or modify it under
-the same terms as Perl itself.
-
-=cut
diff --git a/MarkdownTest/Tests_2004/Amps and angle encoding.text-out b/MarkdownTest/Tests_2004/Amps and angle encoding.text-out
deleted file mode 100644
index d52a97e..0000000
--- a/MarkdownTest/Tests_2004/Amps and angle encoding.text-out
+++ /dev/null
@@ -1,21 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<html>
-<head>
-<meta name="generator" content=
-"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
-<title></title>
-</head>
-<body>
-<p>AT&amp;T has an ampersand in their name.</p>
-<p>AT&amp;T is another way to write it.</p>
-<p>This &amp; that.</p>
-<p>4 &lt; 5.</p>
-<p>6 &gt; 5.</p>
-<p>Here's a <a href="http://example.com/?foo=1&amp;bar=2">link</a>
-with an ampersand in the URL.</p>
-<p>Here's a link with an amersand in the link text: <a href=
-"http://att.com/" title="AT&amp;T">AT&amp;T</a>.</p>
-<p>Here's an inline <a href="/script?foo=1&amp;bar=2">link</a>.</p>
-<p>Here's an inline <a href="/script?foo=1&amp;bar=2">link</a>.</p>
-</body>
-</html>
diff --git a/MarkdownTest/Tests_2004/Amps and angle encoding.text-res b/MarkdownTest/Tests_2004/Amps and angle encoding.text-res
deleted file mode 100644
index d52a97e..0000000
--- a/MarkdownTest/Tests_2004/Amps and angle encoding.text-res
+++ /dev/null
@@ -1,21 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<html>
-<head>
-<meta name="generator" content=
-"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
-<title></title>
-</head>
-<body>
-<p>AT&amp;T has an ampersand in their name.</p>
-<p>AT&amp;T is another way to write it.</p>
-<p>This &amp; that.</p>
-<p>4 &lt; 5.</p>
-<p>6 &gt; 5.</p>
-<p>Here's a <a href="http://example.com/?foo=1&amp;bar=2">link</a>
-with an ampersand in the URL.</p>
-<p>Here's a link with an amersand in the link text: <a href=
-"http://att.com/" title="AT&amp;T">AT&amp;T</a>.</p>
-<p>Here's an inline <a href="/script?foo=1&amp;bar=2">link</a>.</p>
-<p>Here's an inline <a href="/script?foo=1&amp;bar=2">link</a>.</p>
-</body>
-</html>
diff --git a/MarkdownTest/Tests_2004/Auto links.text-out b/MarkdownTest/Tests_2004/Auto links.text-out
deleted file mode 100644
index 3b20890..0000000
--- a/MarkdownTest/Tests_2004/Auto links.text-out
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<html>
-<head>
-<meta name="generator" content=
-"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
-<title></title>
-</head>
-<body>
-<p>Link: <a href="http://example.com/">http://example.com/</a>.</p>
-<p>With an ampersand: <a href=
-"http://example.com/?foo=1&amp;bar=2">http://example.com/?foo=1&amp;bar=2</a></p>
-<ul>
-<li>In a list?</li>
-<li><a href="http://example.com/">http://example.com/</a></li>
-<li>It should.</li>
-</ul>
-<blockquote>
-<p>Blockquoted: <a href=
-"http://example.com/">http://example.com/</a></p>
-</blockquote>
-<p>Auto-links should not occur here:
-<code>&lt;http://example.com/&gt;</code></p>
-<pre>
-<code>or here: &lt;http://example.com/&gt;
-</code>
-</pre>
-</body>
-</html>
diff --git a/MarkdownTest/Tests_2004/Auto links.text-res b/MarkdownTest/Tests_2004/Auto links.text-res
deleted file mode 100644
index 3b20890..0000000
--- a/MarkdownTest/Tests_2004/Auto links.text-res
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<html>
-<head>
-<meta name="generator" content=
-"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
-<title></title>
-</head>
-<body>
-<p>Link: <a href="http://example.com/">http://example.com/</a>.</p>
-<p>With an ampersand: <a href=
-"http://example.com/?foo=1&amp;bar=2">http://example.com/?foo=1&amp;bar=2</a></p>
-<ul>
-<li>In a list?</li>
-<li><a href="http://example.com/">http://example.com/</a></li>
-<li>It should.</li>
-</ul>
-<blockquote>
-<p>Blockquoted: <a href=
-"http://example.com/">http://example.com/</a></p>
-</blockquote>
-<p>Auto-links should not occur here:
-<code>&lt;http://example.com/&gt;</code></p>
-<pre>
-<code>or here: &lt;http://example.com/&gt;
-</code>
-</pre>
-</body>
-</html>
diff --git a/MarkdownTest/Tests_2004/Backslash escapes.text-out b/MarkdownTest/Tests_2004/Backslash escapes.text-out
deleted file mode 100644
index 1aae6cc..0000000
--- a/MarkdownTest/Tests_2004/Backslash escapes.text-out
+++ /dev/null
@@ -1,79 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<html>
-<head>
-<meta name="generator" content=
-"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
-<title></title>
-</head>
-<body>
-<p>These should all get escaped:</p>
-<p>Backslash: \</p>
-<p>Backtick: `</p>
-<p>Asterisk: *</p>
-<p>Underscore: _</p>
-<p>Left brace: {</p>
-<p>Right brace: }</p>
-<p>Left bracket: [</p>
-<p>Right bracket: ]</p>
-<p>Left paren: (</p>
-<p>Right paren: )</p>
-<p>Greater-than: &gt;</p>
-<p>Hash: #</p>
-<p>Period: .</p>
-<p>Bang: !</p>
-<p>Plus: +</p>
-<p>Minus: -</p>
-<p>These should not, because they occur within a code block:</p>
-<pre>
-<code>Backslash: \
-
-Backtick: \`
-
-Asterisk: \*
-
-Underscore: \_
-
-Left brace: \{
-
-Right brace: \}
-
-Left bracket: \[
-
-Right bracket: \]
-
-Left paren: \(
-
-Right paren: \)
-
-Greater-than: \&gt;
-
-Hash: \#
-
-Period: \.
-
-Bang: \!
-
-Plus: \+
-
-Minus: \-
-</code>
-</pre>
-<p>Nor should these, which occur in code spans:</p>
-<p>Backslash: <code>\</code></p>
-<p>Backtick: <code>\`</code></p>
-<p>Asterisk: <code>\*</code></p>
-<p>Underscore: <code>\_</code></p>
-<p>Left brace: <code>\{</code></p>
-<p>Right brace: <code>\}</code></p>
-<p>Left bracket: <code>\[</code></p>
-<p>Right bracket: <code>\]</code></p>
-<p>Left paren: <code>\(</code></p>
-<p>Right paren: <code>\)</code></p>
-<p>Greater-than: <code>\&gt;</code></p>
-<p>Hash: <code>\#</code></p>
-<p>Period: <code>\.</code></p>
-<p>Bang: <code>\!</code></p>
-<p>Plus: <code>\+</code></p>
-<p>Minus: <code>\-</code></p>
-</body>
-</html>
diff --git a/MarkdownTest/Tests_2004/Backslash escapes.text-res b/MarkdownTest/Tests_2004/Backslash escapes.text-res
deleted file mode 100644
index 1aae6cc..0000000
--- a/MarkdownTest/Tests_2004/Backslash escapes.text-res
+++ /dev/null
@@ -1,79 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<html>
-<head>
-<meta name="generator" content=
-"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
-<title></title>
-</head>
-<body>
-<p>These should all get escaped:</p>
-<p>Backslash: \</p>
-<p>Backtick: `</p>
-<p>Asterisk: *</p>
-<p>Underscore: _</p>
-<p>Left brace: {</p>
-<p>Right brace: }</p>
-<p>Left bracket: [</p>
-<p>Right bracket: ]</p>
-<p>Left paren: (</p>
-<p>Right paren: )</p>
-<p>Greater-than: &gt;</p>
-<p>Hash: #</p>
-<p>Period: .</p>
-<p>Bang: !</p>
-<p>Plus: +</p>
-<p>Minus: -</p>
-<p>These should not, because they occur within a code block:</p>
-<pre>
-<code>Backslash: \
-
-Backtick: \`
-
-Asterisk: \*
-
-Underscore: \_
-
-Left brace: \{
-
-Right brace: \}
-
-Left bracket: \[
-
-Right bracket: \]
-
-Left paren: \(
-
-Right paren: \)
-
-Greater-than: \&gt;
-
-Hash: \#
-
-Period: \.
-
-Bang: \!
-
-Plus: \+
-
-Minus: \-
-</code>
-</pre>
-<p>Nor should these, which occur in code spans:</p>
-<p>Backslash: <code>\</code></p>
-<p>Backtick: <code>\`</code></p>
-<p>Asterisk: <code>\*</code></p>
-<p>Underscore: <code>\_</code></p>
-<p>Left brace: <code>\{</code></p>
-<p>Right brace: <code>\}</code></p>
-<p>Left bracket: <code>\[</code></p>
-<p>Right bracket: <code>\]</code></p>
-<p>Left paren: <code>\(</code></p>
-<p>Right paren: <code>\)</code></p>
-<p>Greater-than: <code>\&gt;</code></p>
-<p>Hash: <code>\#</code></p>
-<p>Period: <code>\.</code></p>
-<p>Bang: <code>\!</code></p>
-<p>Plus: <code>\+</code></p>
-<p>Minus: <code>\-</code></p>
-</body>
-</html>
diff --git a/MarkdownTest/Tests_2004/Blockquotes with code blocks.text-out b/MarkdownTest/Tests_2004/Blockquotes with code blocks.text-out
deleted file mode 100644
index 75ef055..0000000
--- a/MarkdownTest/Tests_2004/Blockquotes with code blocks.text-out
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<html>
-<head>
-<meta name="generator" content=
-"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
-<title></title>
-</head>
-<body>
-<blockquote>
-<p>Example:</p>
-<pre>
-<code>sub status {
- print "working";
-}
-</code>
-</pre>
-<p>Or:</p>
-<pre>
-<code>sub status {
- return "working";
-}
-</code>
-</pre></blockquote>
-</body>
-</html>
diff --git a/MarkdownTest/Tests_2004/Blockquotes with code blocks.text-res b/MarkdownTest/Tests_2004/Blockquotes with code blocks.text-res
deleted file mode 100644
index 75ef055..0000000
--- a/MarkdownTest/Tests_2004/Blockquotes with code blocks.text-res
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<html>
-<head>
-<meta name="generator" content=
-"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
-<title></title>
-</head>
-<body>
-<blockquote>
-<p>Example:</p>
-<pre>
-<code>sub status {
- print "working";
-}
-</code>
-</pre>
-<p>Or:</p>
-<pre>
-<code>sub status {
- return "working";
-}
-</code>
-</pre></blockquote>
-</body>
-</html>
diff --git a/MarkdownTest/Tests_2004/Hard-wrapped paragraphs with list-like lines.text-out b/MarkdownTest/Tests_2004/Hard-wrapped paragraphs with list-like lines.text-out
deleted file mode 100644
index e044b46..0000000
--- a/MarkdownTest/Tests_2004/Hard-wrapped paragraphs with list-like lines.text-out
+++ /dev/null
@@ -1,14 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<html>
-<head>
-<meta name="generator" content=
-"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
-<title></title>
-</head>
-<body>
-<p>In Markdown 1.0.0 and earlier. Version 8. This line turns into a
-list item. Because a hard-wrapped line in the middle of a paragraph
-looked like a list item.</p>
-<p>Here's one with a bullet. * criminey.</p>
-</body>
-</html>
diff --git a/MarkdownTest/Tests_2004/Hard-wrapped paragraphs with list-like lines.text-res b/MarkdownTest/Tests_2004/Hard-wrapped paragraphs with list-like lines.text-res
deleted file mode 100644
index e044b46..0000000
--- a/MarkdownTest/Tests_2004/Hard-wrapped paragraphs with list-like lines.text-res
+++ /dev/null
@@ -1,14 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<html>
-<head>
-<meta name="generator" content=
-"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
-<title></title>
-</head>
-<body>
-<p>In Markdown 1.0.0 and earlier. Version 8. This line turns into a
-list item. Because a hard-wrapped line in the middle of a paragraph
-looked like a list item.</p>
-<p>Here's one with a bullet. * criminey.</p>
-</body>
-</html>
diff --git a/MarkdownTest/Tests_2004/Horizontal rules.text-out b/MarkdownTest/Tests_2004/Horizontal rules.text-out
deleted file mode 100644
index 71e4d27..0000000
--- a/MarkdownTest/Tests_2004/Horizontal rules.text-out
+++ /dev/null
@@ -1,61 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<html>
-<head>
-<meta name="generator" content=
-"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
-<title></title>
-</head>
-<body>
-<p>Dashes:</p>
-<hr>
-<hr>
-<hr>
-<hr>
-<pre>
-<code>---
-</code>
-</pre>
-<hr>
-<hr>
-<hr>
-<hr>
-<pre>
-<code>- - -
-</code>
-</pre>
-<p>Asterisks:</p>
-<hr>
-<hr>
-<hr>
-<hr>
-<pre>
-<code>***
-</code>
-</pre>
-<hr>
-<hr>
-<hr>
-<hr>
-<pre>
-<code>* * *
-</code>
-</pre>
-<p>Underscores:</p>
-<hr>
-<hr>
-<hr>
-<hr>
-<pre>
-<code>___
-</code>
-</pre>
-<hr>
-<hr>
-<hr>
-<hr>
-<pre>
-<code>_ _ _
-</code>
-</pre>
-</body>
-</html>
diff --git a/MarkdownTest/Tests_2004/Horizontal rules.text-res b/MarkdownTest/Tests_2004/Horizontal rules.text-res
deleted file mode 100644
index 71e4d27..0000000
--- a/MarkdownTest/Tests_2004/Horizontal rules.text-res
+++ /dev/null
@@ -1,61 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<html>
-<head>
-<meta name="generator" content=
-"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
-<title></title>
-</head>
-<body>
-<p>Dashes:</p>
-<hr>
-<hr>
-<hr>
-<hr>
-<pre>
-<code>---
-</code>
-</pre>
-<hr>
-<hr>
-<hr>
-<hr>
-<pre>
-<code>- - -
-</code>
-</pre>
-<p>Asterisks:</p>
-<hr>
-<hr>
-<hr>
-<hr>
-<pre>
-<code>***
-</code>
-</pre>
-<hr>
-<hr>
-<hr>
-<hr>
-<pre>
-<code>* * *
-</code>
-</pre>
-<p>Underscores:</p>
-<hr>
-<hr>
-<hr>
-<hr>
-<pre>
-<code>___
-</code>
-</pre>
-<hr>
-<hr>
-<hr>
-<hr>
-<pre>
-<code>_ _ _
-</code>
-</pre>
-</body>
-</html>
diff --git a/MarkdownTest/Tests_2004/Inline HTML (Advanced).text-out b/MarkdownTest/Tests_2004/Inline HTML (Advanced).text-out
deleted file mode 100644
index ee84e31..0000000
--- a/MarkdownTest/Tests_2004/Inline HTML (Advanced).text-out
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<html>
-<head>
-<meta name="generator" content=
-"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
-<title></title>
-</head>
-<body>
-<p>Simple block on one line:</p>
-<div>foo</div>
-<p>And nested without indentation:</p>
-<div>
-<div>
-<div>foo</div>
-</div>
-<div>bar</div>
-</div>
-</body>
-</html>
diff --git a/MarkdownTest/Tests_2004/Inline HTML (Advanced).text-res b/MarkdownTest/Tests_2004/Inline HTML (Advanced).text-res
deleted file mode 100644
index ee84e31..0000000
--- a/MarkdownTest/Tests_2004/Inline HTML (Advanced).text-res
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<html>
-<head>
-<meta name="generator" content=
-"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
-<title></title>
-</head>
-<body>
-<p>Simple block on one line:</p>
-<div>foo</div>
-<p>And nested without indentation:</p>
-<div>
-<div>
-<div>foo</div>
-</div>
-<div>bar</div>
-</div>
-</body>
-</html>
diff --git a/MarkdownTest/Tests_2004/Inline HTML (Simple).text-out b/MarkdownTest/Tests_2004/Inline HTML (Simple).text-out
deleted file mode 100644
index a5022e0..0000000
--- a/MarkdownTest/Tests_2004/Inline HTML (Simple).text-out
+++ /dev/null
@@ -1,59 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<html>
-<head>
-<meta name="generator" content=
-"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
-<title></title>
-</head>
-<body>
-<p>Here's a simple block:</p>
-<div>foo</div>
-<p>This should be a code block, though:</p>
-<pre>
-<code>&lt;div&gt;
- foo
-&lt;/div&gt;
-</code>
-</pre>
-<p>As should this:</p>
-<pre>
-<code>&lt;div&gt;foo&lt;/div&gt;
-</code>
-</pre>
-<p>Now, nested:</p>
-<div>
-<div>
-<div>foo</div>
-</div>
-</div>
-<p>This should just be an HTML comment:</p>
-<!-- Comment -->
-<p>Multiline:</p>
-<!--
-Blah
-Blah
--->
-<p>Code block:</p>
-<pre>
-<code>&lt;!-- Comment --&gt;
-</code>
-</pre>
-<p>Just plain comment, with trailing spaces on the line:</p>
-<!-- foo -->
-<p>Code:</p>
-<pre>
-<code>&lt;hr /&gt;
-</code>
-</pre>
-<p>Hr's:</p>
-<hr>
-<hr>
-<hr>
-<hr>
-<hr>
-<hr>
-<hr class="foo" id="bar">
-<hr class="foo" id="bar">
-<hr class="foo" id="bar">
-</body>
-</html>
diff --git a/MarkdownTest/Tests_2004/Inline HTML (Simple).text-res b/MarkdownTest/Tests_2004/Inline HTML (Simple).text-res
deleted file mode 100644
index a5022e0..0000000
--- a/MarkdownTest/Tests_2004/Inline HTML (Simple).text-res
+++ /dev/null
@@ -1,59 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<html>
-<head>
-<meta name="generator" content=
-"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
-<title></title>
-</head>
-<body>
-<p>Here's a simple block:</p>
-<div>foo</div>
-<p>This should be a code block, though:</p>
-<pre>
-<code>&lt;div&gt;
- foo
-&lt;/div&gt;
-</code>
-</pre>
-<p>As should this:</p>
-<pre>
-<code>&lt;div&gt;foo&lt;/div&gt;
-</code>
-</pre>
-<p>Now, nested:</p>
-<div>
-<div>
-<div>foo</div>
-</div>
-</div>
-<p>This should just be an HTML comment:</p>
-<!-- Comment -->
-<p>Multiline:</p>
-<!--
-Blah
-Blah
--->
-<p>Code block:</p>
-<pre>
-<code>&lt;!-- Comment --&gt;
-</code>
-</pre>
-<p>Just plain comment, with trailing spaces on the line:</p>
-<!-- foo -->
-<p>Code:</p>
-<pre>
-<code>&lt;hr /&gt;
-</code>
-</pre>
-<p>Hr's:</p>
-<hr>
-<hr>
-<hr>
-<hr>
-<hr>
-<hr>
-<hr class="foo" id="bar">
-<hr class="foo" id="bar">
-<hr class="foo" id="bar">
-</body>
-</html>
diff --git a/MarkdownTest/Tests_2004/Inline HTML comments.text-out b/MarkdownTest/Tests_2004/Inline HTML comments.text-out
deleted file mode 100644
index 6e2f425..0000000
--- a/MarkdownTest/Tests_2004/Inline HTML comments.text-out
+++ /dev/null
@@ -1,18 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<html>
-<head>
-<meta name="generator" content=
-"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
-<title></title>
-</head>
-<body>
-<p>Paragraph one.</p>
-<!-- This is a simple comment -->
-<!--
- This is another comment.
--->
-<p>Paragraph two.</p>
-<!-- one comment block == == with two comments -->
-<p>The end.</p>
-</body>
-</html>
diff --git a/MarkdownTest/Tests_2004/Inline HTML comments.text-res b/MarkdownTest/Tests_2004/Inline HTML comments.text-res
deleted file mode 100644
index 6e2f425..0000000
--- a/MarkdownTest/Tests_2004/Inline HTML comments.text-res
+++ /dev/null
@@ -1,18 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<html>
-<head>
-<meta name="generator" content=
-"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
-<title></title>
-</head>
-<body>
-<p>Paragraph one.</p>
-<!-- This is a simple comment -->
-<!--
- This is another comment.
--->
-<p>Paragraph two.</p>
-<!-- one comment block == == with two comments -->
-<p>The end.</p>
-</body>
-</html>
diff --git a/MarkdownTest/Tests_2004/Links, inline style.text-out b/MarkdownTest/Tests_2004/Links, inline style.text-out
deleted file mode 100644
index 0125b63..0000000
--- a/MarkdownTest/Tests_2004/Links, inline style.text-out
+++ /dev/null
@@ -1,17 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<html>
-<head>
-<meta name="generator" content=
-"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
-<title></title>
-</head>
-<body>
-<p>Just a <a href="/url/">URL</a>.</p>
-<p><a href="/url/" title="title">URL and title</a>.</p>
-<p><a href="/url/" title="title preceded by two spaces">URL and
-title</a>.</p>
-<p><a href="/url/" title="title preceded by a tab">URL and
-title</a>.</p>
-<p><a href="">Empty</a>.</p>
-</body>
-</html>
diff --git a/MarkdownTest/Tests_2004/Links, inline style.text-res b/MarkdownTest/Tests_2004/Links, inline style.text-res
deleted file mode 100644
index 0125b63..0000000
--- a/MarkdownTest/Tests_2004/Links, inline style.text-res
+++ /dev/null
@@ -1,17 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<html>
-<head>
-<meta name="generator" content=
-"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
-<title></title>
-</head>
-<body>
-<p>Just a <a href="/url/">URL</a>.</p>
-<p><a href="/url/" title="title">URL and title</a>.</p>
-<p><a href="/url/" title="title preceded by two spaces">URL and
-title</a>.</p>
-<p><a href="/url/" title="title preceded by a tab">URL and
-title</a>.</p>
-<p><a href="">Empty</a>.</p>
-</body>
-</html>
diff --git a/MarkdownTest/Tests_2004/Links, reference style.text-out b/MarkdownTest/Tests_2004/Links, reference style.text-out
deleted file mode 100644
index 04ae0cd..0000000
--- a/MarkdownTest/Tests_2004/Links, reference style.text-out
+++ /dev/null
@@ -1,22 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<html>
-<head>
-<meta name="generator" content=
-"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
-<title></title>
-</head>
-<body>
-<p>Foo <a href="/url/" title="Title">bar</a>.</p>
-<p>Foo <a href="/url/" title="Title">bar</a>.</p>
-<p>Foo <a href="/url/" title="Title">bar</a>.</p>
-<p>With <a href="/url/">embedded [brackets]</a>.</p>
-<p>Indented <a href="/url">once</a>.</p>
-<p>Indented <a href="/url">twice</a>.</p>
-<p>Indented <a href="/url">thrice</a>.</p>
-<p>Indented [four][] times.</p>
-<pre>
-<code>[four]: /url
-</code>
-</pre>
-</body>
-</html>
diff --git a/MarkdownTest/Tests_2004/Links, reference style.text-res b/MarkdownTest/Tests_2004/Links, reference style.text-res
deleted file mode 100644
index 04ae0cd..0000000
--- a/MarkdownTest/Tests_2004/Links, reference style.text-res
+++ /dev/null
@@ -1,22 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<html>
-<head>
-<meta name="generator" content=
-"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
-<title></title>
-</head>
-<body>
-<p>Foo <a href="/url/" title="Title">bar</a>.</p>
-<p>Foo <a href="/url/" title="Title">bar</a>.</p>
-<p>Foo <a href="/url/" title="Title">bar</a>.</p>
-<p>With <a href="/url/">embedded [brackets]</a>.</p>
-<p>Indented <a href="/url">once</a>.</p>
-<p>Indented <a href="/url">twice</a>.</p>
-<p>Indented <a href="/url">thrice</a>.</p>
-<p>Indented [four][] times.</p>
-<pre>
-<code>[four]: /url
-</code>
-</pre>
-</body>
-</html>
diff --git a/MarkdownTest/Tests_2004/Links-in-Headers.text-out b/MarkdownTest/Tests_2004/Links-in-Headers.text-out
deleted file mode 100644
index defddbf..0000000
--- a/MarkdownTest/Tests_2004/Links-in-Headers.text-out
+++ /dev/null
@@ -1,9 +0,0 @@
-<h2>A plain header</h2>
-<p>Let's first have a plain header</p>
-<h1>An underlined header</h1>
-<p>(That's also useful)</p>
-<h1>A header with a <a href="http://www.link.com">link</a></h1>
-<p>First with a hash</p>
-<h2>Another with a <a href="http://www.link.com/">link</a></h2>
-<p>This time underlined</p>
-
diff --git a/MarkdownTest/Tests_2004/Links-in-Headers.text-res b/MarkdownTest/Tests_2004/Links-in-Headers.text-res
deleted file mode 100644
index cc6cfcf..0000000
--- a/MarkdownTest/Tests_2004/Links-in-Headers.text-res
+++ /dev/null
@@ -1,9 +0,0 @@
-<h2><span class="markdown">A plain header</span></h2>
-<p>Let's first have a plain header</p>
-<h1>An underlined header</h1>
-<p>(That's also useful)</p>
-<h1>A header with a <a href="http://www.link.com">link</a></h1>
-<p>First with a hash</p>
-<h2>Another with a <a href="http://www.link.com/">link</a></h2>
-<p>This time underlined</p>
-
diff --git a/MarkdownTest/Tests_2004/Literal quotes in titles.text-out b/MarkdownTest/Tests_2004/Literal quotes in titles.text-out
deleted file mode 100644
index 3fd6fbc..0000000
--- a/MarkdownTest/Tests_2004/Literal quotes in titles.text-out
+++ /dev/null
@@ -1,14 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<html>
-<head>
-<meta name="generator" content=
-"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
-<title></title>
-</head>
-<body>
-<p>Foo <a href="/url/" title=
-"Title with &quot;quotes&quot; inside">bar</a>.</p>
-<p>Foo <a href="/url/" title=
-"Title with &quot;quotes&quot; inside">bar</a>.</p>
-</body>
-</html>
diff --git a/MarkdownTest/Tests_2004/Literal quotes in titles.text-res b/MarkdownTest/Tests_2004/Literal quotes in titles.text-res
deleted file mode 100644
index 3fd6fbc..0000000
--- a/MarkdownTest/Tests_2004/Literal quotes in titles.text-res
+++ /dev/null
@@ -1,14 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<html>
-<head>
-<meta name="generator" content=
-"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
-<title></title>
-</head>
-<body>
-<p>Foo <a href="/url/" title=
-"Title with &quot;quotes&quot; inside">bar</a>.</p>
-<p>Foo <a href="/url/" title=
-"Title with &quot;quotes&quot; inside">bar</a>.</p>
-</body>
-</html>
diff --git a/MarkdownTest/Tests_2004/Markdown Documentation - Basics.text-out b/MarkdownTest/Tests_2004/Markdown Documentation - Basics.text-out
deleted file mode 100644
index 65b90fa..0000000
--- a/MarkdownTest/Tests_2004/Markdown Documentation - Basics.text-out
+++ /dev/null
@@ -1,321 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<html>
-<head>
-<meta name="generator" content=
-"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
-<title></title>
-</head>
-<body>
-<h1>Markdown: Basics</h1>
-<ul id="ProjectSubmenu">
-<li><a href="/projects/markdown/" title=
-"Markdown Project Page">Main</a></li>
-<li><a class="selected" title="Markdown Basics">Basics</a></li>
-<li><a href="/projects/markdown/syntax" title=
-"Markdown Syntax Documentation">Syntax</a></li>
-<li><a href="/projects/markdown/license" title=
-"Pricing and License Information">License</a></li>
-<li><a href="/projects/markdown/dingus" title=
-"Online Markdown Web Form">Dingus</a></li>
-</ul>
-<h2>Getting the Gist of Markdown's Formatting Syntax</h2>
-<p>This page offers a brief overview of what it's like to use
-Markdown. The <a href="/projects/markdown/syntax" title=
-"Markdown Syntax">syntax page</a> provides complete, detailed
-documentation for every feature, but Markdown should be very easy
-to pick up simply by looking at a few examples of it in action. The
-examples on this page are written in a before/after style, showing
-example syntax and the HTML output produced by Markdown.</p>
-<p>It's also helpful to simply try Markdown out; the <a href=
-"/projects/markdown/dingus" title="Markdown Dingus">Dingus</a> is a
-web application that allows you type your own Markdown-formatted
-text and translate it to XHTML.</p>
-<p><strong>Note:</strong> This document is itself written using
-Markdown; you can <a href="/projects/markdown/basics.text">see the
-source for it by adding '.text' to the URL</a>.</p>
-<h2>Paragraphs, Headers, Blockquotes</h2>
-<p>A paragraph is simply one or more consecutive lines of text,
-separated by one or more blank lines. (A blank line is any line
-that looks like a blank line -- a line containing nothing spaces or
-tabs is considered blank.) Normal paragraphs should not be intended
-with spaces or tabs.</p>
-<p>Markdown offers two styles of headers: <em>Setext</em> and
-<em>atx</em>. Setext-style headers for <code>&lt;h1&gt;</code> and
-<code>&lt;h2&gt;</code> are created by "underlining" with equal
-signs (<code>=</code>) and hyphens (<code>-</code>), respectively.
-To create an atx-style header, you put 1-6 hash marks
-(<code>#</code>) at the beginning of the line -- the number of
-hashes equals the resulting HTML header level.</p>
-<p>Blockquotes are indicated using email-style '<code>&gt;</code>'
-angle brackets.</p>
-<p>Markdown:</p>
-<pre>
-<code>A First Level Header
-====================
-
-A Second Level Header
----------------------
-
-Now is the time for all good men to come to
-the aid of their country. This is just a
-regular paragraph.
-
-The quick brown fox jumped over the lazy
-dog's back.
-
-### Header 3
-
-&gt; This is a blockquote.
-&gt;
-&gt; This is the second paragraph in the blockquote.
-&gt;
-&gt; ## This is an H2 in a blockquote
-</code>
-</pre>
-<p>Output:</p>
-<pre>
-<code>&lt;h1&gt;A First Level Header&lt;/h1&gt;
-
-&lt;h2&gt;A Second Level Header&lt;/h2&gt;
-
-&lt;p&gt;Now is the time for all good men to come to
-the aid of their country. This is just a
-regular paragraph.&lt;/p&gt;
-
-&lt;p&gt;The quick brown fox jumped over the lazy
-dog's back.&lt;/p&gt;
-
-&lt;h3&gt;Header 3&lt;/h3&gt;
-
-&lt;blockquote&gt;
- &lt;p&gt;This is a blockquote.&lt;/p&gt;
-
- &lt;p&gt;This is the second paragraph in the blockquote.&lt;/p&gt;
-
- &lt;h2&gt;This is an H2 in a blockquote&lt;/h2&gt;
-&lt;/blockquote&gt;
-</code>
-</pre>
-<h3>Phrase Emphasis</h3>
-<p>Markdown uses asterisks and underscores to indicate spans of
-emphasis.</p>
-<p>Markdown:</p>
-<pre>
-<code>Some of these words *are emphasized*.
-Some of these words _are emphasized also_.
-
-Use two asterisks for **strong emphasis**.
-Or, if you prefer, __use two underscores instead__.
-</code>
-</pre>
-<p>Output:</p>
-<pre>
-<code>&lt;p&gt;Some of these words &lt;em&gt;are emphasized&lt;/em&gt;.
-Some of these words &lt;em&gt;are emphasized also&lt;/em&gt;.&lt;/p&gt;
-
-&lt;p&gt;Use two asterisks for &lt;strong&gt;strong emphasis&lt;/strong&gt;.
-Or, if you prefer, &lt;strong&gt;use two underscores instead&lt;/strong&gt;.&lt;/p&gt;
-</code>
-</pre>
-<h2>Lists</h2>
-<p>Unordered (bulleted) lists use asterisks, pluses, and hyphens
-(<code>*</code>, <code>+</code>, and <code>-</code>) as list
-markers. These three markers are interchangable; this:</p>
-<pre>
-<code>* Candy.
-* Gum.
-* Booze.
-</code>
-</pre>
-<p>this:</p>
-<pre>
-<code>+ Candy.
-+ Gum.
-+ Booze.
-</code>
-</pre>
-<p>and this:</p>
-<pre>
-<code>- Candy.
-- Gum.
-- Booze.
-</code>
-</pre>
-<p>all produce the same output:</p>
-<pre>
-<code>&lt;ul&gt;
-&lt;li&gt;Candy.&lt;/li&gt;
-&lt;li&gt;Gum.&lt;/li&gt;
-&lt;li&gt;Booze.&lt;/li&gt;
-&lt;/ul&gt;
-</code>
-</pre>
-<p>Ordered (numbered) lists use regular numbers, followed by
-periods, as list markers:</p>
-<pre>
-<code>1. Red
-2. Green
-3. Blue
-</code>
-</pre>
-<p>Output:</p>
-<pre>
-<code>&lt;ol&gt;
-&lt;li&gt;Red&lt;/li&gt;
-&lt;li&gt;Green&lt;/li&gt;
-&lt;li&gt;Blue&lt;/li&gt;
-&lt;/ol&gt;
-</code>
-</pre>
-<p>If you put blank lines between items, you'll get
-<code>&lt;p&gt;</code> tags for the list item text. You can create
-multi-paragraph list items by indenting the paragraphs by 4 spaces
-or 1 tab:</p>
-<pre>
-<code>* A list item.
-
- With multiple paragraphs.
-
-* Another item in the list.
-</code>
-</pre>
-<p>Output:</p>
-<pre>
-<code>&lt;ul&gt;
-&lt;li&gt;&lt;p&gt;A list item.&lt;/p&gt;
-&lt;p&gt;With multiple paragraphs.&lt;/p&gt;&lt;/li&gt;
-&lt;li&gt;&lt;p&gt;Another item in the list.&lt;/p&gt;&lt;/li&gt;
-&lt;/ul&gt;
-</code>
-</pre>
-<h3>Links</h3>
-<p>Markdown supports two styles for creating links: <em>inline</em>
-and <em>reference</em>. With both styles, you use square brackets
-to delimit the text you want to turn into a link.</p>
-<p>Inline-style links use parentheses immediately after the link
-text. For example:</p>
-<pre>
-<code>This is an [example link](http://example.com/).
-</code>
-</pre>
-<p>Output:</p>
-<pre>
-<code>&lt;p&gt;This is an &lt;a href="http://example.com/"&gt;
-example link&lt;/a&gt;.&lt;/p&gt;
-</code>
-</pre>
-<p>Optionally, you may include a title attribute in the
-parentheses:</p>
-<pre>
-<code>This is an [example link](http://example.com/ "With a Title").
-</code>
-</pre>
-<p>Output:</p>
-<pre>
-<code>&lt;p&gt;This is an &lt;a href="http://example.com/" title="With a Title"&gt;
-example link&lt;/a&gt;.&lt;/p&gt;
-</code>
-</pre>
-<p>Reference-style links allow you to refer to your links by names,
-which you define elsewhere in your document:</p>
-<pre>
-<code>I get 10 times more traffic from [Google][1] than from
-[Yahoo][2] or [MSN][3].
-
-[1]: http://google.com/ "Google"
-[2]: http://search.yahoo.com/ "Yahoo Search"
-[3]: http://search.msn.com/ "MSN Search"
-</code>
-</pre>
-<p>Output:</p>
-<pre>
-<code>&lt;p&gt;I get 10 times more traffic from &lt;a href="http://google.com/"
-title="Google"&gt;Google&lt;/a&gt; than from &lt;a href="http://search.yahoo.com/"
-title="Yahoo Search"&gt;Yahoo&lt;/a&gt; or &lt;a href="http://search.msn.com/"
-title="MSN Search"&gt;MSN&lt;/a&gt;.&lt;/p&gt;
-</code>
-</pre>
-<p>The title attribute is optional. Link names may contain letters,
-numbers and spaces, but are <em>not</em> case sensitive:</p>
-<pre>
-<code>I start my morning with a cup of coffee and
-[The New York Times][NY Times].
-
-[ny times]: http://www.nytimes.com/
-</code>
-</pre>
-<p>Output:</p>
-<pre>
-<code>&lt;p&gt;I start my morning with a cup of coffee and
-&lt;a href="http://www.nytimes.com/"&gt;The New York Times&lt;/a&gt;.&lt;/p&gt;
-</code>
-</pre>
-<h3>Images</h3>
-<p>Image syntax is very much like link syntax.</p>
-<p>Inline (titles are optional):</p>
-<pre>
-<code>![alt text](/path/to/img.jpg "Title")
-</code>
-</pre>
-<p>Reference-style:</p>
-<pre>
-<code>![alt text][id]
-
-[id]: /path/to/img.jpg "Title"
-</code>
-</pre>
-<p>Both of the above examples produce the same output:</p>
-<pre>
-<code>&lt;img src="/path/to/img.jpg" alt="alt text" title="Title" /&gt;
-</code>
-</pre>
-<h3>Code</h3>
-<p>In a regular paragraph, you can create code span by wrapping
-text in backtick quotes. Any ampersands (<code>&amp;</code>) and
-angle brackets (<code>&lt;</code> or <code>&gt;</code>) will
-automatically be translated into HTML entities. This makes it easy
-to use Markdown to write about HTML example code:</p>
-<pre>
-<code>I strongly recommend against using any `&lt;blink&gt;` tags.
-
-I wish SmartyPants used named entities like `&amp;mdash;`
-instead of decimal-encoded entites like `&amp;#8212;`.
-</code>
-</pre>
-<p>Output:</p>
-<pre>
-<code>&lt;p&gt;I strongly recommend against using any
-&lt;code&gt;&amp;lt;blink&amp;gt;&lt;/code&gt; tags.&lt;/p&gt;
-
-&lt;p&gt;I wish SmartyPants used named entities like
-&lt;code&gt;&amp;amp;mdash;&lt;/code&gt; instead of decimal-encoded
-entites like &lt;code&gt;&amp;amp;#8212;&lt;/code&gt;.&lt;/p&gt;
-</code>
-</pre>
-<p>To specify an entire block of pre-formatted code, indent every
-line of the block by 4 spaces or 1 tab. Just like with code spans,
-<code>&amp;</code>, <code>&lt;</code>, and <code>&gt;</code>
-characters will be escaped automatically.</p>
-<p>Markdown:</p>
-<pre>
-<code>If you want your page to validate under XHTML 1.0 Strict,
-you've got to put paragraph tags in your blockquotes:
-
- &lt;blockquote&gt;
- &lt;p&gt;For example.&lt;/p&gt;
- &lt;/blockquote&gt;
-</code>
-</pre>
-<p>Output:</p>
-<pre>
-<code>&lt;p&gt;If you want your page to validate under XHTML 1.0 Strict,
-you've got to put paragraph tags in your blockquotes:&lt;/p&gt;
-
-&lt;pre&gt;&lt;code&gt;&amp;lt;blockquote&amp;gt;
- &amp;lt;p&amp;gt;For example.&amp;lt;/p&amp;gt;
-&amp;lt;/blockquote&amp;gt;
-&lt;/code&gt;&lt;/pre&gt;
-</code>
-</pre>
-</body>
-</html>
diff --git a/MarkdownTest/Tests_2004/Markdown Documentation - Basics.text-res b/MarkdownTest/Tests_2004/Markdown Documentation - Basics.text-res
deleted file mode 100644
index 65b90fa..0000000
--- a/MarkdownTest/Tests_2004/Markdown Documentation - Basics.text-res
+++ /dev/null
@@ -1,321 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<html>
-<head>
-<meta name="generator" content=
-"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
-<title></title>
-</head>
-<body>
-<h1>Markdown: Basics</h1>
-<ul id="ProjectSubmenu">
-<li><a href="/projects/markdown/" title=
-"Markdown Project Page">Main</a></li>
-<li><a class="selected" title="Markdown Basics">Basics</a></li>
-<li><a href="/projects/markdown/syntax" title=
-"Markdown Syntax Documentation">Syntax</a></li>
-<li><a href="/projects/markdown/license" title=
-"Pricing and License Information">License</a></li>
-<li><a href="/projects/markdown/dingus" title=
-"Online Markdown Web Form">Dingus</a></li>
-</ul>
-<h2>Getting the Gist of Markdown's Formatting Syntax</h2>
-<p>This page offers a brief overview of what it's like to use
-Markdown. The <a href="/projects/markdown/syntax" title=
-"Markdown Syntax">syntax page</a> provides complete, detailed
-documentation for every feature, but Markdown should be very easy
-to pick up simply by looking at a few examples of it in action. The
-examples on this page are written in a before/after style, showing
-example syntax and the HTML output produced by Markdown.</p>
-<p>It's also helpful to simply try Markdown out; the <a href=
-"/projects/markdown/dingus" title="Markdown Dingus">Dingus</a> is a
-web application that allows you type your own Markdown-formatted
-text and translate it to XHTML.</p>
-<p><strong>Note:</strong> This document is itself written using
-Markdown; you can <a href="/projects/markdown/basics.text">see the
-source for it by adding '.text' to the URL</a>.</p>
-<h2>Paragraphs, Headers, Blockquotes</h2>
-<p>A paragraph is simply one or more consecutive lines of text,
-separated by one or more blank lines. (A blank line is any line
-that looks like a blank line -- a line containing nothing spaces or
-tabs is considered blank.) Normal paragraphs should not be intended
-with spaces or tabs.</p>
-<p>Markdown offers two styles of headers: <em>Setext</em> and
-<em>atx</em>. Setext-style headers for <code>&lt;h1&gt;</code> and
-<code>&lt;h2&gt;</code> are created by "underlining" with equal
-signs (<code>=</code>) and hyphens (<code>-</code>), respectively.
-To create an atx-style header, you put 1-6 hash marks
-(<code>#</code>) at the beginning of the line -- the number of
-hashes equals the resulting HTML header level.</p>
-<p>Blockquotes are indicated using email-style '<code>&gt;</code>'
-angle brackets.</p>
-<p>Markdown:</p>
-<pre>
-<code>A First Level Header
-====================
-
-A Second Level Header
----------------------
-
-Now is the time for all good men to come to
-the aid of their country. This is just a
-regular paragraph.
-
-The quick brown fox jumped over the lazy
-dog's back.
-
-### Header 3
-
-&gt; This is a blockquote.
-&gt;
-&gt; This is the second paragraph in the blockquote.
-&gt;
-&gt; ## This is an H2 in a blockquote
-</code>
-</pre>
-<p>Output:</p>
-<pre>
-<code>&lt;h1&gt;A First Level Header&lt;/h1&gt;
-
-&lt;h2&gt;A Second Level Header&lt;/h2&gt;
-
-&lt;p&gt;Now is the time for all good men to come to
-the aid of their country. This is just a
-regular paragraph.&lt;/p&gt;
-
-&lt;p&gt;The quick brown fox jumped over the lazy
-dog's back.&lt;/p&gt;
-
-&lt;h3&gt;Header 3&lt;/h3&gt;
-
-&lt;blockquote&gt;
- &lt;p&gt;This is a blockquote.&lt;/p&gt;
-
- &lt;p&gt;This is the second paragraph in the blockquote.&lt;/p&gt;
-
- &lt;h2&gt;This is an H2 in a blockquote&lt;/h2&gt;
-&lt;/blockquote&gt;
-</code>
-</pre>
-<h3>Phrase Emphasis</h3>
-<p>Markdown uses asterisks and underscores to indicate spans of
-emphasis.</p>
-<p>Markdown:</p>
-<pre>
-<code>Some of these words *are emphasized*.
-Some of these words _are emphasized also_.
-
-Use two asterisks for **strong emphasis**.
-Or, if you prefer, __use two underscores instead__.
-</code>
-</pre>
-<p>Output:</p>
-<pre>
-<code>&lt;p&gt;Some of these words &lt;em&gt;are emphasized&lt;/em&gt;.
-Some of these words &lt;em&gt;are emphasized also&lt;/em&gt;.&lt;/p&gt;
-
-&lt;p&gt;Use two asterisks for &lt;strong&gt;strong emphasis&lt;/strong&gt;.
-Or, if you prefer, &lt;strong&gt;use two underscores instead&lt;/strong&gt;.&lt;/p&gt;
-</code>
-</pre>
-<h2>Lists</h2>
-<p>Unordered (bulleted) lists use asterisks, pluses, and hyphens
-(<code>*</code>, <code>+</code>, and <code>-</code>) as list
-markers. These three markers are interchangable; this:</p>
-<pre>
-<code>* Candy.
-* Gum.
-* Booze.
-</code>
-</pre>
-<p>this:</p>
-<pre>
-<code>+ Candy.
-+ Gum.
-+ Booze.
-</code>
-</pre>
-<p>and this:</p>
-<pre>
-<code>- Candy.
-- Gum.
-- Booze.
-</code>
-</pre>
-<p>all produce the same output:</p>
-<pre>
-<code>&lt;ul&gt;
-&lt;li&gt;Candy.&lt;/li&gt;
-&lt;li&gt;Gum.&lt;/li&gt;
-&lt;li&gt;Booze.&lt;/li&gt;
-&lt;/ul&gt;
-</code>
-</pre>
-<p>Ordered (numbered) lists use regular numbers, followed by
-periods, as list markers:</p>
-<pre>
-<code>1. Red
-2. Green
-3. Blue
-</code>
-</pre>
-<p>Output:</p>
-<pre>
-<code>&lt;ol&gt;
-&lt;li&gt;Red&lt;/li&gt;
-&lt;li&gt;Green&lt;/li&gt;
-&lt;li&gt;Blue&lt;/li&gt;
-&lt;/ol&gt;
-</code>
-</pre>
-<p>If you put blank lines between items, you'll get
-<code>&lt;p&gt;</code> tags for the list item text. You can create
-multi-paragraph list items by indenting the paragraphs by 4 spaces
-or 1 tab:</p>
-<pre>
-<code>* A list item.
-
- With multiple paragraphs.
-
-* Another item in the list.
-</code>
-</pre>
-<p>Output:</p>
-<pre>
-<code>&lt;ul&gt;
-&lt;li&gt;&lt;p&gt;A list item.&lt;/p&gt;
-&lt;p&gt;With multiple paragraphs.&lt;/p&gt;&lt;/li&gt;
-&lt;li&gt;&lt;p&gt;Another item in the list.&lt;/p&gt;&lt;/li&gt;
-&lt;/ul&gt;
-</code>
-</pre>
-<h3>Links</h3>
-<p>Markdown supports two styles for creating links: <em>inline</em>
-and <em>reference</em>. With both styles, you use square brackets
-to delimit the text you want to turn into a link.</p>
-<p>Inline-style links use parentheses immediately after the link
-text. For example:</p>
-<pre>
-<code>This is an [example link](http://example.com/).
-</code>
-</pre>
-<p>Output:</p>
-<pre>
-<code>&lt;p&gt;This is an &lt;a href="http://example.com/"&gt;
-example link&lt;/a&gt;.&lt;/p&gt;
-</code>
-</pre>
-<p>Optionally, you may include a title attribute in the
-parentheses:</p>
-<pre>
-<code>This is an [example link](http://example.com/ "With a Title").
-</code>
-</pre>
-<p>Output:</p>
-<pre>
-<code>&lt;p&gt;This is an &lt;a href="http://example.com/" title="With a Title"&gt;
-example link&lt;/a&gt;.&lt;/p&gt;
-</code>
-</pre>
-<p>Reference-style links allow you to refer to your links by names,
-which you define elsewhere in your document:</p>
-<pre>
-<code>I get 10 times more traffic from [Google][1] than from
-[Yahoo][2] or [MSN][3].
-
-[1]: http://google.com/ "Google"
-[2]: http://search.yahoo.com/ "Yahoo Search"
-[3]: http://search.msn.com/ "MSN Search"
-</code>
-</pre>
-<p>Output:</p>
-<pre>
-<code>&lt;p&gt;I get 10 times more traffic from &lt;a href="http://google.com/"
-title="Google"&gt;Google&lt;/a&gt; than from &lt;a href="http://search.yahoo.com/"
-title="Yahoo Search"&gt;Yahoo&lt;/a&gt; or &lt;a href="http://search.msn.com/"
-title="MSN Search"&gt;MSN&lt;/a&gt;.&lt;/p&gt;
-</code>
-</pre>
-<p>The title attribute is optional. Link names may contain letters,
-numbers and spaces, but are <em>not</em> case sensitive:</p>
-<pre>
-<code>I start my morning with a cup of coffee and
-[The New York Times][NY Times].
-
-[ny times]: http://www.nytimes.com/
-</code>
-</pre>
-<p>Output:</p>
-<pre>
-<code>&lt;p&gt;I start my morning with a cup of coffee and
-&lt;a href="http://www.nytimes.com/"&gt;The New York Times&lt;/a&gt;.&lt;/p&gt;
-</code>
-</pre>
-<h3>Images</h3>
-<p>Image syntax is very much like link syntax.</p>
-<p>Inline (titles are optional):</p>
-<pre>
-<code>![alt text](/path/to/img.jpg "Title")
-</code>
-</pre>
-<p>Reference-style:</p>
-<pre>
-<code>![alt text][id]
-
-[id]: /path/to/img.jpg "Title"
-</code>
-</pre>
-<p>Both of the above examples produce the same output:</p>
-<pre>
-<code>&lt;img src="/path/to/img.jpg" alt="alt text" title="Title" /&gt;
-</code>
-</pre>
-<h3>Code</h3>
-<p>In a regular paragraph, you can create code span by wrapping
-text in backtick quotes. Any ampersands (<code>&amp;</code>) and
-angle brackets (<code>&lt;</code> or <code>&gt;</code>) will
-automatically be translated into HTML entities. This makes it easy
-to use Markdown to write about HTML example code:</p>
-<pre>
-<code>I strongly recommend against using any `&lt;blink&gt;` tags.
-
-I wish SmartyPants used named entities like `&amp;mdash;`
-instead of decimal-encoded entites like `&amp;#8212;`.
-</code>
-</pre>
-<p>Output:</p>
-<pre>
-<code>&lt;p&gt;I strongly recommend against using any
-&lt;code&gt;&amp;lt;blink&amp;gt;&lt;/code&gt; tags.&lt;/p&gt;
-
-&lt;p&gt;I wish SmartyPants used named entities like
-&lt;code&gt;&amp;amp;mdash;&lt;/code&gt; instead of decimal-encoded
-entites like &lt;code&gt;&amp;amp;#8212;&lt;/code&gt;.&lt;/p&gt;
-</code>
-</pre>
-<p>To specify an entire block of pre-formatted code, indent every
-line of the block by 4 spaces or 1 tab. Just like with code spans,
-<code>&amp;</code>, <code>&lt;</code>, and <code>&gt;</code>
-characters will be escaped automatically.</p>
-<p>Markdown:</p>
-<pre>
-<code>If you want your page to validate under XHTML 1.0 Strict,
-you've got to put paragraph tags in your blockquotes:
-
- &lt;blockquote&gt;
- &lt;p&gt;For example.&lt;/p&gt;
- &lt;/blockquote&gt;
-</code>
-</pre>
-<p>Output:</p>
-<pre>
-<code>&lt;p&gt;If you want your page to validate under XHTML 1.0 Strict,
-you've got to put paragraph tags in your blockquotes:&lt;/p&gt;
-
-&lt;pre&gt;&lt;code&gt;&amp;lt;blockquote&amp;gt;
- &amp;lt;p&amp;gt;For example.&amp;lt;/p&amp;gt;
-&amp;lt;/blockquote&amp;gt;
-&lt;/code&gt;&lt;/pre&gt;
-</code>
-</pre>
-</body>
-</html>
diff --git a/MarkdownTest/Tests_2004/Markdown Documentation - Syntax.text-out b/MarkdownTest/Tests_2004/Markdown Documentation - Syntax.text-out
deleted file mode 100644
index ecf2e70..0000000
--- a/MarkdownTest/Tests_2004/Markdown Documentation - Syntax.text-out
+++ /dev/null
@@ -1,957 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<html>
-<head>
-<meta name="generator" content=
-"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
-<title></title>
-</head>
-<body>
-<h1>Markdown: Syntax</h1>
-<ul id="ProjectSubmenu">
-<li><a href="/projects/markdown/" title=
-"Markdown Project Page">Main</a></li>
-<li><a href="/projects/markdown/basics" title=
-"Markdown Basics">Basics</a></li>
-<li><a class="selected" title=
-"Markdown Syntax Documentation">Syntax</a></li>
-<li><a href="/projects/markdown/license" title=
-"Pricing and License Information">License</a></li>
-<li><a href="/projects/markdown/dingus" title=
-"Online Markdown Web Form">Dingus</a></li>
-</ul>
-<ul>
-<li><a href="#overview">Overview</a>
-<ul>
-<li><a href="#philosophy">Philosophy</a></li>
-<li><a href="#html">Inline HTML</a></li>
-<li><a href="#autoescape">Automatic Escaping for Special
-Characters</a></li>
-</ul>
-</li>
-<li><a href="#block">Block Elements</a>
-<ul>
-<li><a href="#p">Paragraphs and Line Breaks</a></li>
-<li><a href="#header">Headers</a></li>
-<li><a href="#blockquote">Blockquotes</a></li>
-<li><a href="#list">Lists</a></li>
-<li><a href="#precode">Code Blocks</a></li>
-<li><a href="#hr">Horizontal Rules</a></li>
-</ul>
-</li>
-<li><a href="#span">Span Elements</a>
-<ul>
-<li><a href="#link">Links</a></li>
-<li><a href="#em">Emphasis</a></li>
-<li><a href="#code">Code</a></li>
-<li><a href="#img">Images</a></li>
-</ul>
-</li>
-<li><a href="#misc">Miscellaneous</a>
-<ul>
-<li><a href="#backslash">Backslash Escapes</a></li>
-<li><a href="#autolink">Automatic Links</a></li>
-</ul>
-</li>
-</ul>
-<p><strong>Note:</strong> This document is itself written using
-Markdown; you can <a href="/projects/markdown/syntax.text">see the
-source for it by adding '.text' to the URL</a>.</p>
-<hr>
-<h2 id="overview">Overview</h2>
-<h3 id="philosophy">Philosophy</h3>
-<p>Markdown is intended to be as easy-to-read and easy-to-write as
-is feasible.</p>
-<p>Readability, however, is emphasized above all else. A
-Markdown-formatted document should be publishable as-is, as plain
-text, without looking like it's been marked up with tags or
-formatting instructions. While Markdown's syntax has been
-influenced by several existing text-to-HTML filters -- including
-<a href=
-"http://docutils.sourceforge.net/mirror/setext.html">Setext</a>,
-<a href="http://www.aaronsw.com/2002/atx/">atx</a>, <a href=
-"http://textism.com/tools/textile/">Textile</a>, <a href=
-"http://docutils.sourceforge.net/rst.html">reStructuredText</a>,
-<a href=
-"http://www.triptico.com/software/grutatxt.html">Grutatext</a>, and
-<a href="http://ettext.taint.org/doc/">EtText</a> -- the single
-biggest source of inspiration for Markdown's syntax is the format
-of plain text email.</p>
-<p>To this end, Markdown's syntax is comprised entirely of
-punctuation characters, which punctuation characters have been
-carefully chosen so as to look like what they mean. E.g., asterisks
-around a word actually look like *emphasis*. Markdown lists look
-like, well, lists. Even blockquotes look like quoted passages of
-text, assuming you've ever used email.</p>
-<h3 id="html">Inline HTML</h3>
-<p>Markdown's syntax is intended for one purpose: to be used as a
-format for <em>writing</em> for the web.</p>
-<p>Markdown is not a replacement for HTML, or even close to it. Its
-syntax is very small, corresponding only to a very small subset of
-HTML tags. The idea is <em>not</em> to create a syntax that makes
-it easier to insert HTML tags. In my opinion, HTML tags are already
-easy to insert. The idea for Markdown is to make it easy to read,
-write, and edit prose. HTML is a <em>publishing</em> format;
-Markdown is a <em>writing</em> format. Thus, Markdown's formatting
-syntax only addresses issues that can be conveyed in plain
-text.</p>
-<p>For any markup that is not covered by Markdown's syntax, you
-simply use HTML itself. There's no need to preface it or delimit it
-to indicate that you're switching from Markdown to HTML; you just
-use the tags.</p>
-<p>The only restrictions are that block-level HTML elements -- e.g.
-<code>&lt;div&gt;</code>, <code>&lt;table&gt;</code>,
-<code>&lt;pre&gt;</code>, <code>&lt;p&gt;</code>, etc. -- must be
-separated from surrounding content by blank lines, and the start
-and end tags of the block should not be indented with tabs or
-spaces. Markdown is smart enough not to add extra (unwanted)
-<code>&lt;p&gt;</code> tags around HTML block-level tags.</p>
-<p>For example, to add an HTML table to a Markdown article:</p>
-<pre>
-<code>This is a regular paragraph.
-
-&lt;table&gt;
- &lt;tr&gt;
- &lt;td&gt;Foo&lt;/td&gt;
- &lt;/tr&gt;
-&lt;/table&gt;
-
-This is another regular paragraph.
-</code>
-</pre>
-<p>Note that Markdown formatting syntax is not processed within
-block-level HTML tags. E.g., you can't use Markdown-style
-<code>*emphasis*</code> inside an HTML block.</p>
-<p>Span-level HTML tags -- e.g. <code>&lt;span&gt;</code>,
-<code>&lt;cite&gt;</code>, or <code>&lt;del&gt;</code> -- can be
-used anywhere in a Markdown paragraph, list item, or header. If you
-want, you can even use HTML tags instead of Markdown formatting;
-e.g. if you'd prefer to use HTML <code>&lt;a&gt;</code> or
-<code>&lt;img&gt;</code> tags instead of Markdown's link or image
-syntax, go right ahead.</p>
-<p>Unlike block-level HTML tags, Markdown syntax <em>is</em>
-processed within span-level tags.</p>
-<h3 id="autoescape">Automatic Escaping for Special Characters</h3>
-<p>In HTML, there are two characters that demand special treatment:
-<code>&lt;</code> and <code>&amp;</code>. Left angle brackets are
-used to start tags; ampersands are used to denote HTML entities. If
-you want to use them as literal characters, you must escape them as
-entities, e.g. <code>&amp;lt;</code>, and
-<code>&amp;amp;</code>.</p>
-<p>Ampersands in particular are bedeviling for web writers. If you
-want to write about 'AT&amp;T', you need to write
-'<code>AT&amp;amp;T</code>'. You even need to escape ampersands
-within URLs. Thus, if you want to link to:</p>
-<pre>
-<code>http://images.google.com/images?num=30&amp;q=larry+bird
-</code>
-</pre>
-<p>you need to encode the URL as:</p>
-<pre>
-<code>http://images.google.com/images?num=30&amp;amp;q=larry+bird
-</code>
-</pre>
-<p>in your anchor tag <code>href</code> attribute. Needless to say,
-this is easy to forget, and is probably the single most common
-source of HTML validation errors in otherwise well-marked-up web
-sites.</p>
-<p>Markdown allows you to use these characters naturally, taking
-care of all the necessary escaping for you. If you use an ampersand
-as part of an HTML entity, it remains unchanged; otherwise it will
-be translated into <code>&amp;amp;</code>.</p>
-<p>So, if you want to include a copyright symbol in your article,
-you can write:</p>
-<pre>
-<code>&amp;copy;
-</code>
-</pre>
-<p>and Markdown will leave it alone. But if you write:</p>
-<pre>
-<code>AT&amp;T
-</code>
-</pre>
-<p>Markdown will translate it to:</p>
-<pre>
-<code>AT&amp;amp;T
-</code>
-</pre>
-<p>Similarly, because Markdown supports <a href="#html">inline
-HTML</a>, if you use angle brackets as delimiters for HTML tags,
-Markdown will treat them as such. But if you write:</p>
-<pre>
-<code>4 &lt; 5
-</code>
-</pre>
-<p>Markdown will translate it to:</p>
-<pre>
-<code>4 &amp;lt; 5
-</code>
-</pre>
-<p>However, inside Markdown code spans and blocks, angle brackets
-and ampersands are <em>always</em> encoded automatically. This
-makes it easy to use Markdown to write about HTML code. (As opposed
-to raw HTML, which is a terrible format for writing about HTML
-syntax, because every single <code>&lt;</code> and
-<code>&amp;</code> in your example code needs to be escaped.)</p>
-<hr>
-<h2 id="block">Block Elements</h2>
-<h3 id="p">Paragraphs and Line Breaks</h3>
-<p>A paragraph is simply one or more consecutive lines of text,
-separated by one or more blank lines. (A blank line is any line
-that looks like a blank line -- a line containing nothing but
-spaces or tabs is considered blank.) Normal paragraphs should not
-be intended with spaces or tabs.</p>
-<p>The implication of the "one or more consecutive lines of text"
-rule is that Markdown supports "hard-wrapped" text paragraphs. This
-differs significantly from most other text-to-HTML formatters
-(including Movable Type's "Convert Line Breaks" option) which
-translate every line break character in a paragraph into a
-<code>&lt;br /&gt;</code> tag.</p>
-<p>When you <em>do</em> want to insert a <code>&lt;br /&gt;</code>
-break tag using Markdown, you end a line with two or more spaces,
-then type return.</p>
-<p>Yes, this takes a tad more effort to create a <code>&lt;br
-/&gt;</code>, but a simplistic "every line break is a <code>&lt;br
-/&gt;</code>" rule wouldn't work for Markdown. Markdown's
-email-style <a href="#blockquote">blockquoting</a> and
-multi-paragraph <a href="#list">list items</a> work best -- and
-look better -- when you format them with hard breaks.</p>
-<h3 id="header">Headers</h3>
-<p>Markdown supports two styles of headers, <a href=
-"http://docutils.sourceforge.net/mirror/setext.html">Setext</a> and
-<a href="http://www.aaronsw.com/2002/atx/">atx</a>.</p>
-<p>Setext-style headers are "underlined" using equal signs (for
-first-level headers) and dashes (for second-level headers). For
-example:</p>
-<pre>
-<code>This is an H1
-=============
-
-This is an H2
--------------
-</code>
-</pre>
-<p>Any number of underlining <code>=</code>'s or <code>-</code>'s
-will work.</p>
-<p>Atx-style headers use 1-6 hash characters at the start of the
-line, corresponding to header levels 1-6. For example:</p>
-<pre>
-<code># This is an H1
-
-## This is an H2
-
-###### This is an H6
-</code>
-</pre>
-<p>Optionally, you may "close" atx-style headers. This is purely
-cosmetic -- you can use this if you think it looks better. The
-closing hashes don't even need to match the number of hashes used
-to open the header. (The number of opening hashes determines the
-header level.) :</p>
-<pre>
-<code># This is an H1 #
-
-## This is an H2 ##
-
-### This is an H3 ######
-</code>
-</pre>
-<h3 id="blockquote">Blockquotes</h3>
-<p>Markdown uses email-style <code>&gt;</code> characters for
-blockquoting. If you're familiar with quoting passages of text in
-an email message, then you know how to create a blockquote in
-Markdown. It looks best if you hard wrap the text and put a
-<code>&gt;</code> before every line:</p>
-<pre>
-<code>&gt; This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
-&gt; consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
-&gt; Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
-&gt;
-&gt; Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
-&gt; id sem consectetuer libero luctus adipiscing.
-</code>
-</pre>
-<p>Markdown allows you to be lazy and only put the
-<code>&gt;</code> before the first line of a hard-wrapped
-paragraph:</p>
-<pre>
-<code>&gt; This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
-consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
-Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
-
-&gt; Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
-id sem consectetuer libero luctus adipiscing.
-</code>
-</pre>
-<p>Blockquotes can be nested (i.e. a blockquote-in-a-blockquote) by
-adding additional levels of <code>&gt;</code>:</p>
-<pre>
-<code>&gt; This is the first level of quoting.
-&gt;
-&gt; &gt; This is nested blockquote.
-&gt;
-&gt; Back to the first level.
-</code>
-</pre>
-<p>Blockquotes can contain other Markdown elements, including
-headers, lists, and code blocks:</p>
-<pre>
-<code>&gt; ## This is a header.
-&gt;
-&gt; 1. This is the first list item.
-&gt; 2. This is the second list item.
-&gt;
-&gt; Here's some example code:
-&gt;
-&gt; return shell_exec("echo $input | $markdown_script");
-</code>
-</pre>
-<p>Any decent text editor should make email-style quoting easy. For
-example, with BBEdit, you can make a selection and choose Increase
-Quote Level from the Text menu.</p>
-<h3 id="list">Lists</h3>
-<p>Markdown supports ordered (numbered) and unordered (bulleted)
-lists.</p>
-<p>Unordered lists use asterisks, pluses, and hyphens --
-interchangably -- as list markers:</p>
-<pre>
-<code>* Red
-* Green
-* Blue
-</code>
-</pre>
-<p>is equivalent to:</p>
-<pre>
-<code>+ Red
-+ Green
-+ Blue
-</code>
-</pre>
-<p>and:</p>
-<pre>
-<code>- Red
-- Green
-- Blue
-</code>
-</pre>
-<p>Ordered lists use numbers followed by periods:</p>
-<pre>
-<code>1. Bird
-2. McHale
-3. Parish
-</code>
-</pre>
-<p>It's important to note that the actual numbers you use to mark
-the list have no effect on the HTML output Markdown produces. The
-HTML Markdown produces from the above list is:</p>
-<pre>
-<code>&lt;ol&gt;
-&lt;li&gt;Bird&lt;/li&gt;
-&lt;li&gt;McHale&lt;/li&gt;
-&lt;li&gt;Parish&lt;/li&gt;
-&lt;/ol&gt;
-</code>
-</pre>
-<p>If you instead wrote the list in Markdown like this:</p>
-<pre>
-<code>1. Bird
-1. McHale
-1. Parish
-</code>
-</pre>
-<p>or even:</p>
-<pre>
-<code>3. Bird
-1. McHale
-8. Parish
-</code>
-</pre>
-<p>you'd get the exact same HTML output. The point is, if you want
-to, you can use ordinal numbers in your ordered Markdown lists, so
-that the numbers in your source match the numbers in your published
-HTML. But if you want to be lazy, you don't have to.</p>
-<p>If you do use lazy list numbering, however, you should still
-start the list with the number 1. At some point in the future,
-Markdown may support starting ordered lists at an arbitrary
-number.</p>
-<p>List markers typically start at the left margin, but may be
-indented by up to three spaces. List markers must be followed by
-one or more spaces or a tab.</p>
-<p>To make lists look nice, you can wrap items with hanging
-indents:</p>
-<pre>
-<code>* Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
- Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,
- viverra nec, fringilla in, laoreet vitae, risus.
-* Donec sit amet nisl. Aliquam semper ipsum sit amet velit.
- Suspendisse id sem consectetuer libero luctus adipiscing.
-</code>
-</pre>
-<p>But if you want to be lazy, you don't have to:</p>
-<pre>
-<code>* Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
-Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,
-viverra nec, fringilla in, laoreet vitae, risus.
-* Donec sit amet nisl. Aliquam semper ipsum sit amet velit.
-Suspendisse id sem consectetuer libero luctus adipiscing.
-</code>
-</pre>
-<p>If list items are separated by blank lines, Markdown will wrap
-the items in <code>&lt;p&gt;</code> tags in the HTML output. For
-example, this input:</p>
-<pre>
-<code>* Bird
-* Magic
-</code>
-</pre>
-<p>will turn into:</p>
-<pre>
-<code>&lt;ul&gt;
-&lt;li&gt;Bird&lt;/li&gt;
-&lt;li&gt;Magic&lt;/li&gt;
-&lt;/ul&gt;
-</code>
-</pre>
-<p>But this:</p>
-<pre>
-<code>* Bird
-
-* Magic
-</code>
-</pre>
-<p>will turn into:</p>
-<pre>
-<code>&lt;ul&gt;
-&lt;li&gt;&lt;p&gt;Bird&lt;/p&gt;&lt;/li&gt;
-&lt;li&gt;&lt;p&gt;Magic&lt;/p&gt;&lt;/li&gt;
-&lt;/ul&gt;
-</code>
-</pre>
-<p>List items may consist of multiple paragraphs. Each subsequent
-paragraph in a list item must be intended by either 4 spaces or one
-tab:</p>
-<pre>
-<code>1. This is a list item with two paragraphs. Lorem ipsum dolor
- sit amet, consectetuer adipiscing elit. Aliquam hendrerit
- mi posuere lectus.
-
- Vestibulum enim wisi, viverra nec, fringilla in, laoreet
- vitae, risus. Donec sit amet nisl. Aliquam semper ipsum
- sit amet velit.
-
-2. Suspendisse id sem consectetuer libero luctus adipiscing.
-</code>
-</pre>
-<p>It looks nice if you indent every line of the subsequent
-paragraphs, but here again, Markdown will allow you to be lazy:</p>
-<pre>
-<code>* This is a list item with two paragraphs.
-
- This is the second paragraph in the list item. You're
-only required to indent the first line. Lorem ipsum dolor
-sit amet, consectetuer adipiscing elit.
-
-* Another item in the same list.
-</code>
-</pre>
-<p>To put a blockquote within a list item, the blockquote's
-<code>&gt;</code> delimiters need to be indented:</p>
-<pre>
-<code>* A list item with a blockquote:
-
- &gt; This is a blockquote
- &gt; inside a list item.
-</code>
-</pre>
-<p>To put a code block within a list item, the code block needs to
-be indented <em>twice</em> -- 8 spaces or two tabs:</p>
-<pre>
-<code>* A list item with a code block:
-
- &lt;code goes here&gt;
-</code>
-</pre>
-<p>It's worth noting that it's possible to trigger an ordered list
-by accident, by writing something like this:</p>
-<pre>
-<code>1986. What a great season.
-</code>
-</pre>
-<p>In other words, a <em>number-period-space</em> sequence at the
-beginning of a line. To avoid this, you can backslash-escape the
-period:</p>
-<pre>
-<code>1986\. What a great season.
-</code>
-</pre>
-<h3 id="precode">Code Blocks</h3>
-<p>Pre-formatted code blocks are used for writing about programming
-or markup source code. Rather than forming normal paragraphs, the
-lines of a code block are interpreted literally. Markdown wraps a
-code block in both <code>&lt;pre&gt;</code> and
-<code>&lt;code&gt;</code> tags.</p>
-<p>To produce a code block in Markdown, simply indent every line of
-the block by at least 4 spaces or 1 tab. For example, given this
-input:</p>
-<pre>
-<code>This is a normal paragraph:
-
- This is a code block.
-</code>
-</pre>
-<p>Markdown will generate:</p>
-<pre>
-<code>&lt;p&gt;This is a normal paragraph:&lt;/p&gt;
-
-&lt;pre&gt;&lt;code&gt;This is a code block.
-&lt;/code&gt;&lt;/pre&gt;
-</code>
-</pre>
-<p>One level of indentation -- 4 spaces or 1 tab -- is removed from
-each line of the code block. For example, this:</p>
-<pre>
-<code>Here is an example of AppleScript:
-
- tell application "Foo"
- beep
- end tell
-</code>
-</pre>
-<p>will turn into:</p>
-<pre>
-<code>&lt;p&gt;Here is an example of AppleScript:&lt;/p&gt;
-
-&lt;pre&gt;&lt;code&gt;tell application "Foo"
- beep
-end tell
-&lt;/code&gt;&lt;/pre&gt;
-</code>
-</pre>
-<p>A code block continues until it reaches a line that is not
-indented (or the end of the article).</p>
-<p>Within a code block, ampersands (<code>&amp;</code>) and angle
-brackets (<code>&lt;</code> and <code>&gt;</code>) are
-automatically converted into HTML entities. This makes it very easy
-to include example HTML source code using Markdown -- just paste it
-and indent it, and Markdown will handle the hassle of encoding the
-ampersands and angle brackets. For example, this:</p>
-<pre>
-<code> &lt;div class="footer"&gt;
- &amp;copy; 2004 Foo Corporation
- &lt;/div&gt;
-</code>
-</pre>
-<p>will turn into:</p>
-<pre>
-<code>&lt;pre&gt;&lt;code&gt;&amp;lt;div class="footer"&amp;gt;
- &amp;amp;copy; 2004 Foo Corporation
-&amp;lt;/div&amp;gt;
-&lt;/code&gt;&lt;/pre&gt;
-</code>
-</pre>
-<p>Regular Markdown syntax is not processed within code blocks.
-E.g., asterisks are just literal asterisks within a code block.
-This means it's also easy to use Markdown to write about Markdown's
-own syntax.</p>
-<h3 id="hr">Horizontal Rules</h3>
-<p>You can produce a horizontal rule tag (<code>&lt;hr
-/&gt;</code>) by placing three or more hyphens, asterisks, or
-underscores on a line by themselves. If you wish, you may use
-spaces between the hyphens or asterisks. Each of the following
-lines will produce a horizontal rule:</p>
-<pre>
-<code>* * *
-
-***
-
-*****
-
-- - -
-
----------------------------------------
-
-_ _ _
-</code>
-</pre>
-<hr>
-<h2 id="span">Span Elements</h2>
-<h3 id="link">Links</h3>
-<p>Markdown supports two style of links: <em>inline</em> and
-<em>reference</em>.</p>
-<p>In both styles, the link text is delimited by [square
-brackets].</p>
-<p>To create an inline link, use a set of regular parentheses
-immediately after the link text's closing square bracket. Inside
-the parentheses, put the URL where you want the link to point,
-along with an <em>optional</em> title for the link, surrounded in
-quotes. For example:</p>
-<pre>
-<code>This is [an example](http://example.com/ "Title") inline link.
-
-[This link](http://example.net/) has no title attribute.
-</code>
-</pre>
-<p>Will produce:</p>
-<pre>
-<code>&lt;p&gt;This is &lt;a href="http://example.com/" title="Title"&gt;
-an example&lt;/a&gt; inline link.&lt;/p&gt;
-
-&lt;p&gt;&lt;a href="http://example.net/"&gt;This link&lt;/a&gt; has no
-title attribute.&lt;/p&gt;
-</code>
-</pre>
-<p>If you're referring to a local resource on the same server, you
-can use relative paths:</p>
-<pre>
-<code>See my [About](/about/) page for details.
-</code>
-</pre>
-<p>Reference-style links use a second set of square brackets,
-inside which you place a label of your choosing to identify the
-link:</p>
-<pre>
-<code>This is [an example][id] reference-style link.
-</code>
-</pre>
-<p>You can optionally use a space to separate the sets of
-brackets:</p>
-<pre>
-<code>This is [an example] [id] reference-style link.
-</code>
-</pre>
-<p>Then, anywhere in the document, you define your link label like
-this, on a line by itself:</p>
-<pre>
-<code>[id]: http://example.com/ "Optional Title Here"
-</code>
-</pre>
-<p>That is:</p>
-<ul>
-<li>Square brackets containing the link identifier (optionally
-indented from the left margin using up to three spaces);</li>
-<li>followed by a colon;</li>
-<li>followed by one or more spaces (or tabs);</li>
-<li>followed by the URL for the link;</li>
-<li>optionally followed by a title attribute for the link, enclosed
-in double or single quotes.</li>
-</ul>
-<p>The link URL may, optionally, be surrounded by angle
-brackets:</p>
-<pre>
-<code>[id]: &lt;http://example.com/&gt; "Optional Title Here"
-</code>
-</pre>
-<p>You can put the title attribute on the next line and use extra
-spaces or tabs for padding, which tends to look better with longer
-URLs:</p>
-<pre>
-<code>[id]: http://example.com/longish/path/to/resource/here
- "Optional Title Here"
-</code>
-</pre>
-<p>Link definitions are only used for creating links during
-Markdown processing, and are stripped from your document in the
-HTML output.</p>
-<p>Link definition names may constist of letters, numbers, spaces,
-and punctuation -- but they are <em>not</em> case sensitive. E.g.
-these two links:</p>
-<pre>
-<code>[link text][a]
-[link text][A]
-</code>
-</pre>
-<p>are equivalent.</p>
-<p>The <em>implicit link name</em> shortcut allows you to omit the
-name of the link, in which case the link text itself is used as the
-name. Just use an empty set of square brackets -- e.g., to link the
-word "Google" to the google.com web site, you could simply
-write:</p>
-<pre>
-<code>[Google][]
-</code>
-</pre>
-<p>And then define the link:</p>
-<pre>
-<code>[Google]: http://google.com/
-</code>
-</pre>
-<p>Because link names may contain spaces, this shortcut even works
-for multiple words in the link text:</p>
-<pre>
-<code>Visit [Daring Fireball][] for more information.
-</code>
-</pre>
-<p>And then define the link:</p>
-<pre>
-<code>[Daring Fireball]: http://daringfireball.net/
-</code>
-</pre>
-<p>Link definitions can be placed anywhere in your Markdown
-document. I tend to put them immediately after each paragraph in
-which they're used, but if you want, you can put them all at the
-end of your document, sort of like footnotes.</p>
-<p>Here's an example of reference links in action:</p>
-<pre>
-<code>I get 10 times more traffic from [Google] [1] than from
-[Yahoo] [2] or [MSN] [3].
-
- [1]: http://google.com/ "Google"
- [2]: http://search.yahoo.com/ "Yahoo Search"
- [3]: http://search.msn.com/ "MSN Search"
-</code>
-</pre>
-<p>Using the implicit link name shortcut, you could instead
-write:</p>
-<pre>
-<code>I get 10 times more traffic from [Google][] than from
-[Yahoo][] or [MSN][].
-
- [google]: http://google.com/ "Google"
- [yahoo]: http://search.yahoo.com/ "Yahoo Search"
- [msn]: http://search.msn.com/ "MSN Search"
-</code>
-</pre>
-<p>Both of the above examples will produce the following HTML
-output:</p>
-<pre>
-<code>&lt;p&gt;I get 10 times more traffic from &lt;a href="http://google.com/"
-title="Google"&gt;Google&lt;/a&gt; than from
-&lt;a href="http://search.yahoo.com/" title="Yahoo Search"&gt;Yahoo&lt;/a&gt;
-or &lt;a href="http://search.msn.com/" title="MSN Search"&gt;MSN&lt;/a&gt;.&lt;/p&gt;
-</code>
-</pre>
-<p>For comparison, here is the same paragraph written using
-Markdown's inline link style:</p>
-<pre>
-<code>I get 10 times more traffic from [Google](http://google.com/ "Google")
-than from [Yahoo](http://search.yahoo.com/ "Yahoo Search") or
-[MSN](http://search.msn.com/ "MSN Search").
-</code>
-</pre>
-<p>The point of reference-style links is not that they're easier to
-write. The point is that with reference-style links, your document
-source is vastly more readable. Compare the above examples: using
-reference-style links, the paragraph itself is only 81 characters
-long; with inline-style links, it's 176 characters; and as raw
-HTML, it's 234 characters. In the raw HTML, there's more markup
-than there is text.</p>
-<p>With Markdown's reference-style links, a source document much
-more closely resembles the final output, as rendered in a browser.
-By allowing you to move the markup-related metadata out of the
-paragraph, you can add links without interrupting the narrative
-flow of your prose.</p>
-<h3 id="em">Emphasis</h3>
-<p>Markdown treats asterisks (<code>*</code>) and underscores
-(<code>_</code>) as indicators of emphasis. Text wrapped with one
-<code>*</code> or <code>_</code> will be wrapped with an HTML
-<code>&lt;em&gt;</code> tag; double <code>*</code>'s or
-<code>_</code>'s will be wrapped with an HTML
-<code>&lt;strong&gt;</code> tag. E.g., this input:</p>
-<pre>
-<code>*single asterisks*
-
-_single underscores_
-
-**double asterisks**
-
-__double underscores__
-</code>
-</pre>
-<p>will produce:</p>
-<pre>
-<code>&lt;em&gt;single asterisks&lt;/em&gt;
-
-&lt;em&gt;single underscores&lt;/em&gt;
-
-&lt;strong&gt;double asterisks&lt;/strong&gt;
-
-&lt;strong&gt;double underscores&lt;/strong&gt;
-</code>
-</pre>
-<p>You can use whichever style you prefer; the lone restriction is
-that the same character must be used to open and close an emphasis
-span.</p>
-<p>Emphasis can be used in the middle of a word:</p>
-<pre>
-<code>un*fucking*believable
-</code>
-</pre>
-<p>But if you surround an <code>*</code> or <code>_</code> with
-spaces, it'll be treated as a literal asterisk or underscore.</p>
-<p>To produce a literal asterisk or underscore at a position where
-it would otherwise be used as an emphasis delimiter, you can
-backslash escape it:</p>
-<pre>
-<code>\*this text is surrounded by literal asterisks\*
-</code>
-</pre>
-<h3 id="code">Code</h3>
-<p>To indicate a span of code, wrap it with backtick quotes
-(<code>`</code>). Unlike a pre-formatted code block, a code span
-indicates code within a normal paragraph. For example:</p>
-<pre>
-<code>Use the `printf()` function.
-</code>
-</pre>
-<p>will produce:</p>
-<pre>
-<code>&lt;p&gt;Use the &lt;code&gt;printf()&lt;/code&gt; function.&lt;/p&gt;
-</code>
-</pre>
-<p>To include a literal backtick character within a code span, you
-can use multiple backticks as the opening and closing
-delimiters:</p>
-<pre>
-<code>``There is a literal backtick (`) here.``
-</code>
-</pre>
-<p>which will produce this:</p>
-<pre>
-<code>&lt;p&gt;&lt;code&gt;There is a literal backtick (`) here.&lt;/code&gt;&lt;/p&gt;
-</code>
-</pre>
-<p>The backtick delimiters surrounding a code span may include
-spaces -- one after the opening, one before the closing. This
-allows you to place literal backtick characters at the beginning or
-end of a code span:</p>
-<pre>
-<code>A single backtick in a code span: `` ` ``
-
-A backtick-delimited string in a code span: `` `foo` ``
-</code>
-</pre>
-<p>will produce:</p>
-<pre>
-<code>&lt;p&gt;A single backtick in a code span: &lt;code&gt;`&lt;/code&gt;&lt;/p&gt;
-
-&lt;p&gt;A backtick-delimited string in a code span: &lt;code&gt;`foo`&lt;/code&gt;&lt;/p&gt;
-</code>
-</pre>
-<p>With a code span, ampersands and angle brackets are encoded as
-HTML entities automatically, which makes it easy to include example
-HTML tags. Markdown will turn this:</p>
-<pre>
-<code>Please don't use any `&lt;blink&gt;` tags.
-</code>
-</pre>
-<p>into:</p>
-<pre>
-<code>&lt;p&gt;Please don't use any &lt;code&gt;&amp;lt;blink&amp;gt;&lt;/code&gt; tags.&lt;/p&gt;
-</code>
-</pre>
-<p>You can write this:</p>
-<pre>
-<code>`&amp;#8212;` is the decimal-encoded equivalent of `&amp;mdash;`.
-</code>
-</pre>
-<p>to produce:</p>
-<pre>
-<code>&lt;p&gt;&lt;code&gt;&amp;amp;#8212;&lt;/code&gt; is the decimal-encoded
-equivalent of &lt;code&gt;&amp;amp;mdash;&lt;/code&gt;.&lt;/p&gt;
-</code>
-</pre>
-<h3 id="img">Images</h3>
-<p>Admittedly, it's fairly difficult to devise a "natural" syntax
-for placing images into a plain text document format.</p>
-<p>Markdown uses an image syntax that is intended to resemble the
-syntax for links, allowing for two styles: <em>inline</em> and
-<em>reference</em>.</p>
-<p>Inline image syntax looks like this:</p>
-<pre>
-<code>![Alt text](/path/to/img.jpg)
-
-![Alt text](/path/to/img.jpg "Optional title")
-</code>
-</pre>
-<p>That is:</p>
-<ul>
-<li>An exclamation mark: <code>!</code>;</li>
-<li>followed by a set of square brackets, containing the
-<code>alt</code> attribute text for the image;</li>
-<li>followed by a set of parentheses, containing the URL or path to
-the image, and an optional <code>title</code> attribute enclosed in
-double or single quotes.</li>
-</ul>
-<p>Reference-style image syntax looks like this:</p>
-<pre>
-<code>![Alt text][id]
-</code>
-</pre>
-<p>Where "id" is the name of a defined image reference. Image
-references are defined using syntax identical to link
-references:</p>
-<pre>
-<code>[id]: url/to/image "Optional title attribute"
-</code>
-</pre>
-<p>As of this writing, Markdown has no syntax for specifying the
-dimensions of an image; if this is important to you, you can simply
-use regular HTML <code>&lt;img&gt;</code> tags.</p>
-<hr>
-<h2 id="misc">Miscellaneous</h2>
-<h3 id="autolink">Automatic Links</h3>
-<p>Markdown supports a shortcut style for creating "automatic"
-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:</p>
-<pre>
-<code>&lt;http://example.com/&gt;
-</code>
-</pre>
-<p>Markdown will turn this into:</p>
-<pre>
-<code>&lt;a href="http://example.com/"&gt;http://example.com/&lt;/a&gt;
-</code>
-</pre>
-<p>Automatic links for email addresses work similarly, except that
-Markdown will also perform a bit of randomized decimal and hex
-entity-encoding to help obscure your address from
-address-harvesting spambots. For example, Markdown will turn
-this:</p>
-<pre>
-<code>&lt;address@example.com&gt;
-</code>
-</pre>
-<p>into something like this:</p>
-<pre>
-<code>&lt;a href="&amp;#x6D;&amp;#x61;i&amp;#x6C;&amp;#x74;&amp;#x6F;:&amp;#x61;&amp;#x64;&amp;#x64;&amp;#x72;&amp;#x65;
-&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;
-&amp;#109;"&gt;&amp;#x61;&amp;#x64;&amp;#x64;&amp;#x72;&amp;#x65;&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;&amp;#109;&lt;/a&gt;
-</code>
-</pre>
-<p>which will render in a browser as a clickable link to
-"address@example.com".</p>
-<p>(This sort of entity-encoding trick will indeed fool many, if
-not most, address-harvesting bots, but it definitely won't fool all
-of them. It's better than nothing, but an address published in this
-way will probably eventually start receiving spam.)</p>
-<h3 id="backslash">Backslash Escapes</h3>
-<p>Markdown allows you to use backslash escapes to generate literal
-characters which would otherwise have special meaning in Markdown's
-formatting syntax. For example, if you wanted to surround a word
-with literal asterisks (instead of an HTML <code>&lt;em&gt;</code>
-tag), you can backslashes before the asterisks, like this:</p>
-<pre>
-<code>\*literal asterisks\*
-</code>
-</pre>
-<p>Markdown provides backslash escapes for the following
-characters:</p>
-<pre>
-<code>\ backslash
-` backtick
-* asterisk
-_ underscore
-{} curly braces
-[] square brackets
-() parentheses
-# hash mark
-+ plus sign
-- minus sign (hyphen)
-. dot
-! exclamation mark
-</code>
-</pre>
-</body>
-</html>
diff --git a/MarkdownTest/Tests_2004/Markdown Documentation - Syntax.text-res b/MarkdownTest/Tests_2004/Markdown Documentation - Syntax.text-res
deleted file mode 100644
index ecf2e70..0000000
--- a/MarkdownTest/Tests_2004/Markdown Documentation - Syntax.text-res
+++ /dev/null
@@ -1,957 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<html>
-<head>
-<meta name="generator" content=
-"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
-<title></title>
-</head>
-<body>
-<h1>Markdown: Syntax</h1>
-<ul id="ProjectSubmenu">
-<li><a href="/projects/markdown/" title=
-"Markdown Project Page">Main</a></li>
-<li><a href="/projects/markdown/basics" title=
-"Markdown Basics">Basics</a></li>
-<li><a class="selected" title=
-"Markdown Syntax Documentation">Syntax</a></li>
-<li><a href="/projects/markdown/license" title=
-"Pricing and License Information">License</a></li>
-<li><a href="/projects/markdown/dingus" title=
-"Online Markdown Web Form">Dingus</a></li>
-</ul>
-<ul>
-<li><a href="#overview">Overview</a>
-<ul>
-<li><a href="#philosophy">Philosophy</a></li>
-<li><a href="#html">Inline HTML</a></li>
-<li><a href="#autoescape">Automatic Escaping for Special
-Characters</a></li>
-</ul>
-</li>
-<li><a href="#block">Block Elements</a>
-<ul>
-<li><a href="#p">Paragraphs and Line Breaks</a></li>
-<li><a href="#header">Headers</a></li>
-<li><a href="#blockquote">Blockquotes</a></li>
-<li><a href="#list">Lists</a></li>
-<li><a href="#precode">Code Blocks</a></li>
-<li><a href="#hr">Horizontal Rules</a></li>
-</ul>
-</li>
-<li><a href="#span">Span Elements</a>
-<ul>
-<li><a href="#link">Links</a></li>
-<li><a href="#em">Emphasis</a></li>
-<li><a href="#code">Code</a></li>
-<li><a href="#img">Images</a></li>
-</ul>
-</li>
-<li><a href="#misc">Miscellaneous</a>
-<ul>
-<li><a href="#backslash">Backslash Escapes</a></li>
-<li><a href="#autolink">Automatic Links</a></li>
-</ul>
-</li>
-</ul>
-<p><strong>Note:</strong> This document is itself written using
-Markdown; you can <a href="/projects/markdown/syntax.text">see the
-source for it by adding '.text' to the URL</a>.</p>
-<hr>
-<h2 id="overview">Overview</h2>
-<h3 id="philosophy">Philosophy</h3>
-<p>Markdown is intended to be as easy-to-read and easy-to-write as
-is feasible.</p>
-<p>Readability, however, is emphasized above all else. A
-Markdown-formatted document should be publishable as-is, as plain
-text, without looking like it's been marked up with tags or
-formatting instructions. While Markdown's syntax has been
-influenced by several existing text-to-HTML filters -- including
-<a href=
-"http://docutils.sourceforge.net/mirror/setext.html">Setext</a>,
-<a href="http://www.aaronsw.com/2002/atx/">atx</a>, <a href=
-"http://textism.com/tools/textile/">Textile</a>, <a href=
-"http://docutils.sourceforge.net/rst.html">reStructuredText</a>,
-<a href=
-"http://www.triptico.com/software/grutatxt.html">Grutatext</a>, and
-<a href="http://ettext.taint.org/doc/">EtText</a> -- the single
-biggest source of inspiration for Markdown's syntax is the format
-of plain text email.</p>
-<p>To this end, Markdown's syntax is comprised entirely of
-punctuation characters, which punctuation characters have been
-carefully chosen so as to look like what they mean. E.g., asterisks
-around a word actually look like *emphasis*. Markdown lists look
-like, well, lists. Even blockquotes look like quoted passages of
-text, assuming you've ever used email.</p>
-<h3 id="html">Inline HTML</h3>
-<p>Markdown's syntax is intended for one purpose: to be used as a
-format for <em>writing</em> for the web.</p>
-<p>Markdown is not a replacement for HTML, or even close to it. Its
-syntax is very small, corresponding only to a very small subset of
-HTML tags. The idea is <em>not</em> to create a syntax that makes
-it easier to insert HTML tags. In my opinion, HTML tags are already
-easy to insert. The idea for Markdown is to make it easy to read,
-write, and edit prose. HTML is a <em>publishing</em> format;
-Markdown is a <em>writing</em> format. Thus, Markdown's formatting
-syntax only addresses issues that can be conveyed in plain
-text.</p>
-<p>For any markup that is not covered by Markdown's syntax, you
-simply use HTML itself. There's no need to preface it or delimit it
-to indicate that you're switching from Markdown to HTML; you just
-use the tags.</p>
-<p>The only restrictions are that block-level HTML elements -- e.g.
-<code>&lt;div&gt;</code>, <code>&lt;table&gt;</code>,
-<code>&lt;pre&gt;</code>, <code>&lt;p&gt;</code>, etc. -- must be
-separated from surrounding content by blank lines, and the start
-and end tags of the block should not be indented with tabs or
-spaces. Markdown is smart enough not to add extra (unwanted)
-<code>&lt;p&gt;</code> tags around HTML block-level tags.</p>
-<p>For example, to add an HTML table to a Markdown article:</p>
-<pre>
-<code>This is a regular paragraph.
-
-&lt;table&gt;
- &lt;tr&gt;
- &lt;td&gt;Foo&lt;/td&gt;
- &lt;/tr&gt;
-&lt;/table&gt;
-
-This is another regular paragraph.
-</code>
-</pre>
-<p>Note that Markdown formatting syntax is not processed within
-block-level HTML tags. E.g., you can't use Markdown-style
-<code>*emphasis*</code> inside an HTML block.</p>
-<p>Span-level HTML tags -- e.g. <code>&lt;span&gt;</code>,
-<code>&lt;cite&gt;</code>, or <code>&lt;del&gt;</code> -- can be
-used anywhere in a Markdown paragraph, list item, or header. If you
-want, you can even use HTML tags instead of Markdown formatting;
-e.g. if you'd prefer to use HTML <code>&lt;a&gt;</code> or
-<code>&lt;img&gt;</code> tags instead of Markdown's link or image
-syntax, go right ahead.</p>
-<p>Unlike block-level HTML tags, Markdown syntax <em>is</em>
-processed within span-level tags.</p>
-<h3 id="autoescape">Automatic Escaping for Special Characters</h3>
-<p>In HTML, there are two characters that demand special treatment:
-<code>&lt;</code> and <code>&amp;</code>. Left angle brackets are
-used to start tags; ampersands are used to denote HTML entities. If
-you want to use them as literal characters, you must escape them as
-entities, e.g. <code>&amp;lt;</code>, and
-<code>&amp;amp;</code>.</p>
-<p>Ampersands in particular are bedeviling for web writers. If you
-want to write about 'AT&amp;T', you need to write
-'<code>AT&amp;amp;T</code>'. You even need to escape ampersands
-within URLs. Thus, if you want to link to:</p>
-<pre>
-<code>http://images.google.com/images?num=30&amp;q=larry+bird
-</code>
-</pre>
-<p>you need to encode the URL as:</p>
-<pre>
-<code>http://images.google.com/images?num=30&amp;amp;q=larry+bird
-</code>
-</pre>
-<p>in your anchor tag <code>href</code> attribute. Needless to say,
-this is easy to forget, and is probably the single most common
-source of HTML validation errors in otherwise well-marked-up web
-sites.</p>
-<p>Markdown allows you to use these characters naturally, taking
-care of all the necessary escaping for you. If you use an ampersand
-as part of an HTML entity, it remains unchanged; otherwise it will
-be translated into <code>&amp;amp;</code>.</p>
-<p>So, if you want to include a copyright symbol in your article,
-you can write:</p>
-<pre>
-<code>&amp;copy;
-</code>
-</pre>
-<p>and Markdown will leave it alone. But if you write:</p>
-<pre>
-<code>AT&amp;T
-</code>
-</pre>
-<p>Markdown will translate it to:</p>
-<pre>
-<code>AT&amp;amp;T
-</code>
-</pre>
-<p>Similarly, because Markdown supports <a href="#html">inline
-HTML</a>, if you use angle brackets as delimiters for HTML tags,
-Markdown will treat them as such. But if you write:</p>
-<pre>
-<code>4 &lt; 5
-</code>
-</pre>
-<p>Markdown will translate it to:</p>
-<pre>
-<code>4 &amp;lt; 5
-</code>
-</pre>
-<p>However, inside Markdown code spans and blocks, angle brackets
-and ampersands are <em>always</em> encoded automatically. This
-makes it easy to use Markdown to write about HTML code. (As opposed
-to raw HTML, which is a terrible format for writing about HTML
-syntax, because every single <code>&lt;</code> and
-<code>&amp;</code> in your example code needs to be escaped.)</p>
-<hr>
-<h2 id="block">Block Elements</h2>
-<h3 id="p">Paragraphs and Line Breaks</h3>
-<p>A paragraph is simply one or more consecutive lines of text,
-separated by one or more blank lines. (A blank line is any line
-that looks like a blank line -- a line containing nothing but
-spaces or tabs is considered blank.) Normal paragraphs should not
-be intended with spaces or tabs.</p>
-<p>The implication of the "one or more consecutive lines of text"
-rule is that Markdown supports "hard-wrapped" text paragraphs. This
-differs significantly from most other text-to-HTML formatters
-(including Movable Type's "Convert Line Breaks" option) which
-translate every line break character in a paragraph into a
-<code>&lt;br /&gt;</code> tag.</p>
-<p>When you <em>do</em> want to insert a <code>&lt;br /&gt;</code>
-break tag using Markdown, you end a line with two or more spaces,
-then type return.</p>
-<p>Yes, this takes a tad more effort to create a <code>&lt;br
-/&gt;</code>, but a simplistic "every line break is a <code>&lt;br
-/&gt;</code>" rule wouldn't work for Markdown. Markdown's
-email-style <a href="#blockquote">blockquoting</a> and
-multi-paragraph <a href="#list">list items</a> work best -- and
-look better -- when you format them with hard breaks.</p>
-<h3 id="header">Headers</h3>
-<p>Markdown supports two styles of headers, <a href=
-"http://docutils.sourceforge.net/mirror/setext.html">Setext</a> and
-<a href="http://www.aaronsw.com/2002/atx/">atx</a>.</p>
-<p>Setext-style headers are "underlined" using equal signs (for
-first-level headers) and dashes (for second-level headers). For
-example:</p>
-<pre>
-<code>This is an H1
-=============
-
-This is an H2
--------------
-</code>
-</pre>
-<p>Any number of underlining <code>=</code>'s or <code>-</code>'s
-will work.</p>
-<p>Atx-style headers use 1-6 hash characters at the start of the
-line, corresponding to header levels 1-6. For example:</p>
-<pre>
-<code># This is an H1
-
-## This is an H2
-
-###### This is an H6
-</code>
-</pre>
-<p>Optionally, you may "close" atx-style headers. This is purely
-cosmetic -- you can use this if you think it looks better. The
-closing hashes don't even need to match the number of hashes used
-to open the header. (The number of opening hashes determines the
-header level.) :</p>
-<pre>
-<code># This is an H1 #
-
-## This is an H2 ##
-
-### This is an H3 ######
-</code>
-</pre>
-<h3 id="blockquote">Blockquotes</h3>
-<p>Markdown uses email-style <code>&gt;</code> characters for
-blockquoting. If you're familiar with quoting passages of text in
-an email message, then you know how to create a blockquote in
-Markdown. It looks best if you hard wrap the text and put a
-<code>&gt;</code> before every line:</p>
-<pre>
-<code>&gt; This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
-&gt; consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
-&gt; Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
-&gt;
-&gt; Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
-&gt; id sem consectetuer libero luctus adipiscing.
-</code>
-</pre>
-<p>Markdown allows you to be lazy and only put the
-<code>&gt;</code> before the first line of a hard-wrapped
-paragraph:</p>
-<pre>
-<code>&gt; This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
-consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
-Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
-
-&gt; Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
-id sem consectetuer libero luctus adipiscing.
-</code>
-</pre>
-<p>Blockquotes can be nested (i.e. a blockquote-in-a-blockquote) by
-adding additional levels of <code>&gt;</code>:</p>
-<pre>
-<code>&gt; This is the first level of quoting.
-&gt;
-&gt; &gt; This is nested blockquote.
-&gt;
-&gt; Back to the first level.
-</code>
-</pre>
-<p>Blockquotes can contain other Markdown elements, including
-headers, lists, and code blocks:</p>
-<pre>
-<code>&gt; ## This is a header.
-&gt;
-&gt; 1. This is the first list item.
-&gt; 2. This is the second list item.
-&gt;
-&gt; Here's some example code:
-&gt;
-&gt; return shell_exec("echo $input | $markdown_script");
-</code>
-</pre>
-<p>Any decent text editor should make email-style quoting easy. For
-example, with BBEdit, you can make a selection and choose Increase
-Quote Level from the Text menu.</p>
-<h3 id="list">Lists</h3>
-<p>Markdown supports ordered (numbered) and unordered (bulleted)
-lists.</p>
-<p>Unordered lists use asterisks, pluses, and hyphens --
-interchangably -- as list markers:</p>
-<pre>
-<code>* Red
-* Green
-* Blue
-</code>
-</pre>
-<p>is equivalent to:</p>
-<pre>
-<code>+ Red
-+ Green
-+ Blue
-</code>
-</pre>
-<p>and:</p>
-<pre>
-<code>- Red
-- Green
-- Blue
-</code>
-</pre>
-<p>Ordered lists use numbers followed by periods:</p>
-<pre>
-<code>1. Bird
-2. McHale
-3. Parish
-</code>
-</pre>
-<p>It's important to note that the actual numbers you use to mark
-the list have no effect on the HTML output Markdown produces. The
-HTML Markdown produces from the above list is:</p>
-<pre>
-<code>&lt;ol&gt;
-&lt;li&gt;Bird&lt;/li&gt;
-&lt;li&gt;McHale&lt;/li&gt;
-&lt;li&gt;Parish&lt;/li&gt;
-&lt;/ol&gt;
-</code>
-</pre>
-<p>If you instead wrote the list in Markdown like this:</p>
-<pre>
-<code>1. Bird
-1. McHale
-1. Parish
-</code>
-</pre>
-<p>or even:</p>
-<pre>
-<code>3. Bird
-1. McHale
-8. Parish
-</code>
-</pre>
-<p>you'd get the exact same HTML output. The point is, if you want
-to, you can use ordinal numbers in your ordered Markdown lists, so
-that the numbers in your source match the numbers in your published
-HTML. But if you want to be lazy, you don't have to.</p>
-<p>If you do use lazy list numbering, however, you should still
-start the list with the number 1. At some point in the future,
-Markdown may support starting ordered lists at an arbitrary
-number.</p>
-<p>List markers typically start at the left margin, but may be
-indented by up to three spaces. List markers must be followed by
-one or more spaces or a tab.</p>
-<p>To make lists look nice, you can wrap items with hanging
-indents:</p>
-<pre>
-<code>* Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
- Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,
- viverra nec, fringilla in, laoreet vitae, risus.
-* Donec sit amet nisl. Aliquam semper ipsum sit amet velit.
- Suspendisse id sem consectetuer libero luctus adipiscing.
-</code>
-</pre>
-<p>But if you want to be lazy, you don't have to:</p>
-<pre>
-<code>* Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
-Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,
-viverra nec, fringilla in, laoreet vitae, risus.
-* Donec sit amet nisl. Aliquam semper ipsum sit amet velit.
-Suspendisse id sem consectetuer libero luctus adipiscing.
-</code>
-</pre>
-<p>If list items are separated by blank lines, Markdown will wrap
-the items in <code>&lt;p&gt;</code> tags in the HTML output. For
-example, this input:</p>
-<pre>
-<code>* Bird
-* Magic
-</code>
-</pre>
-<p>will turn into:</p>
-<pre>
-<code>&lt;ul&gt;
-&lt;li&gt;Bird&lt;/li&gt;
-&lt;li&gt;Magic&lt;/li&gt;
-&lt;/ul&gt;
-</code>
-</pre>
-<p>But this:</p>
-<pre>
-<code>* Bird
-
-* Magic
-</code>
-</pre>
-<p>will turn into:</p>
-<pre>
-<code>&lt;ul&gt;
-&lt;li&gt;&lt;p&gt;Bird&lt;/p&gt;&lt;/li&gt;
-&lt;li&gt;&lt;p&gt;Magic&lt;/p&gt;&lt;/li&gt;
-&lt;/ul&gt;
-</code>
-</pre>
-<p>List items may consist of multiple paragraphs. Each subsequent
-paragraph in a list item must be intended by either 4 spaces or one
-tab:</p>
-<pre>
-<code>1. This is a list item with two paragraphs. Lorem ipsum dolor
- sit amet, consectetuer adipiscing elit. Aliquam hendrerit
- mi posuere lectus.
-
- Vestibulum enim wisi, viverra nec, fringilla in, laoreet
- vitae, risus. Donec sit amet nisl. Aliquam semper ipsum
- sit amet velit.
-
-2. Suspendisse id sem consectetuer libero luctus adipiscing.
-</code>
-</pre>
-<p>It looks nice if you indent every line of the subsequent
-paragraphs, but here again, Markdown will allow you to be lazy:</p>
-<pre>
-<code>* This is a list item with two paragraphs.
-
- This is the second paragraph in the list item. You're
-only required to indent the first line. Lorem ipsum dolor
-sit amet, consectetuer adipiscing elit.
-
-* Another item in the same list.
-</code>
-</pre>
-<p>To put a blockquote within a list item, the blockquote's
-<code>&gt;</code> delimiters need to be indented:</p>
-<pre>
-<code>* A list item with a blockquote:
-
- &gt; This is a blockquote
- &gt; inside a list item.
-</code>
-</pre>
-<p>To put a code block within a list item, the code block needs to
-be indented <em>twice</em> -- 8 spaces or two tabs:</p>
-<pre>
-<code>* A list item with a code block:
-
- &lt;code goes here&gt;
-</code>
-</pre>
-<p>It's worth noting that it's possible to trigger an ordered list
-by accident, by writing something like this:</p>
-<pre>
-<code>1986. What a great season.
-</code>
-</pre>
-<p>In other words, a <em>number-period-space</em> sequence at the
-beginning of a line. To avoid this, you can backslash-escape the
-period:</p>
-<pre>
-<code>1986\. What a great season.
-</code>
-</pre>
-<h3 id="precode">Code Blocks</h3>
-<p>Pre-formatted code blocks are used for writing about programming
-or markup source code. Rather than forming normal paragraphs, the
-lines of a code block are interpreted literally. Markdown wraps a
-code block in both <code>&lt;pre&gt;</code> and
-<code>&lt;code&gt;</code> tags.</p>
-<p>To produce a code block in Markdown, simply indent every line of
-the block by at least 4 spaces or 1 tab. For example, given this
-input:</p>
-<pre>
-<code>This is a normal paragraph:
-
- This is a code block.
-</code>
-</pre>
-<p>Markdown will generate:</p>
-<pre>
-<code>&lt;p&gt;This is a normal paragraph:&lt;/p&gt;
-
-&lt;pre&gt;&lt;code&gt;This is a code block.
-&lt;/code&gt;&lt;/pre&gt;
-</code>
-</pre>
-<p>One level of indentation -- 4 spaces or 1 tab -- is removed from
-each line of the code block. For example, this:</p>
-<pre>
-<code>Here is an example of AppleScript:
-
- tell application "Foo"
- beep
- end tell
-</code>
-</pre>
-<p>will turn into:</p>
-<pre>
-<code>&lt;p&gt;Here is an example of AppleScript:&lt;/p&gt;
-
-&lt;pre&gt;&lt;code&gt;tell application "Foo"
- beep
-end tell
-&lt;/code&gt;&lt;/pre&gt;
-</code>
-</pre>
-<p>A code block continues until it reaches a line that is not
-indented (or the end of the article).</p>
-<p>Within a code block, ampersands (<code>&amp;</code>) and angle
-brackets (<code>&lt;</code> and <code>&gt;</code>) are
-automatically converted into HTML entities. This makes it very easy
-to include example HTML source code using Markdown -- just paste it
-and indent it, and Markdown will handle the hassle of encoding the
-ampersands and angle brackets. For example, this:</p>
-<pre>
-<code> &lt;div class="footer"&gt;
- &amp;copy; 2004 Foo Corporation
- &lt;/div&gt;
-</code>
-</pre>
-<p>will turn into:</p>
-<pre>
-<code>&lt;pre&gt;&lt;code&gt;&amp;lt;div class="footer"&amp;gt;
- &amp;amp;copy; 2004 Foo Corporation
-&amp;lt;/div&amp;gt;
-&lt;/code&gt;&lt;/pre&gt;
-</code>
-</pre>
-<p>Regular Markdown syntax is not processed within code blocks.
-E.g., asterisks are just literal asterisks within a code block.
-This means it's also easy to use Markdown to write about Markdown's
-own syntax.</p>
-<h3 id="hr">Horizontal Rules</h3>
-<p>You can produce a horizontal rule tag (<code>&lt;hr
-/&gt;</code>) by placing three or more hyphens, asterisks, or
-underscores on a line by themselves. If you wish, you may use
-spaces between the hyphens or asterisks. Each of the following
-lines will produce a horizontal rule:</p>
-<pre>
-<code>* * *
-
-***
-
-*****
-
-- - -
-
----------------------------------------
-
-_ _ _
-</code>
-</pre>
-<hr>
-<h2 id="span">Span Elements</h2>
-<h3 id="link">Links</h3>
-<p>Markdown supports two style of links: <em>inline</em> and
-<em>reference</em>.</p>
-<p>In both styles, the link text is delimited by [square
-brackets].</p>
-<p>To create an inline link, use a set of regular parentheses
-immediately after the link text's closing square bracket. Inside
-the parentheses, put the URL where you want the link to point,
-along with an <em>optional</em> title for the link, surrounded in
-quotes. For example:</p>
-<pre>
-<code>This is [an example](http://example.com/ "Title") inline link.
-
-[This link](http://example.net/) has no title attribute.
-</code>
-</pre>
-<p>Will produce:</p>
-<pre>
-<code>&lt;p&gt;This is &lt;a href="http://example.com/" title="Title"&gt;
-an example&lt;/a&gt; inline link.&lt;/p&gt;
-
-&lt;p&gt;&lt;a href="http://example.net/"&gt;This link&lt;/a&gt; has no
-title attribute.&lt;/p&gt;
-</code>
-</pre>
-<p>If you're referring to a local resource on the same server, you
-can use relative paths:</p>
-<pre>
-<code>See my [About](/about/) page for details.
-</code>
-</pre>
-<p>Reference-style links use a second set of square brackets,
-inside which you place a label of your choosing to identify the
-link:</p>
-<pre>
-<code>This is [an example][id] reference-style link.
-</code>
-</pre>
-<p>You can optionally use a space to separate the sets of
-brackets:</p>
-<pre>
-<code>This is [an example] [id] reference-style link.
-</code>
-</pre>
-<p>Then, anywhere in the document, you define your link label like
-this, on a line by itself:</p>
-<pre>
-<code>[id]: http://example.com/ "Optional Title Here"
-</code>
-</pre>
-<p>That is:</p>
-<ul>
-<li>Square brackets containing the link identifier (optionally
-indented from the left margin using up to three spaces);</li>
-<li>followed by a colon;</li>
-<li>followed by one or more spaces (or tabs);</li>
-<li>followed by the URL for the link;</li>
-<li>optionally followed by a title attribute for the link, enclosed
-in double or single quotes.</li>
-</ul>
-<p>The link URL may, optionally, be surrounded by angle
-brackets:</p>
-<pre>
-<code>[id]: &lt;http://example.com/&gt; "Optional Title Here"
-</code>
-</pre>
-<p>You can put the title attribute on the next line and use extra
-spaces or tabs for padding, which tends to look better with longer
-URLs:</p>
-<pre>
-<code>[id]: http://example.com/longish/path/to/resource/here
- "Optional Title Here"
-</code>
-</pre>
-<p>Link definitions are only used for creating links during
-Markdown processing, and are stripped from your document in the
-HTML output.</p>
-<p>Link definition names may constist of letters, numbers, spaces,
-and punctuation -- but they are <em>not</em> case sensitive. E.g.
-these two links:</p>
-<pre>
-<code>[link text][a]
-[link text][A]
-</code>
-</pre>
-<p>are equivalent.</p>
-<p>The <em>implicit link name</em> shortcut allows you to omit the
-name of the link, in which case the link text itself is used as the
-name. Just use an empty set of square brackets -- e.g., to link the
-word "Google" to the google.com web site, you could simply
-write:</p>
-<pre>
-<code>[Google][]
-</code>
-</pre>
-<p>And then define the link:</p>
-<pre>
-<code>[Google]: http://google.com/
-</code>
-</pre>
-<p>Because link names may contain spaces, this shortcut even works
-for multiple words in the link text:</p>
-<pre>
-<code>Visit [Daring Fireball][] for more information.
-</code>
-</pre>
-<p>And then define the link:</p>
-<pre>
-<code>[Daring Fireball]: http://daringfireball.net/
-</code>
-</pre>
-<p>Link definitions can be placed anywhere in your Markdown
-document. I tend to put them immediately after each paragraph in
-which they're used, but if you want, you can put them all at the
-end of your document, sort of like footnotes.</p>
-<p>Here's an example of reference links in action:</p>
-<pre>
-<code>I get 10 times more traffic from [Google] [1] than from
-[Yahoo] [2] or [MSN] [3].
-
- [1]: http://google.com/ "Google"
- [2]: http://search.yahoo.com/ "Yahoo Search"
- [3]: http://search.msn.com/ "MSN Search"
-</code>
-</pre>
-<p>Using the implicit link name shortcut, you could instead
-write:</p>
-<pre>
-<code>I get 10 times more traffic from [Google][] than from
-[Yahoo][] or [MSN][].
-
- [google]: http://google.com/ "Google"
- [yahoo]: http://search.yahoo.com/ "Yahoo Search"
- [msn]: http://search.msn.com/ "MSN Search"
-</code>
-</pre>
-<p>Both of the above examples will produce the following HTML
-output:</p>
-<pre>
-<code>&lt;p&gt;I get 10 times more traffic from &lt;a href="http://google.com/"
-title="Google"&gt;Google&lt;/a&gt; than from
-&lt;a href="http://search.yahoo.com/" title="Yahoo Search"&gt;Yahoo&lt;/a&gt;
-or &lt;a href="http://search.msn.com/" title="MSN Search"&gt;MSN&lt;/a&gt;.&lt;/p&gt;
-</code>
-</pre>
-<p>For comparison, here is the same paragraph written using
-Markdown's inline link style:</p>
-<pre>
-<code>I get 10 times more traffic from [Google](http://google.com/ "Google")
-than from [Yahoo](http://search.yahoo.com/ "Yahoo Search") or
-[MSN](http://search.msn.com/ "MSN Search").
-</code>
-</pre>
-<p>The point of reference-style links is not that they're easier to
-write. The point is that with reference-style links, your document
-source is vastly more readable. Compare the above examples: using
-reference-style links, the paragraph itself is only 81 characters
-long; with inline-style links, it's 176 characters; and as raw
-HTML, it's 234 characters. In the raw HTML, there's more markup
-than there is text.</p>
-<p>With Markdown's reference-style links, a source document much
-more closely resembles the final output, as rendered in a browser.
-By allowing you to move the markup-related metadata out of the
-paragraph, you can add links without interrupting the narrative
-flow of your prose.</p>
-<h3 id="em">Emphasis</h3>
-<p>Markdown treats asterisks (<code>*</code>) and underscores
-(<code>_</code>) as indicators of emphasis. Text wrapped with one
-<code>*</code> or <code>_</code> will be wrapped with an HTML
-<code>&lt;em&gt;</code> tag; double <code>*</code>'s or
-<code>_</code>'s will be wrapped with an HTML
-<code>&lt;strong&gt;</code> tag. E.g., this input:</p>
-<pre>
-<code>*single asterisks*
-
-_single underscores_
-
-**double asterisks**
-
-__double underscores__
-</code>
-</pre>
-<p>will produce:</p>
-<pre>
-<code>&lt;em&gt;single asterisks&lt;/em&gt;
-
-&lt;em&gt;single underscores&lt;/em&gt;
-
-&lt;strong&gt;double asterisks&lt;/strong&gt;
-
-&lt;strong&gt;double underscores&lt;/strong&gt;
-</code>
-</pre>
-<p>You can use whichever style you prefer; the lone restriction is
-that the same character must be used to open and close an emphasis
-span.</p>
-<p>Emphasis can be used in the middle of a word:</p>
-<pre>
-<code>un*fucking*believable
-</code>
-</pre>
-<p>But if you surround an <code>*</code> or <code>_</code> with
-spaces, it'll be treated as a literal asterisk or underscore.</p>
-<p>To produce a literal asterisk or underscore at a position where
-it would otherwise be used as an emphasis delimiter, you can
-backslash escape it:</p>
-<pre>
-<code>\*this text is surrounded by literal asterisks\*
-</code>
-</pre>
-<h3 id="code">Code</h3>
-<p>To indicate a span of code, wrap it with backtick quotes
-(<code>`</code>). Unlike a pre-formatted code block, a code span
-indicates code within a normal paragraph. For example:</p>
-<pre>
-<code>Use the `printf()` function.
-</code>
-</pre>
-<p>will produce:</p>
-<pre>
-<code>&lt;p&gt;Use the &lt;code&gt;printf()&lt;/code&gt; function.&lt;/p&gt;
-</code>
-</pre>
-<p>To include a literal backtick character within a code span, you
-can use multiple backticks as the opening and closing
-delimiters:</p>
-<pre>
-<code>``There is a literal backtick (`) here.``
-</code>
-</pre>
-<p>which will produce this:</p>
-<pre>
-<code>&lt;p&gt;&lt;code&gt;There is a literal backtick (`) here.&lt;/code&gt;&lt;/p&gt;
-</code>
-</pre>
-<p>The backtick delimiters surrounding a code span may include
-spaces -- one after the opening, one before the closing. This
-allows you to place literal backtick characters at the beginning or
-end of a code span:</p>
-<pre>
-<code>A single backtick in a code span: `` ` ``
-
-A backtick-delimited string in a code span: `` `foo` ``
-</code>
-</pre>
-<p>will produce:</p>
-<pre>
-<code>&lt;p&gt;A single backtick in a code span: &lt;code&gt;`&lt;/code&gt;&lt;/p&gt;
-
-&lt;p&gt;A backtick-delimited string in a code span: &lt;code&gt;`foo`&lt;/code&gt;&lt;/p&gt;
-</code>
-</pre>
-<p>With a code span, ampersands and angle brackets are encoded as
-HTML entities automatically, which makes it easy to include example
-HTML tags. Markdown will turn this:</p>
-<pre>
-<code>Please don't use any `&lt;blink&gt;` tags.
-</code>
-</pre>
-<p>into:</p>
-<pre>
-<code>&lt;p&gt;Please don't use any &lt;code&gt;&amp;lt;blink&amp;gt;&lt;/code&gt; tags.&lt;/p&gt;
-</code>
-</pre>
-<p>You can write this:</p>
-<pre>
-<code>`&amp;#8212;` is the decimal-encoded equivalent of `&amp;mdash;`.
-</code>
-</pre>
-<p>to produce:</p>
-<pre>
-<code>&lt;p&gt;&lt;code&gt;&amp;amp;#8212;&lt;/code&gt; is the decimal-encoded
-equivalent of &lt;code&gt;&amp;amp;mdash;&lt;/code&gt;.&lt;/p&gt;
-</code>
-</pre>
-<h3 id="img">Images</h3>
-<p>Admittedly, it's fairly difficult to devise a "natural" syntax
-for placing images into a plain text document format.</p>
-<p>Markdown uses an image syntax that is intended to resemble the
-syntax for links, allowing for two styles: <em>inline</em> and
-<em>reference</em>.</p>
-<p>Inline image syntax looks like this:</p>
-<pre>
-<code>![Alt text](/path/to/img.jpg)
-
-![Alt text](/path/to/img.jpg "Optional title")
-</code>
-</pre>
-<p>That is:</p>
-<ul>
-<li>An exclamation mark: <code>!</code>;</li>
-<li>followed by a set of square brackets, containing the
-<code>alt</code> attribute text for the image;</li>
-<li>followed by a set of parentheses, containing the URL or path to
-the image, and an optional <code>title</code> attribute enclosed in
-double or single quotes.</li>
-</ul>
-<p>Reference-style image syntax looks like this:</p>
-<pre>
-<code>![Alt text][id]
-</code>
-</pre>
-<p>Where "id" is the name of a defined image reference. Image
-references are defined using syntax identical to link
-references:</p>
-<pre>
-<code>[id]: url/to/image "Optional title attribute"
-</code>
-</pre>
-<p>As of this writing, Markdown has no syntax for specifying the
-dimensions of an image; if this is important to you, you can simply
-use regular HTML <code>&lt;img&gt;</code> tags.</p>
-<hr>
-<h2 id="misc">Miscellaneous</h2>
-<h3 id="autolink">Automatic Links</h3>
-<p>Markdown supports a shortcut style for creating "automatic"
-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:</p>
-<pre>
-<code>&lt;http://example.com/&gt;
-</code>
-</pre>
-<p>Markdown will turn this into:</p>
-<pre>
-<code>&lt;a href="http://example.com/"&gt;http://example.com/&lt;/a&gt;
-</code>
-</pre>
-<p>Automatic links for email addresses work similarly, except that
-Markdown will also perform a bit of randomized decimal and hex
-entity-encoding to help obscure your address from
-address-harvesting spambots. For example, Markdown will turn
-this:</p>
-<pre>
-<code>&lt;address@example.com&gt;
-</code>
-</pre>
-<p>into something like this:</p>
-<pre>
-<code>&lt;a href="&amp;#x6D;&amp;#x61;i&amp;#x6C;&amp;#x74;&amp;#x6F;:&amp;#x61;&amp;#x64;&amp;#x64;&amp;#x72;&amp;#x65;
-&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;
-&amp;#109;"&gt;&amp;#x61;&amp;#x64;&amp;#x64;&amp;#x72;&amp;#x65;&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;&amp;#109;&lt;/a&gt;
-</code>
-</pre>
-<p>which will render in a browser as a clickable link to
-"address@example.com".</p>
-<p>(This sort of entity-encoding trick will indeed fool many, if
-not most, address-harvesting bots, but it definitely won't fool all
-of them. It's better than nothing, but an address published in this
-way will probably eventually start receiving spam.)</p>
-<h3 id="backslash">Backslash Escapes</h3>
-<p>Markdown allows you to use backslash escapes to generate literal
-characters which would otherwise have special meaning in Markdown's
-formatting syntax. For example, if you wanted to surround a word
-with literal asterisks (instead of an HTML <code>&lt;em&gt;</code>
-tag), you can backslashes before the asterisks, like this:</p>
-<pre>
-<code>\*literal asterisks\*
-</code>
-</pre>
-<p>Markdown provides backslash escapes for the following
-characters:</p>
-<pre>
-<code>\ backslash
-` backtick
-* asterisk
-_ underscore
-{} curly braces
-[] square brackets
-() parentheses
-# hash mark
-+ plus sign
-- minus sign (hyphen)
-. dot
-! exclamation mark
-</code>
-</pre>
-</body>
-</html>
diff --git a/MarkdownTest/Tests_2004/Nested blockquotes.text-out b/MarkdownTest/Tests_2004/Nested blockquotes.text-out
deleted file mode 100644
index 291201e..0000000
--- a/MarkdownTest/Tests_2004/Nested blockquotes.text-out
+++ /dev/null
@@ -1,17 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<html>
-<head>
-<meta name="generator" content=
-"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
-<title></title>
-</head>
-<body>
-<blockquote>
-<p>foo</p>
-<blockquote>
-<p>bar</p>
-</blockquote>
-<p>foo</p>
-</blockquote>
-</body>
-</html>
diff --git a/MarkdownTest/Tests_2004/Nested blockquotes.text-res b/MarkdownTest/Tests_2004/Nested blockquotes.text-res
deleted file mode 100644
index 291201e..0000000
--- a/MarkdownTest/Tests_2004/Nested blockquotes.text-res
+++ /dev/null
@@ -1,17 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<html>
-<head>
-<meta name="generator" content=
-"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
-<title></title>
-</head>
-<body>
-<blockquote>
-<p>foo</p>
-<blockquote>
-<p>bar</p>
-</blockquote>
-<p>foo</p>
-</blockquote>
-</body>
-</html>
diff --git a/MarkdownTest/Tests_2004/Ordered and unordered lists.text-out b/MarkdownTest/Tests_2004/Ordered and unordered lists.text-out
deleted file mode 100644
index 5e19e71..0000000
--- a/MarkdownTest/Tests_2004/Ordered and unordered lists.text-out
+++ /dev/null
@@ -1,159 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<html>
-<head>
-<meta name="generator" content=
-"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
-<title></title>
-</head>
-<body>
-<h2>Unordered</h2>
-<p>Asterisks tight:</p>
-<ul>
-<li>asterisk 1</li>
-<li>asterisk 2</li>
-<li>asterisk 3</li>
-</ul>
-<p>Asterisks loose:</p>
-<ul>
-<li>
-<p>asterisk 1</p>
-</li>
-<li>
-<p>asterisk 2</p>
-</li>
-<li>
-<p>asterisk 3</p>
-</li>
-</ul>
-<hr>
-<p>Pluses tight:</p>
-<ul>
-<li>Plus 1</li>
-<li>Plus 2</li>
-<li>Plus 3</li>
-</ul>
-<p>Pluses loose:</p>
-<ul>
-<li>
-<p>Plus 1</p>
-</li>
-<li>
-<p>Plus 2</p>
-</li>
-<li>
-<p>Plus 3</p>
-</li>
-</ul>
-<hr>
-<p>Minuses tight:</p>
-<ul>
-<li>Minus 1</li>
-<li>Minus 2</li>
-<li>Minus 3</li>
-</ul>
-<p>Minuses loose:</p>
-<ul>
-<li>
-<p>Minus 1</p>
-</li>
-<li>
-<p>Minus 2</p>
-</li>
-<li>
-<p>Minus 3</p>
-</li>
-</ul>
-<h2>Ordered</h2>
-<p>Tight:</p>
-<ol>
-<li>First</li>
-<li>Second</li>
-<li>Third</li>
-</ol>
-<p>and:</p>
-<ol>
-<li>One</li>
-<li>Two</li>
-<li>Three</li>
-</ol>
-<p>Loose using tabs:</p>
-<ol>
-<li>
-<p>First</p>
-</li>
-<li>
-<p>Second</p>
-</li>
-<li>
-<p>Third</p>
-</li>
-</ol>
-<p>and using spaces:</p>
-<ol>
-<li>
-<p>One</p>
-</li>
-<li>
-<p>Two</p>
-</li>
-<li>
-<p>Three</p>
-</li>
-</ol>
-<p>Multiple paragraphs:</p>
-<ol>
-<li>
-<p>Item 1, graf one.</p>
-<p>Item 2. graf two. The quick brown fox jumped over the lazy dog's
-back.</p>
-</li>
-<li>
-<p>Item 2.</p>
-</li>
-<li>
-<p>Item 3.</p>
-</li>
-</ol>
-<h2>Nested</h2>
-<ul>
-<li>Tab
-<ul>
-<li>Tab
-<ul>
-<li>Tab</li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-<p>Here's another:</p>
-<ol>
-<li>First</li>
-<li>Second:
-<ul>
-<li>Fee</li>
-<li>Fie</li>
-<li>Foe</li>
-</ul>
-</li>
-<li>Third</li>
-</ol>
-<p>Same thing but with paragraphs:</p>
-<ol>
-<li>
-<p>First</p>
-</li>
-<li>
-<p>Second:</p>
-<ul>
-<li>Fee</li>
-<li>Fie</li>
-<li>Foe</li>
-</ul>
-</li>
-<li>
-<p>Third</p>
-</li>
-</ol>
-</body>
-</html>
diff --git a/MarkdownTest/Tests_2004/Ordered and unordered lists.text-res b/MarkdownTest/Tests_2004/Ordered and unordered lists.text-res
deleted file mode 100644
index 5e19e71..0000000
--- a/MarkdownTest/Tests_2004/Ordered and unordered lists.text-res
+++ /dev/null
@@ -1,159 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<html>
-<head>
-<meta name="generator" content=
-"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
-<title></title>
-</head>
-<body>
-<h2>Unordered</h2>
-<p>Asterisks tight:</p>
-<ul>
-<li>asterisk 1</li>
-<li>asterisk 2</li>
-<li>asterisk 3</li>
-</ul>
-<p>Asterisks loose:</p>
-<ul>
-<li>
-<p>asterisk 1</p>
-</li>
-<li>
-<p>asterisk 2</p>
-</li>
-<li>
-<p>asterisk 3</p>
-</li>
-</ul>
-<hr>
-<p>Pluses tight:</p>
-<ul>
-<li>Plus 1</li>
-<li>Plus 2</li>
-<li>Plus 3</li>
-</ul>
-<p>Pluses loose:</p>
-<ul>
-<li>
-<p>Plus 1</p>
-</li>
-<li>
-<p>Plus 2</p>
-</li>
-<li>
-<p>Plus 3</p>
-</li>
-</ul>
-<hr>
-<p>Minuses tight:</p>
-<ul>
-<li>Minus 1</li>
-<li>Minus 2</li>
-<li>Minus 3</li>
-</ul>
-<p>Minuses loose:</p>
-<ul>
-<li>
-<p>Minus 1</p>
-</li>
-<li>
-<p>Minus 2</p>
-</li>
-<li>
-<p>Minus 3</p>
-</li>
-</ul>
-<h2>Ordered</h2>
-<p>Tight:</p>
-<ol>
-<li>First</li>
-<li>Second</li>
-<li>Third</li>
-</ol>
-<p>and:</p>
-<ol>
-<li>One</li>
-<li>Two</li>
-<li>Three</li>
-</ol>
-<p>Loose using tabs:</p>
-<ol>
-<li>
-<p>First</p>
-</li>
-<li>
-<p>Second</p>
-</li>
-<li>
-<p>Third</p>
-</li>
-</ol>
-<p>and using spaces:</p>
-<ol>
-<li>
-<p>One</p>
-</li>
-<li>
-<p>Two</p>
-</li>
-<li>
-<p>Three</p>
-</li>
-</ol>
-<p>Multiple paragraphs:</p>
-<ol>
-<li>
-<p>Item 1, graf one.</p>
-<p>Item 2. graf two. The quick brown fox jumped over the lazy dog's
-back.</p>
-</li>
-<li>
-<p>Item 2.</p>
-</li>
-<li>
-<p>Item 3.</p>
-</li>
-</ol>
-<h2>Nested</h2>
-<ul>
-<li>Tab
-<ul>
-<li>Tab
-<ul>
-<li>Tab</li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-<p>Here's another:</p>
-<ol>
-<li>First</li>
-<li>Second:
-<ul>
-<li>Fee</li>
-<li>Fie</li>
-<li>Foe</li>
-</ul>
-</li>
-<li>Third</li>
-</ol>
-<p>Same thing but with paragraphs:</p>
-<ol>
-<li>
-<p>First</p>
-</li>
-<li>
-<p>Second:</p>
-<ul>
-<li>Fee</li>
-<li>Fie</li>
-<li>Foe</li>
-</ul>
-</li>
-<li>
-<p>Third</p>
-</li>
-</ol>
-</body>
-</html>
diff --git a/MarkdownTest/Tests_2004/Strong and em together.text-out b/MarkdownTest/Tests_2004/Strong and em together.text-out
deleted file mode 100644
index b596c19..0000000
--- a/MarkdownTest/Tests_2004/Strong and em together.text-out
+++ /dev/null
@@ -1,14 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<html>
-<head>
-<meta name="generator" content=
-"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
-<title></title>
-</head>
-<body>
-<p><strong><em>This is strong and em.</em></strong></p>
-<p>So is <strong><em>this</em></strong> word.</p>
-<p><strong><em>This is strong and em.</em></strong></p>
-<p>So is <strong><em>this</em></strong> word.</p>
-</body>
-</html>
diff --git a/MarkdownTest/Tests_2004/Strong and em together.text-res b/MarkdownTest/Tests_2004/Strong and em together.text-res
deleted file mode 100644
index b596c19..0000000
--- a/MarkdownTest/Tests_2004/Strong and em together.text-res
+++ /dev/null
@@ -1,14 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<html>
-<head>
-<meta name="generator" content=
-"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
-<title></title>
-</head>
-<body>
-<p><strong><em>This is strong and em.</em></strong></p>
-<p>So is <strong><em>this</em></strong> word.</p>
-<p><strong><em>This is strong and em.</em></strong></p>
-<p>So is <strong><em>this</em></strong> word.</p>
-</body>
-</html>
diff --git a/MarkdownTest/Tests_2004/Tabs.text-out b/MarkdownTest/Tests_2004/Tabs.text-out
deleted file mode 100644
index 0cd92b1..0000000
--- a/MarkdownTest/Tests_2004/Tabs.text-out
+++ /dev/null
@@ -1,37 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<html>
-<head>
-<meta name="generator" content=
-"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
-<title></title>
-</head>
-<body>
-<ul>
-<li>
-<p>this is a list item indented with tabs</p>
-</li>
-<li>
-<p>this is a list item indented with spaces</p>
-</li>
-</ul>
-<p>Code:</p>
-<pre>
-<code>this code block is indented by one tab
-</code>
-</pre>
-<p>And:</p>
-<pre>
-<code> this code block is indented by two tabs
-</code>
-</pre>
-<p>And:</p>
-<pre>
-<code>+ this is an example list item
- indented with tabs
-
-+ this is an example list item
- indented with spaces
-</code>
-</pre>
-</body>
-</html>
diff --git a/MarkdownTest/Tests_2004/Tabs.text-res b/MarkdownTest/Tests_2004/Tabs.text-res
deleted file mode 100644
index 0cd92b1..0000000
--- a/MarkdownTest/Tests_2004/Tabs.text-res
+++ /dev/null
@@ -1,37 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<html>
-<head>
-<meta name="generator" content=
-"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
-<title></title>
-</head>
-<body>
-<ul>
-<li>
-<p>this is a list item indented with tabs</p>
-</li>
-<li>
-<p>this is a list item indented with spaces</p>
-</li>
-</ul>
-<p>Code:</p>
-<pre>
-<code>this code block is indented by one tab
-</code>
-</pre>
-<p>And:</p>
-<pre>
-<code> this code block is indented by two tabs
-</code>
-</pre>
-<p>And:</p>
-<pre>
-<code>+ this is an example list item
- indented with tabs
-
-+ this is an example list item
- indented with spaces
-</code>
-</pre>
-</body>
-</html>
diff --git a/MarkdownTest/Tests_2004/Tidyness.text-out b/MarkdownTest/Tests_2004/Tidyness.text-out
deleted file mode 100644
index ebae4c4..0000000
--- a/MarkdownTest/Tests_2004/Tidyness.text-out
+++ /dev/null
@@ -1,18 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<html>
-<head>
-<meta name="generator" content=
-"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
-<title></title>
-</head>
-<body>
-<blockquote>
-<p>A list within a blockquote:</p>
-<ul>
-<li>asterisk 1</li>
-<li>asterisk 2</li>
-<li>asterisk 3</li>
-</ul>
-</blockquote>
-</body>
-</html>
diff --git a/MarkdownTest/Tests_2004/Tidyness.text-res b/MarkdownTest/Tests_2004/Tidyness.text-res
deleted file mode 100644
index ebae4c4..0000000
--- a/MarkdownTest/Tests_2004/Tidyness.text-res
+++ /dev/null
@@ -1,18 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<html>
-<head>
-<meta name="generator" content=
-"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
-<title></title>
-</head>
-<body>
-<blockquote>
-<p>A list within a blockquote:</p>
-<ul>
-<li>asterisk 1</li>
-<li>asterisk 2</li>
-<li>asterisk 3</li>
-</ul>
-</blockquote>
-</body>
-</html>
diff --git a/MarkdownTest/Tests_2004/Yuri-Attributes.text-out b/MarkdownTest/Tests_2004/Yuri-Attributes.text-out
deleted file mode 100644
index 38fd233..0000000
--- a/MarkdownTest/Tests_2004/Yuri-Attributes.text-out
+++ /dev/null
@@ -1,29 +0,0 @@
-<html>
-<head>
-<meta name="generator" content=
-"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
-<title></title>
-</head>
-<body>
-<h1 id="lorem">Lorem ipsum</h1>
-<p>Dolor sit amet, consectetur adipisicing elit, sed do eiusmod
-tempor incididunt ut labore et dolore magna aliqua.</p>
-<ul>
-<li>
-<p class="first_item">Ut enim ad minim veniam, quis nostrud
-exercitation ullamco laboris nisi ut aliquip ex ea commodo
-consequat.</p>
-</li>
-<li>
-<p>Duis aute irure dolor in reprehenderit in voluptate velit esse
-cillum dolore eu fugiat nulla pariatur2. Excepteur sint occaecat
-cupidatat non proident, sunt in culpa qui officia deserunt mollit
-anim id est laborum.</p>
-</li>
-</ul>
-<p>Duis aute <strong type="term">irure</strong> dolor in
-reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
-pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
-culpa qui officia deserunt mollit anim id est laborum.</p>
-</body>
-</html>
diff --git a/MarkdownTest/Tests_2004/Yuri-Attributes.text-res b/MarkdownTest/Tests_2004/Yuri-Attributes.text-res
deleted file mode 100644
index 38fd233..0000000
--- a/MarkdownTest/Tests_2004/Yuri-Attributes.text-res
+++ /dev/null
@@ -1,29 +0,0 @@
-<html>
-<head>
-<meta name="generator" content=
-"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
-<title></title>
-</head>
-<body>
-<h1 id="lorem">Lorem ipsum</h1>
-<p>Dolor sit amet, consectetur adipisicing elit, sed do eiusmod
-tempor incididunt ut labore et dolore magna aliqua.</p>
-<ul>
-<li>
-<p class="first_item">Ut enim ad minim veniam, quis nostrud
-exercitation ullamco laboris nisi ut aliquip ex ea commodo
-consequat.</p>
-</li>
-<li>
-<p>Duis aute irure dolor in reprehenderit in voluptate velit esse
-cillum dolore eu fugiat nulla pariatur2. Excepteur sint occaecat
-cupidatat non proident, sunt in culpa qui officia deserunt mollit
-anim id est laborum.</p>
-</li>
-</ul>
-<p>Duis aute <strong type="term">irure</strong> dolor in
-reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
-pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
-culpa qui officia deserunt mollit anim id est laborum.</p>
-</body>
-</html>
diff --git a/MarkdownTest/Tests_2004/Yuri-Attributes.text~ b/MarkdownTest/Tests_2004/Yuri-Attributes.text~
deleted file mode 100644
index ba8fecd..0000000
--- a/MarkdownTest/Tests_2004/Yuri-Attributes.text~
+++ /dev/null
@@ -1,24 +0,0 @@
-
-Lorem ipsum {@id=lorem}
-=================================
-
-Dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
-incididunt ut labore et dolore magna aliqua1. Ut enim ad minim veniam,
-quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
-commodo consequat. Duis aute irure dolor in reprehenderit in voluptate
-velit esse cillum dolore eu fugiat nulla pariatur2. Excepteur sint
-occaecat cupidatat non proident, sunt in culpa qui officia deserunt
-mollit anim id est laborum.
-
-
-
- * Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore3 magna aliqua.
-
-Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
-
- 1. Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.%G↩%@
- 2. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt.
-
- Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. %G↩%@
- 3. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. %G↩%@
-
diff --git a/MarkdownTest/Tests_2004/Yuri-Email.text-out b/MarkdownTest/Tests_2004/Yuri-Email.text-out
deleted file mode 100644
index 2fc9c74..0000000
--- a/MarkdownTest/Tests_2004/Yuri-Email.text-out
+++ /dev/null
@@ -1,17 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<html>
-<head>
-<meta name="generator" content=
-"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
-<title></title>
-</head>
-<body>
-<p>Lorem ipsum <a href=
-"mailto:yuri@domain.org">yuri@domain.org</a>, etc.</p>
-<ul>
-<li>An email address in a list</li>
-<li><a href="mailto:yuri@domain.org">yuri@domain.org</a></li>
-<li>Another item.</li>
-</ul>
-</body>
-</html>
diff --git a/MarkdownTest/Tests_2004/Yuri-Email.text-res b/MarkdownTest/Tests_2004/Yuri-Email.text-res
deleted file mode 100644
index 2fc9c74..0000000
--- a/MarkdownTest/Tests_2004/Yuri-Email.text-res
+++ /dev/null
@@ -1,17 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<html>
-<head>
-<meta name="generator" content=
-"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
-<title></title>
-</head>
-<body>
-<p>Lorem ipsum <a href=
-"mailto:yuri@domain.org">yuri@domain.org</a>, etc.</p>
-<ul>
-<li>An email address in a list</li>
-<li><a href="mailto:yuri@domain.org">yuri@domain.org</a></li>
-<li>Another item.</li>
-</ul>
-</body>
-</html>
diff --git a/MarkdownTest/Tests_2004/Yuri-Footnotes.text-out b/MarkdownTest/Tests_2004/Yuri-Footnotes.text-out
deleted file mode 100644
index b934c10..0000000
--- a/MarkdownTest/Tests_2004/Yuri-Footnotes.text-out
+++ /dev/null
@@ -1,42 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<html>
-<head>
-<meta name="generator" content=
-"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
-<title></title>
-</head>
-<body>
-<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
-eiusmod tempor incididunt ut labore et dolore magna aliqua[^2]. Ut
-enim ad minim veniam, quis nostrud exercitation ullamco laboris
-nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in
-reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
-pariatur[^1]. Excepteur sint occaecat cupidatat non proident, sunt
-in culpa qui officia deserunt mollit anim id est laborum.</p>
-<p>[^1]: Nemo enim ipsam voluptatem quia voluptas sit aspernatur
-aut odit aut fugit, sed quia consequuntur magni dolores eos qui
-ratione voluptatem sequi nesciunt.</p>
-<pre>
-<code> Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet,
- consectetur, adipisci velit, sed quia non numquam eius modi
- tempora incidunt ut labore et dolore magnam aliquam quaerat
- voluptatem.
-</code>
-</pre>
-<p>[^2]: Sed ut perspiciatis unde omnis iste natus error sit
-voluptatem accusantium doloremque laudantium, totam rem aperiam,
-eaque ipsa quae ab illo inventore veritatis et quasi architecto
-beatae vitae dicta sunt explicabo.</p>
-<ul>
-<li>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed
-do eiusmod tempor incididunt ut labore et dolore[^foo] magna
-aliqua.</li>
-</ul>
-<p>[^foo]: Ut enim ad minim veniam, quis nostrud exercitation
-ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
-<p>Duis aute irure dolor in reprehenderit in voluptate velit esse
-cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat
-cupidatat non proident, sunt in culpa qui officia deserunt mollit
-anim id est laborum.</p>
-</body>
-</html>
diff --git a/MarkdownTest/Tests_2004/Yuri-Footnotes.text-res b/MarkdownTest/Tests_2004/Yuri-Footnotes.text-res
deleted file mode 100644
index 5752e27..0000000
--- a/MarkdownTest/Tests_2004/Yuri-Footnotes.text-res
+++ /dev/null
@@ -1,55 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<html>
-<head>
-<meta name="generator" content=
-"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
-<title></title>
-</head>
-<body>
-<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
-eiusmod tempor incididunt ut labore et dolore magna
-aliqua<sup><a href="#fn1-903162597" id="fnr1-903162597" name=
-"fnr1-903162597">1</a></sup>. Ut enim ad minim veniam, quis nostrud
-exercitation ullamco laboris nisi ut aliquip ex ea commodo
-consequat. Duis aute irure dolor in reprehenderit in voluptate
-velit esse cillum dolore eu fugiat nulla pariatur<sup><a href=
-"#fn2-903162597" id="fnr2-903162597" name=
-"fnr2-903162597">2</a></sup>. Excepteur sint occaecat cupidatat non
-proident, sunt in culpa qui officia deserunt mollit anim id est
-laborum.</p>
-<ul>
-<li>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed
-do eiusmod tempor incididunt ut labore et dolore<sup><a href=
-"#fn3-903162597" id="fnr3-903162597" name=
-"fnr3-903162597">3</a></sup> magna aliqua.</li>
-</ul>
-<p>Duis aute irure dolor in reprehenderit in voluptate velit esse
-cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat
-cupidatat non proident, sunt in culpa qui officia deserunt mollit
-anim id est laborum.</p>
-<div class="footnote">
-<hr>
-<ol>
-<li id="fn1-903162597">Sed ut perspiciatis unde omnis iste natus
-error sit voluptatem accusantium doloremque laudantium, totam rem
-aperiam, eaque ipsa quae ab illo inventore veritatis et quasi
-architecto beatae vitae dicta sunt explicabo.<a href=
-"#fnr1-903162597" class="footnoteBackLink" title=
-"Jump back to footnote 1 in the text">&#8617;</a></li>
-<li id="fn2-903162597">Nemo enim ipsam voluptatem quia voluptas sit
-aspernatur aut odit aut fugit, sed quia consequuntur magni dolores
-eos qui ratione voluptatem sequi nesciunt.
-<p>Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet,
-consectetur, adipisci velit, sed quia non numquam eius modi tempora
-incidunt ut labore et dolore magnam aliquam quaerat voluptatem.
-<a href="#fnr2-903162597" class="footnoteBackLink" title=
-"Jump back to footnote 1 in the text">&#8617;</a></p>
-</li>
-<li id="fn3-903162597">Ut enim ad minim veniam, quis nostrud
-exercitation ullamco laboris nisi ut aliquip ex ea commodo
-consequat. <a href="#fnr3-903162597" class="footnoteBackLink"
-title="Jump back to footnote 1 in the text">&#8617;</a></li>
-</ol>
-</div>
-</body>
-</html>
diff --git a/MarkdownTest/Tests_2004/Yuri-Links-in-Headers.text-out b/MarkdownTest/Tests_2004/Yuri-Links-in-Headers.text-out
deleted file mode 100644
index 1c5cf77..0000000
--- a/MarkdownTest/Tests_2004/Yuri-Links-in-Headers.text-out
+++ /dev/null
@@ -1,18 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<html>
-<head>
-<meta name="generator" content=
-"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
-<title></title>
-</head>
-<body>
-<h2>A plain header</h2>
-<p>Let's first have a plain header</p>
-<h1>An underlined header</h1>
-<p>(That's also useful)</p>
-<h1>A header with a <a href="http://www.link.com">link</a></h1>
-<p>First with a hash</p>
-<h2>Another with a <a href="http://www.link.com/">link</a></h2>
-<p>This time underlined</p>
-</body>
-</html>
diff --git a/MarkdownTest/Tests_2004/Yuri-Links-in-Headers.text-res b/MarkdownTest/Tests_2004/Yuri-Links-in-Headers.text-res
deleted file mode 100644
index 1c5cf77..0000000
--- a/MarkdownTest/Tests_2004/Yuri-Links-in-Headers.text-res
+++ /dev/null
@@ -1,18 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<html>
-<head>
-<meta name="generator" content=
-"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
-<title></title>
-</head>
-<body>
-<h2>A plain header</h2>
-<p>Let's first have a plain header</p>
-<h1>An underlined header</h1>
-<p>(That's also useful)</p>
-<h1>A header with a <a href="http://www.link.com">link</a></h1>
-<p>First with a hash</p>
-<h2>Another with a <a href="http://www.link.com/">link</a></h2>
-<p>This time underlined</p>
-</body>
-</html>
diff --git a/MarkdownTest/readme.txt b/MarkdownTest/readme.txt
deleted file mode 100644
index 68047b5..0000000
--- a/MarkdownTest/readme.txt
+++ /dev/null
@@ -1 +0,0 @@
-MarkdownTest_1.0_2007-05-09 updated for the new version of tidy.
diff --git a/setup.cfg b/setup.cfg
new file mode 100644
index 0000000..fed1737
--- /dev/null
+++ b/setup.cfg
@@ -0,0 +1,2 @@
+[nosetests]
+with-doctest=1
diff --git a/test-markdown.py b/test-markdown.py
deleted file mode 100755
index e5dd870..0000000
--- a/test-markdown.py
+++ /dev/null
@@ -1,347 +0,0 @@
-#!/usr/bin/env python
-
-import os, difflib, time, gc, codecs, platform, sys
-from pprint import pprint
-import textwrap
-
-# Setup a logger manually for compatibility with Python 2.3
-import logging
-logging.getLogger('MARKDOWN').addHandler(logging.StreamHandler())
-import markdown
-
-TEST_DIR = "tests"
-TMP_DIR = "./tmp/"
-WRITE_BENCHMARK = True
-WRITE_BENCHMARK = False
-ACTUALLY_MEASURE_MEMORY = True
-
-######################################################################
-
-if platform.system().lower() == "darwin": # Darwin
- _proc_status = '/proc/%d/stat' % os.getpid()
-else: # Linux
- _proc_status = '/proc/%d/status' % os.getpid()
-
-_scale = {'kB': 1024.0, 'mB': 1024.0*1024.0,
- 'KB': 1024.0, 'MB': 1024.0*1024.0}
-
-def _VmB(VmKey):
- '''Private.
- '''
- global _proc_status, _scale
- # get pseudo file /proc/<pid>/status
- try:
- t = open(_proc_status)
- v = t.read()
- t.close()
- except:
- return 0.0 # non-Linux?
- # get VmKey line e.g. 'VmRSS: 9999 kB\n ...'
- i = v.index(VmKey)
- v = v[i:].split(None, 3) # whitespace
- if len(v) < 3:
- return 0.0 # invalid format?
- # convert Vm value to bytes
- return float(v[1]) * _scale[v[2]]
-
-
-def memory(since=0.0):
- '''Return memory usage in bytes.
- '''
- if ACTUALLY_MEASURE_MEMORY :
- return _VmB('VmSize:') - since
-
-
-def resident(since=0.0):
- '''Return resident memory usage in bytes.
- '''
- return _VmB('VmRSS:') - since
-
-
-def stacksize(since=0.0):
- '''Return stack size in bytes.
- '''
- return _VmB('VmStk:') - since
-
-
-############################################################
-
-DIFF_FILE_TEMPLATE = """
-<html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <style>
- td {
- padding-left: 10px;
- padding-right: 10px;
- }
- colgroup {
- margin: 10px;
- }
- .diff_header {
- color: gray;
- }
- .ok {
- color: green;
- }
- .gray {
- color: gray;
- }
- .failed a {
- color: red;
- }
- .failed {
- color: red;
- }
- </style>
-</head>
-<body>
-<h1>Results Summary</h1>
-<table rules="groups" >
- <colgroup></colgroup>
- <colgroup></colgroup>
- <colgroup></colgroup>
- <colgroup></colgroup>
- <colgroup></colgroup>
- <th>
- <td></td>
- <td>Seconds</td>
- <td></td>
- <td>Memory</td>
- </th>
- <tbody>
- """
-
-FOOTER = """
-</body>
-</html>
-"""
-
-DIFF_TABLE_TEMPLATE = """
- <table class="diff" rules="groups" >
- <colgroup></colgroup>
- <colgroup></colgroup>
- <colgroup></colgroup>
- <colgroup></colgroup>
- <colgroup></colgroup>
- <colgroup></colgroup>
- <th>
- <td></td>
- <td>Expected</td>
- <td></td>
- <td></td>
- <td>Actual</td>
- </th>
- <tbody>
- %s
- </tbody>
- </table>
-"""
-
-
-def smart_split(text) :
- result = []
- for x in text.splitlines() :
- for y in textwrap.wrap(textwrap.dedent(x), 40):
- result.append(y)
- return result
-
-
-differ = difflib.Differ()
-try :
- htmldiff = difflib.HtmlDiff()
-except:
- htmldiff = None
-
-class TestRunner :
-
- def __init__ (self) :
- self.failedTests = []
- if not os.path.exists(TMP_DIR):
- os.mkdir(TMP_DIR)
-
- def test_directory(self, dir, measure_time=False, safe_mode=False, encoding="utf-8", output_format='xhtml1') :
- self.encoding = encoding
- benchmark_file_name = os.path.join(dir, "benchmark.dat")
- self.saved_benchmarks = {}
-
- if measure_time :
- if os.path.exists(benchmark_file_name) :
- file = open(benchmark_file_name)
- for line in file.readlines() :
- test, str_time, str_mem = line.strip().split(":")
- self.saved_benchmarks[test] = (float(str_time), float(str_mem))
- repeat = range(10)
- else :
- repeat = (0,)
-
- # First, determine from the name of the directory if any extensions
- # need to be loaded.
-
- parts = os.path.split(dir)[-1].split("-x-")
- if len(parts) > 1 :
- extensions = parts[1].split("-")
- print extensions
- else :
- extensions = []
-
- mem = memory()
- start = time.clock()
- self.md = markdown.Markdown(extensions=extensions, safe_mode = safe_mode, output_format=output_format)
- construction_time = time.clock() - start
- construction_mem = memory(mem)
-
- self.benchmark_buffer = "construction:%f:%f\n" % (construction_time,
- construction_mem)
-
- html_diff_file_path = os.path.join(TMP_DIR, os.path.split(dir)[-1]) + ".html"
- self.html_diff_file = codecs.open(html_diff_file_path, "w", encoding=encoding)
- self.html_diff_file.write(DIFF_FILE_TEMPLATE)
-
- self.diffs_buffer = ""
-
- tests = [x.replace(".txt", "")
- for x in os.listdir(dir) if x.endswith(".txt")]
- tests.sort()
- for test in tests :
- self.run_test(dir, test, repeat)
-
- self.html_diff_file.write("</table>")
-
- if sys.version < "3.0":
- self.html_diff_file.write(self.diffs_buffer.decode("utf-8"))
-
- self.html_diff_file.write(FOOTER)
- self.html_diff_file.close()
- print "Diff written to %s" % html_diff_file_path
-
- benchmark_output_file_name = benchmark_file_name
-
- if not WRITE_BENCHMARK:
- benchmark_output_file_name += ".tmp"
-
- self.benchmark_file = open(benchmark_output_file_name, "w")
- self.benchmark_file.write(self.benchmark_buffer)
- self.benchmark_file.close()
-
-
-####################
-
-
- def run_test(self, dir, test, repeat):
-
- print "--- %s ---" % test
- self.html_diff_file.write("<tr><td>%s</td>" % test)
- input_file = os.path.join(dir, test + ".txt")
- output_file = os.path.join(dir, test + ".html")
-
- expected_output = codecs.open(output_file, encoding=self.encoding).read()
- input = codecs.open(input_file, encoding=self.encoding).read()
- actual_output = ""
- actual_lines = []
- self.md.source = ""
- gc.collect()
- mem = memory()
- start = time.clock()
- for x in repeat:
- actual_output = self.md.convert(input)
- conversion_time = time.clock() - start
- conversion_mem = memory(mem)
- self.md.reset()
-
- expected_lines = [x.encode("utf-8") for x in smart_split(expected_output)]
- actual_lines = [x.encode("utf-8") for x in smart_split(actual_output)]
-
- #diff = difflib.ndiff(expected_output.split("\n"),
- # actual_output.split("\n"))
-
- diff = [x for x in differ.compare(expected_lines,
- actual_lines)
- if not x.startswith(" ")]
-
- if not diff:
- self.html_diff_file.write("<td class='ok'>OK</td>")
- else :
- self.failedTests.append(test)
- self.html_diff_file.write("<td class='failed'>" +
- "<a href='#diff-%s'>FAILED</a></td>" % test)
- print "MISMATCH on %s/%s.txt" % (dir, test)
- print
- for line in diff :
- print line
- if htmldiff!=None :
- htmlDiff = htmldiff.make_table(expected_lines, actual_lines,
- context=True)
- htmlDiff = "\n".join( [x for x in htmlDiff.splitlines()
- if x.strip().startswith("<tr>")] )
- self.diffs_buffer += "<a name='diff-%s'/><h2>%s</h2>" % (test, test)
- self.diffs_buffer += DIFF_TABLE_TEMPLATE % htmlDiff
-
- expected_time, expected_mem = self.saved_benchmarks.get(test, ("na", "na"))
-
- self.html_diff_file.write(get_benchmark_html(conversion_time, expected_time))
- self.html_diff_file.write(get_benchmark_html(conversion_mem, expected_mem))
- self.html_diff_file.write("</tr>\n")
-
- self.benchmark_buffer += "%s:%f:%f\n" % (test,
- conversion_time, conversion_mem)
-
-
-
-
-
-def get_benchmark_html (actual, expected) :
- buffer = ""
- if not expected == "na":
- if actual > expected * 1.5:
- tdiff = "failed"
- elif actual * 1.5 < expected :
- tdiff = "ok"
- else :
- tdiff = "same"
- if ( (actual <= 0 and expected < 0.015) or
- (expected <= 0 and actual < 0.015)) :
- tdiff = "same"
- else :
- tdiff = "same"
- buffer += "<td class='%s'>%.2f</td>" % (tdiff, actual)
- if not expected == "na":
- buffer += "<td class='gray'>%.2f</td>" % (expected)
- return buffer
-
-
-def run_tests() :
-
- tester = TestRunner()
- #test.test_directory("tests/basic")
- tester.test_directory("tests/markdown-test", measure_time=True)
- tester.test_directory("tests/misc", measure_time=True)
- tester.test_directory("tests/extensions-x-tables")
- tester.test_directory("tests/extensions-x-footnotes")
- #tester.test_directory("tests/extensions-x-ext1-ext2")
- tester.test_directory("tests/safe_mode", measure_time=True, safe_mode="escape")
- tester.test_directory("tests/extensions-x-wikilinks")
- tester.test_directory("tests/extensions-x-toc")
- tester.test_directory("tests/extensions-x-def_list")
- tester.test_directory("tests/extensions-x-abbr")
- tester.test_directory("tests/html4", output_format='html4')
-
- try:
- import pygments
- except ImportError:
- # Dependancy not avalable - skip test
- pass
- else:
- tester.test_directory("tests/extensions-x-codehilite")
-
- print "\n### Final result ###"
- if len(tester.failedTests):
- print "%d failed tests: %s" % (len(tester.failedTests), str(tester.failedTests))
- else:
- print "All tests passed, no errors!"
-
-run_tests()
-
-
-
-
diff --git a/tests/__init__.py b/tests/__init__.py
new file mode 100644
index 0000000..d07ae7d
--- /dev/null
+++ b/tests/__init__.py
@@ -0,0 +1,117 @@
+import os
+import markdown
+import codecs
+import difflib
+import nose
+import util
+from plugins import HtmlOutput, Markdown
+try:
+ import tidy
+except ImportError:
+ tidy = None
+
+
+test_dir = os.path.abspath(os.path.dirname(__file__))
+
+def relpath(path, start=test_dir):
+ """ reimplement relpath for python 2.3-2.5 from 2.6 """
+ if not path:
+ raise ValueError('no path secified')
+ start_list = os.path.abspath(start).split(os.path.sep)
+ path_list = os.path.abspath(path).split(os.path.sep)
+ # Work out how much of the filepath is shared by start and path.
+ i = len(os.path.commonprefix([start_list, path_list]))
+ rel_list = [os.path.pardir] * (len(start_list)-i) + path_list[i:]
+ if not rel_list:
+ return test_dir
+ return os.path.join(*rel_list)
+
+def get_section(file, config):
+ """ Get name of config section for given file. """
+ filename = os.path.basename(file)
+ if config.has_section(filename):
+ return filename
+ else:
+ return 'DEFAULT'
+
+def get_args(file, config):
+ """ Get args to pass to markdown from config for a given file. """
+ args = {}
+ section = get_section(file, config)
+ for key in ['extensions', 'safe_mode', 'output_format']:
+ args[key] = config.get(section, key)
+ return args
+
+def normalize(text):
+ """ Normalize whitespace for a string of html using tidy. """
+ return str(tidy.parseString(text.encode('utf-8'),
+ drop_empty_paras=0,
+ fix_backslash=0,
+ fix_bad_comments=0,
+ fix_uri=0,
+ join_styles=0,
+ lower_literals=0,
+ merge_divs=0,
+ output_xhtml=1,
+ quote_ampersand=0,
+ show_body_only=1,
+ char_encoding='utf8',
+ newline='LF')).decode('string-escape')
+
+class CheckSyntax(object):
+ def __init__(self, description=None):
+ if description:
+ self.description = 'TestSyntax: "%s"' % description
+
+ def __call__(self, file, config):
+ """ Compare expected output to actual output and report result. """
+ cfg_section = get_section(file, config)
+ if config.getboolean(cfg_section, 'skip'):
+ raise nose.plugins.skip.SkipTest, 'Test skipped per config.'
+ input_file = file + config.get(cfg_section, 'input_ext')
+ input = codecs.open(input_file, encoding="utf-8").read()
+ output_file = file + config.get(cfg_section, 'output_ext')
+ expected_output = codecs.open(output_file, encoding="utf-8").read()
+ output = markdown.markdown(input, **get_args(file, config))
+ if tidy and config.getboolean(cfg_section, 'normalize'):
+ # Normalize whitespace before comparing.
+ expected_output = normalize(expected_output)
+ output = normalize(output)
+ elif config.getboolean(cfg_section, 'normalize'):
+ # Tidy is not available. Skip this test.
+ raise nose.plugins.skip.SkipTest, 'Test skipped. Tidy not available in system.'
+ diff = [l for l in difflib.unified_diff(expected_output.splitlines(True),
+ output.splitlines(True),
+ output_file,
+ 'actual_output.html',
+ n=3)]
+ if diff:
+ raise util.MarkdownSyntaxError('Output from "%s" failed to match expected '
+ 'output.\n\n%s' % (input_file, ''.join(diff)))
+
+def TestSyntax():
+ for dir_name, sub_dirs, files in os.walk(test_dir):
+ # Get dir specific config settings.
+ config = util.CustomConfigParser({'extensions': '',
+ 'safe_mode': False,
+ 'output_format': 'xhtml1',
+ 'normalize': '0',
+ 'skip': '0',
+ 'input_ext': '.txt',
+ 'output_ext': '.html'})
+ config.read(os.path.join(dir_name, 'test.cfg'))
+ # Loop through files and generate tests.
+ for file in files:
+ root, ext = os.path.splitext(file)
+ if ext == config.get(get_section(file, config), 'input_ext'):
+ path = os.path.join(dir_name, root)
+ check_syntax = CheckSyntax(description=relpath(path, test_dir))
+ yield check_syntax, path, config
+
+def run():
+ nose.main(addplugins=[HtmlOutput(), Markdown()])
+
+# Hack to make nose run with extensions. Once extensions can be added from
+# setup.cfg, the below line can be removed.
+# See nose [Issue 271](http://code.google.com/p/python-nose/issues/detail?id=271)
+run()
diff --git a/tests/markdown-test/amps-and-angle-encoding.html b/tests/basic/amps-and-angle-encoding.html
index 2c466c1..2c466c1 100644
--- a/tests/markdown-test/amps-and-angle-encoding.html
+++ b/tests/basic/amps-and-angle-encoding.html
diff --git a/tests/markdown-test/amps-and-angle-encoding.txt b/tests/basic/amps-and-angle-encoding.txt
index 0e9527f..0e9527f 100644
--- a/tests/markdown-test/amps-and-angle-encoding.txt
+++ b/tests/basic/amps-and-angle-encoding.txt
diff --git a/tests/markdown-test/angle-links-and-img.html b/tests/basic/angle-links-and-img.html
index 1ca3b0b..1ca3b0b 100644
--- a/tests/markdown-test/angle-links-and-img.html
+++ b/tests/basic/angle-links-and-img.html
diff --git a/tests/markdown-test/angle-links-and-img.txt b/tests/basic/angle-links-and-img.txt
index 1dbf404..1dbf404 100644
--- a/tests/markdown-test/angle-links-and-img.txt
+++ b/tests/basic/angle-links-and-img.txt
diff --git a/tests/markdown-test/auto-links.html b/tests/basic/auto-links.html
index 7481fe2..7481fe2 100644
--- a/tests/markdown-test/auto-links.html
+++ b/tests/basic/auto-links.html
diff --git a/tests/markdown-test/auto-links.txt b/tests/basic/auto-links.txt
index a188b40..a188b40 100644
--- a/tests/markdown-test/auto-links.txt
+++ b/tests/basic/auto-links.txt
diff --git a/tests/markdown-test/backlash-escapes.html b/tests/basic/backlash-escapes.html
index 876775f..876775f 100644
--- a/tests/markdown-test/backlash-escapes.html
+++ b/tests/basic/backlash-escapes.html
diff --git a/tests/markdown-test/backlash-escapes.txt b/tests/basic/backlash-escapes.txt
index 16447a0..16447a0 100644
--- a/tests/markdown-test/backlash-escapes.txt
+++ b/tests/basic/backlash-escapes.txt
diff --git a/tests/markdown-test/benchmark.dat b/tests/basic/benchmark.dat
index 3d549dd..3d549dd 100644
--- a/tests/markdown-test/benchmark.dat
+++ b/tests/basic/benchmark.dat
diff --git a/tests/markdown-test/blockquotes-with-code-blocks.html b/tests/basic/blockquotes-with-code-blocks.html
index 5fc98b1..5fc98b1 100644
--- a/tests/markdown-test/blockquotes-with-code-blocks.html
+++ b/tests/basic/blockquotes-with-code-blocks.html
diff --git a/tests/markdown-test/blockquotes-with-code-blocks.txt b/tests/basic/blockquotes-with-code-blocks.txt
index c31d171..c31d171 100644
--- a/tests/markdown-test/blockquotes-with-code-blocks.txt
+++ b/tests/basic/blockquotes-with-code-blocks.txt
diff --git a/tests/markdown-test/codeblock-in-list.html b/tests/basic/codeblock-in-list.html
index 49edd56..49edd56 100644
--- a/tests/markdown-test/codeblock-in-list.html
+++ b/tests/basic/codeblock-in-list.html
diff --git a/tests/markdown-test/codeblock-in-list.txt b/tests/basic/codeblock-in-list.txt
index 87d4e3b..87d4e3b 100644
--- a/tests/markdown-test/codeblock-in-list.txt
+++ b/tests/basic/codeblock-in-list.txt
diff --git a/tests/markdown-test/hard-wrapped.html b/tests/basic/hard-wrapped.html
index e28e900..e28e900 100644
--- a/tests/markdown-test/hard-wrapped.html
+++ b/tests/basic/hard-wrapped.html
diff --git a/tests/markdown-test/hard-wrapped.txt b/tests/basic/hard-wrapped.txt
index f8a5b27..f8a5b27 100644
--- a/tests/markdown-test/hard-wrapped.txt
+++ b/tests/basic/hard-wrapped.txt
diff --git a/tests/markdown-test/horizontal-rules.html b/tests/basic/horizontal-rules.html
index 478e8c5..478e8c5 100644
--- a/tests/markdown-test/horizontal-rules.html
+++ b/tests/basic/horizontal-rules.html
diff --git a/tests/markdown-test/horizontal-rules.txt b/tests/basic/horizontal-rules.txt
index 1594bda..1594bda 100644
--- a/tests/markdown-test/horizontal-rules.txt
+++ b/tests/basic/horizontal-rules.txt
diff --git a/tests/markdown-test/inline-html-advanced.html b/tests/basic/inline-html-advanced.html
index af1dec1..af1dec1 100644
--- a/tests/markdown-test/inline-html-advanced.html
+++ b/tests/basic/inline-html-advanced.html
diff --git a/tests/markdown-test/inline-html-advanced.txt b/tests/basic/inline-html-advanced.txt
index 9d71ddc..9d71ddc 100644
--- a/tests/markdown-test/inline-html-advanced.txt
+++ b/tests/basic/inline-html-advanced.txt
diff --git a/tests/markdown-test/inline-html-comments.html b/tests/basic/inline-html-comments.html
index 0d4cad9..0d4cad9 100644
--- a/tests/markdown-test/inline-html-comments.html
+++ b/tests/basic/inline-html-comments.html
diff --git a/tests/markdown-test/inline-html-comments.txt b/tests/basic/inline-html-comments.txt
index 41d830d..41d830d 100644
--- a/tests/markdown-test/inline-html-comments.txt
+++ b/tests/basic/inline-html-comments.txt
diff --git a/tests/markdown-test/inline-html-simple.html b/tests/basic/inline-html-simple.html
index cb10451..cb10451 100644
--- a/tests/markdown-test/inline-html-simple.html
+++ b/tests/basic/inline-html-simple.html
diff --git a/tests/markdown-test/inline-html-simple.txt b/tests/basic/inline-html-simple.txt
index 14aa2dc..14aa2dc 100644
--- a/tests/markdown-test/inline-html-simple.txt
+++ b/tests/basic/inline-html-simple.txt
diff --git a/tests/markdown-test/links-inline.html b/tests/basic/links-inline.html
index 707937a..707937a 100644
--- a/tests/markdown-test/links-inline.html
+++ b/tests/basic/links-inline.html
diff --git a/tests/markdown-test/links-inline.txt b/tests/basic/links-inline.txt
index 4d0c1c2..4d0c1c2 100644
--- a/tests/markdown-test/links-inline.txt
+++ b/tests/basic/links-inline.txt
diff --git a/tests/markdown-test/links-reference.html b/tests/basic/links-reference.html
index 165c71a..165c71a 100644
--- a/tests/markdown-test/links-reference.html
+++ b/tests/basic/links-reference.html
diff --git a/tests/markdown-test/links-reference.txt b/tests/basic/links-reference.txt
index b2fa734..b2fa734 100644
--- a/tests/markdown-test/links-reference.txt
+++ b/tests/basic/links-reference.txt
diff --git a/tests/markdown-test/literal-quotes.html b/tests/basic/literal-quotes.html
index 0342589..0342589 100644
--- a/tests/markdown-test/literal-quotes.html
+++ b/tests/basic/literal-quotes.html
diff --git a/tests/markdown-test/literal-quotes.txt b/tests/basic/literal-quotes.txt
index 29d0e42..29d0e42 100644
--- a/tests/markdown-test/literal-quotes.txt
+++ b/tests/basic/literal-quotes.txt
diff --git a/tests/markdown-test/markdown-documentation-basics.html b/tests/basic/markdown-documentation-basics.html
index 3bcaea9..3bcaea9 100644
--- a/tests/markdown-test/markdown-documentation-basics.html
+++ b/tests/basic/markdown-documentation-basics.html
diff --git a/tests/markdown-test/markdown-documentation-basics.txt b/tests/basic/markdown-documentation-basics.txt
index 486055c..486055c 100644
--- a/tests/markdown-test/markdown-documentation-basics.txt
+++ b/tests/basic/markdown-documentation-basics.txt
diff --git a/tests/extensions-x-def_list/markdown-syntax.html b/tests/basic/markdown-syntax.html
index 2f63b4b..038c9d1 100644
--- a/tests/extensions-x-def_list/markdown-syntax.html
+++ b/tests/basic/markdown-syntax.html
@@ -484,12 +484,12 @@ on a line by itself:</p>
<p>That is:</p>
<ul>
<li>Square brackets containing the link identifier (optionally
-indented from the left margin using up to three spaces);</li>
+ indented from the left margin using up to three spaces);</li>
<li>followed by a colon;</li>
<li>followed by one or more spaces (or tabs);</li>
<li>followed by the URL for the link;</li>
<li>optionally followed by a title attribute for the link, enclosed
-in double or single quotes.</li>
+ in double or single quotes.</li>
</ul>
<p>The link URL may, optionally, be surrounded by angle brackets:</p>
<pre><code>[id]: &lt;http://example.com/&gt; "Optional Title Here"
@@ -660,10 +660,10 @@ for links, allowing for two styles: <em>inline</em> and <em>reference</em>.</p>
<ul>
<li>An exclamation mark: <code>!</code>;</li>
<li>followed by a set of square brackets, containing the <code>alt</code>
-attribute text for the image;</li>
+ attribute text for the image;</li>
<li>followed by a set of parentheses, containing the URL or path to
-the image, and an optional <code>title</code> attribute enclosed in double
-or single quotes.</li>
+ the image, and an optional <code>title</code> attribute enclosed in double
+ or single quotes.</li>
</ul>
<p>Reference-style image syntax looks like this:</p>
<pre><code>![Alt text][id]
diff --git a/tests/extensions-x-def_list/markdown-syntax.txt b/tests/basic/markdown-syntax.txt
index dabd75c..dabd75c 100644
--- a/tests/extensions-x-def_list/markdown-syntax.txt
+++ b/tests/basic/markdown-syntax.txt
diff --git a/tests/markdown-test/nested-blockquotes.html b/tests/basic/nested-blockquotes.html
index f1b017e..f1b017e 100644
--- a/tests/markdown-test/nested-blockquotes.html
+++ b/tests/basic/nested-blockquotes.html
diff --git a/tests/markdown-test/nested-blockquotes.txt b/tests/basic/nested-blockquotes.txt
index ed3c624..ed3c624 100644
--- a/tests/markdown-test/nested-blockquotes.txt
+++ b/tests/basic/nested-blockquotes.txt
diff --git a/tests/markdown-test/ordered-and-unordered-list.html b/tests/basic/ordered-and-unordered-list.html
index 090c43c..090c43c 100644
--- a/tests/markdown-test/ordered-and-unordered-list.html
+++ b/tests/basic/ordered-and-unordered-list.html
diff --git a/tests/markdown-test/ordered-and-unordered-list.txt b/tests/basic/ordered-and-unordered-list.txt
index 621db58..621db58 100644
--- a/tests/markdown-test/ordered-and-unordered-list.txt
+++ b/tests/basic/ordered-and-unordered-list.txt
diff --git a/tests/markdown-test/strong-and-em-together.html b/tests/basic/strong-and-em-together.html
index 7bf5163..7bf5163 100644
--- a/tests/markdown-test/strong-and-em-together.html
+++ b/tests/basic/strong-and-em-together.html
diff --git a/tests/markdown-test/strong-and-em-together.txt b/tests/basic/strong-and-em-together.txt
index 95ee690..95ee690 100644
--- a/tests/markdown-test/strong-and-em-together.txt
+++ b/tests/basic/strong-and-em-together.txt
diff --git a/tests/markdown-test/tabs.html b/tests/basic/tabs.html
index b26391b..3c11f14 100644
--- a/tests/markdown-test/tabs.html
+++ b/tests/basic/tabs.html
@@ -1,11 +1,11 @@
<ul>
<li>
<p>this is a list item
-indented with tabs</p>
+ indented with tabs</p>
</li>
<li>
<p>this is a list item
-indented with spaces</p>
+ indented with spaces</p>
</li>
</ul>
<p>Code:</p>
diff --git a/tests/markdown-test/tabs.txt b/tests/basic/tabs.txt
index 589d113..589d113 100644
--- a/tests/markdown-test/tabs.txt
+++ b/tests/basic/tabs.txt
diff --git a/tests/markdown-test/tidyness.html b/tests/basic/tidyness.html
index 52b2eaf..52b2eaf 100644
--- a/tests/markdown-test/tidyness.html
+++ b/tests/basic/tidyness.html
diff --git a/tests/markdown-test/tidyness.txt b/tests/basic/tidyness.txt
index 5f18b8d..5f18b8d 100644
--- a/tests/markdown-test/tidyness.txt
+++ b/tests/basic/tidyness.txt
diff --git a/tests/extensions-x-wikilinks/wikilinks.html b/tests/extensions-x-wikilinks/wikilinks.html
deleted file mode 100644
index 1a38535..0000000
--- a/tests/extensions-x-wikilinks/wikilinks.html
+++ /dev/null
@@ -1,6 +0,0 @@
-<p>Some text with a <a class="wikilink" href="/WikiLink/">WikiLink</a>.</p>
-<p>A link with <a class="wikilink" href="/white_space_and_underscores/">white space and_underscores</a> and a empty one.</p>
-<p>And a <a href="http://example.com/RealLink">RealLink</a>.</p>
-<p><a href="http://example.com/And_A_AutoLink">http://example.com/And_A_AutoLink</a></p>
-<p>And a <a href="/MarkdownLink/" title="A MarkdownLink">MarkdownLink</a> for
-completeness.</p> \ No newline at end of file
diff --git a/tests/extensions-x-codehilite/code.html b/tests/extensions/codehilite.html
index 6a8ee91..366682e 100644
--- a/tests/extensions-x-codehilite/code.html
+++ b/tests/extensions/codehilite.html
@@ -1,10 +1,10 @@
<p>Some text</p>
-<table class="codehilitetable"><tr><td class="linenos"><pre>1
+<table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2
3
4
5
-6</pre></td><td class="code"><div class="codehilite"><pre><span class="k">def</span> <span class="nf">__init__</span> <span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">pattern</span><span class="p">)</span> <span class="p">:</span>
+6</pre></div></td><td class="code"><div class="codehilite"><pre><span class="k">def</span> <span class="nf">__init__</span> <span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">pattern</span><span class="p">)</span> <span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">pattern</span> <span class="o">=</span> <span class="n">pattern</span>
<span class="bp">self</span><span class="o">.</span><span class="n">compiled_re</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="s">&quot;^(.*)</span><span class="si">%s</span><span class="s">(.*)$&quot;</span> <span class="o">%</span> <span class="n">pattern</span><span class="p">,</span> <span class="n">re</span><span class="o">.</span><span class="n">DOTALL</span><span class="p">)</span>
diff --git a/tests/extensions-x-codehilite/code.txt b/tests/extensions/codehilite.txt
index 6c62e6a..6c62e6a 100644
--- a/tests/extensions-x-codehilite/code.txt
+++ b/tests/extensions/codehilite.txt
diff --git a/tests/extensions-x-abbr/abbr.html b/tests/extensions/extra/abbr.html
index 456524e..456524e 100644
--- a/tests/extensions-x-abbr/abbr.html
+++ b/tests/extensions/extra/abbr.html
diff --git a/tests/extensions-x-abbr/abbr.txt b/tests/extensions/extra/abbr.txt
index 991bf15..991bf15 100644
--- a/tests/extensions-x-abbr/abbr.txt
+++ b/tests/extensions/extra/abbr.txt
diff --git a/tests/extensions-x-footnotes/footnote.html b/tests/extensions/extra/footnote.html
index 6556dab..6556dab 100644
--- a/tests/extensions-x-footnotes/footnote.html
+++ b/tests/extensions/extra/footnote.html
diff --git a/tests/extensions-x-footnotes/footnote.txt b/tests/extensions/extra/footnote.txt
index 07188d0..07188d0 100644
--- a/tests/extensions-x-footnotes/footnote.txt
+++ b/tests/extensions/extra/footnote.txt
diff --git a/tests/extensions-x-def_list/loose_def_list.html b/tests/extensions/extra/loose_def_list.html
index 98fdec8..98fdec8 100644
--- a/tests/extensions-x-def_list/loose_def_list.html
+++ b/tests/extensions/extra/loose_def_list.html
diff --git a/tests/extensions-x-def_list/loose_def_list.txt b/tests/extensions/extra/loose_def_list.txt
index 24cd6a4..24cd6a4 100644
--- a/tests/extensions-x-def_list/loose_def_list.txt
+++ b/tests/extensions/extra/loose_def_list.txt
diff --git a/tests/markdown-test/markdown-syntax.html b/tests/extensions/extra/markdown-syntax.html
index 2f63b4b..038c9d1 100644
--- a/tests/markdown-test/markdown-syntax.html
+++ b/tests/extensions/extra/markdown-syntax.html
@@ -484,12 +484,12 @@ on a line by itself:</p>
<p>That is:</p>
<ul>
<li>Square brackets containing the link identifier (optionally
-indented from the left margin using up to three spaces);</li>
+ indented from the left margin using up to three spaces);</li>
<li>followed by a colon;</li>
<li>followed by one or more spaces (or tabs);</li>
<li>followed by the URL for the link;</li>
<li>optionally followed by a title attribute for the link, enclosed
-in double or single quotes.</li>
+ in double or single quotes.</li>
</ul>
<p>The link URL may, optionally, be surrounded by angle brackets:</p>
<pre><code>[id]: &lt;http://example.com/&gt; "Optional Title Here"
@@ -660,10 +660,10 @@ for links, allowing for two styles: <em>inline</em> and <em>reference</em>.</p>
<ul>
<li>An exclamation mark: <code>!</code>;</li>
<li>followed by a set of square brackets, containing the <code>alt</code>
-attribute text for the image;</li>
+ attribute text for the image;</li>
<li>followed by a set of parentheses, containing the URL or path to
-the image, and an optional <code>title</code> attribute enclosed in double
-or single quotes.</li>
+ the image, and an optional <code>title</code> attribute enclosed in double
+ or single quotes.</li>
</ul>
<p>Reference-style image syntax looks like this:</p>
<pre><code>![Alt text][id]
diff --git a/tests/markdown-test/markdown-syntax.txt b/tests/extensions/extra/markdown-syntax.txt
index dabd75c..dabd75c 100644
--- a/tests/markdown-test/markdown-syntax.txt
+++ b/tests/extensions/extra/markdown-syntax.txt
diff --git a/tests/extensions-x-footnotes/named_markers.html b/tests/extensions/extra/named_markers.html
index 6996b5f..6996b5f 100644
--- a/tests/extensions-x-footnotes/named_markers.html
+++ b/tests/extensions/extra/named_markers.html
diff --git a/tests/extensions-x-footnotes/named_markers.txt b/tests/extensions/extra/named_markers.txt
index d246524..d246524 100644
--- a/tests/extensions-x-footnotes/named_markers.txt
+++ b/tests/extensions/extra/named_markers.txt
diff --git a/tests/extensions-x-extra/raw-html.html b/tests/extensions/extra/raw-html.html
index b2a7c4d..b2a7c4d 100644
--- a/tests/extensions-x-extra/raw-html.html
+++ b/tests/extensions/extra/raw-html.html
diff --git a/tests/extensions-x-extra/raw-html.txt b/tests/extensions/extra/raw-html.txt
index 284fe0c..284fe0c 100644
--- a/tests/extensions-x-extra/raw-html.txt
+++ b/tests/extensions/extra/raw-html.txt
diff --git a/tests/extensions-x-def_list/simple_def-lists.html b/tests/extensions/extra/simple_def-lists.html
index 278e1ec..278e1ec 100644
--- a/tests/extensions-x-def_list/simple_def-lists.html
+++ b/tests/extensions/extra/simple_def-lists.html
diff --git a/tests/extensions-x-def_list/simple_def-lists.txt b/tests/extensions/extra/simple_def-lists.txt
index 20c028a..20c028a 100644
--- a/tests/extensions-x-def_list/simple_def-lists.txt
+++ b/tests/extensions/extra/simple_def-lists.txt
diff --git a/tests/extensions-x-tables/tables.html b/tests/extensions/extra/tables.html
index c931e6a..c931e6a 100644
--- a/tests/extensions-x-tables/tables.html
+++ b/tests/extensions/extra/tables.html
diff --git a/tests/extensions-x-tables/tables.txt b/tests/extensions/extra/tables.txt
index 64917ab..64917ab 100644
--- a/tests/extensions-x-tables/tables.txt
+++ b/tests/extensions/extra/tables.txt
diff --git a/tests/extensions/extra/test.cfg b/tests/extensions/extra/test.cfg
new file mode 100644
index 0000000..74893f0
--- /dev/null
+++ b/tests/extensions/extra/test.cfg
@@ -0,0 +1,17 @@
+[DEFAULT]
+extensions=extra
+
+[loose_def_list]
+extensions=def_list
+
+[simple_def-lists]
+extensions=def_list
+
+[abbr]
+extensions=abbr
+
+[footnotes]
+extensions=footnotes
+
+[tables]
+extensions=tables
diff --git a/tests/extensions/test.cfg b/tests/extensions/test.cfg
new file mode 100644
index 0000000..6208201
--- /dev/null
+++ b/tests/extensions/test.cfg
@@ -0,0 +1,17 @@
+[codehilite]
+extensions=codehilite
+
+[toc]
+extensions=toc
+
+[toc_invalid]
+extensions=toc
+
+[toc_nested]
+extensions=toc
+
+[toc_nested2]
+extensions=toc
+
+[wikilinks]
+extensions=wikilinks
diff --git a/tests/extensions-x-toc/syntax-toc.html b/tests/extensions/toc.html
index eea5347..3559d45 100644
--- a/tests/extensions-x-toc/syntax-toc.html
+++ b/tests/extensions/toc.html
@@ -461,12 +461,12 @@ on a line by itself:</p>
<p>That is:</p>
<ul>
<li>Square brackets containing the link identifier (optionally
-indented from the left margin using up to three spaces);</li>
+ indented from the left margin using up to three spaces);</li>
<li>followed by a colon;</li>
<li>followed by one or more spaces (or tabs);</li>
<li>followed by the URL for the link;</li>
<li>optionally followed by a title attribute for the link, enclosed
-in double or single quotes.</li>
+ in double or single quotes.</li>
</ul>
<p>The link URL may, optionally, be surrounded by angle brackets:</p>
<pre><code>[id]: &lt;http://example.com/&gt; "Optional Title Here"
@@ -634,10 +634,10 @@ for links, allowing for two styles: <em>inline</em> and <em>reference</em>.</p>
<ul>
<li>An exclamation mark: <code>!</code>;</li>
<li>followed by a set of square brackets, containing the <code>alt</code>
-attribute text for the image;</li>
+ attribute text for the image;</li>
<li>followed by a set of parentheses, containing the URL or path to
-the image, and an optional <code>title</code> attribute enclosed in double
-or single quotes.</li>
+ the image, and an optional <code>title</code> attribute enclosed in double
+ or single quotes.</li>
</ul>
<p>Reference-style image syntax looks like this:</p>
<pre><code>![Alt text][id]
diff --git a/tests/extensions-x-toc/syntax-toc.txt b/tests/extensions/toc.txt
index f297200..f297200 100644
--- a/tests/extensions-x-toc/syntax-toc.txt
+++ b/tests/extensions/toc.txt
diff --git a/tests/extensions-x-toc/invalid.html b/tests/extensions/toc_invalid.html
index 41a3b1f..41a3b1f 100644
--- a/tests/extensions-x-toc/invalid.html
+++ b/tests/extensions/toc_invalid.html
diff --git a/tests/extensions-x-toc/invalid.txt b/tests/extensions/toc_invalid.txt
index f6c4ec4..f6c4ec4 100644
--- a/tests/extensions-x-toc/invalid.txt
+++ b/tests/extensions/toc_invalid.txt
diff --git a/tests/extensions-x-toc/nested.html b/tests/extensions/toc_nested.html
index a8a1583..a8a1583 100644
--- a/tests/extensions-x-toc/nested.html
+++ b/tests/extensions/toc_nested.html
diff --git a/tests/extensions-x-toc/nested.txt b/tests/extensions/toc_nested.txt
index 9b515f9..9b515f9 100644
--- a/tests/extensions-x-toc/nested.txt
+++ b/tests/extensions/toc_nested.txt
diff --git a/tests/extensions-x-toc/nested2.html b/tests/extensions/toc_nested2.html
index bf87716..bf87716 100644
--- a/tests/extensions-x-toc/nested2.html
+++ b/tests/extensions/toc_nested2.html
diff --git a/tests/extensions-x-toc/nested2.txt b/tests/extensions/toc_nested2.txt
index 9db4d8c..9db4d8c 100644
--- a/tests/extensions-x-toc/nested2.txt
+++ b/tests/extensions/toc_nested2.txt
diff --git a/tests/extensions/wikilinks.html b/tests/extensions/wikilinks.html
new file mode 100644
index 0000000..a76a693
--- /dev/null
+++ b/tests/extensions/wikilinks.html
@@ -0,0 +1,9 @@
+<p>Some text with a <a class="wikilink" href="/WikiLink/">WikiLink</a>.</p>
+<p>A link with <a class="wikilink" href="/white_space_and_underscores/">white space and_underscores</a> and a empty one.</p>
+<p>Another with <a class="wikilink" href="/double_spaces/">double spaces</a> and <a class="wikilink" href="/double__underscores/">double__underscores</a> and
+one that <a class="wikilink" href="/has_emphasis_inside/">has <em>emphasis</em> inside</a> and one <a class="wikilink" href="/with_multiple_underscores/">with_multiple_underscores</a>
+and one that is <em><a class="wikilink" href="/emphasised/">emphasised</a></em>.</p>
+<p>And a <a href="http://example.com/RealLink">RealLink</a>.</p>
+<p><a href="http://example.com/And_A_AutoLink">http://example.com/And_A_AutoLink</a></p>
+<p>And a <a href="/MarkdownLink/" title="A MarkdownLink">MarkdownLink</a> for
+completeness.</p> \ No newline at end of file
diff --git a/tests/extensions-x-wikilinks/wikilinks.txt b/tests/extensions/wikilinks.txt
index 8e6911b..8e6911b 100644
--- a/tests/extensions-x-wikilinks/wikilinks.txt
+++ b/tests/extensions/wikilinks.txt
diff --git a/tests/html4/test.cfg b/tests/html4/test.cfg
new file mode 100644
index 0000000..a3fc498
--- /dev/null
+++ b/tests/html4/test.cfg
@@ -0,0 +1,2 @@
+[DEFAULT]
+output_format=html4
diff --git a/tests/misc/em-around-links.html b/tests/misc/em-around-links.html
index 06bfa8e..fafac28 100644
--- a/tests/misc/em-around-links.html
+++ b/tests/misc/em-around-links.html
@@ -1,16 +1,13 @@
<h1>Title</h1>
-
<ul>
- <li><em><a href="http://www.freewisdom.org/projects/python-markdown/">Python in Markdown</a> by some
+<li><em><a href="http://www.freewisdom.org/projects/python-markdown/">Python in Markdown</a> by some
great folks</em> - This <em>does</em> work as expected.</li>
- <li><em><a href="http://www.freewisdom.org/projects/python-markdown/">Python in Markdown</a> by some
+<li><em><a href="http://www.freewisdom.org/projects/python-markdown/">Python in Markdown</a> by some
great folks</em> - This <em>does</em> work as expected.</li>
- <li><a href="http://www.freewisdom.org/projects/python-markdown/"><em>Python in Markdown</em></a> by some
+<li><a href="http://www.freewisdom.org/projects/python-markdown/"><em>Python in Markdown</em></a> by some
great folks - This <em>does</em> work as expected.</li>
- <li><a href="http://www.freewisdom.org/projects/python-markdown/"><em>Python in Markdown</em></a> <em>by some
+<li><a href="http://www.freewisdom.org/projects/python-markdown/"><em>Python in Markdown</em></a> <em>by some
great folks</em> - This <em>does</em> work as expected.</li>
</ul>
-
<p><em><a href="http://www.freewisdom.org/projects/python-markdown/">Python in Markdown</a> by some
- great folks</em> - This <em>does</em> work as expected.</p>
-
+great folks</em> - This <em>does</em> work as expected.</p> \ No newline at end of file
diff --git a/tests/misc/multi-paragraph-block-quote.html b/tests/misc/multi-paragraph-block-quote.html
index e13986a..f01b5e4 100644
--- a/tests/misc/multi-paragraph-block-quote.html
+++ b/tests/misc/multi-paragraph-block-quote.html
@@ -1,6 +1,6 @@
<blockquote>
<p>This is line one of paragraph one
- This is line two of paragraph one</p>
+This is line two of paragraph one</p>
<p>This is line one of paragraph two</p>
<p>This is another blockquote.</p>
</blockquote> \ No newline at end of file
diff --git a/tests/misc/tabs-in-lists.html b/tests/misc/tabs-in-lists.html
index a1a92ec..fdb7cb6 100644
--- a/tests/misc/tabs-in-lists.html
+++ b/tests/misc/tabs-in-lists.html
@@ -19,7 +19,7 @@
<p>Now a list with 4 spaces and some text:</p>
<ul>
<li>A
-abcdef</li>
+ abcdef</li>
<li>B</li>
</ul>
<p>Now with a tab and an extra space:</p>
diff --git a/tests/php/Auto Links.text b/tests/php/Auto Links.text
new file mode 100644
index 0000000..4b10d32
--- /dev/null
+++ b/tests/php/Auto Links.text
@@ -0,0 +1,3 @@
+<HTTP://WWW.SOMEURL.COM>
+
+<hr@company.com> \ No newline at end of file
diff --git a/tests/php/Auto Links.xhtml b/tests/php/Auto Links.xhtml
new file mode 100644
index 0000000..259c47f
--- /dev/null
+++ b/tests/php/Auto Links.xhtml
@@ -0,0 +1,3 @@
+<p><a href="HTTP://WWW.SOMEURL.COM">HTTP://WWW.SOMEURL.COM</a></p>
+
+<p><a href="mailto:hr@company.com">hr@company.com</a></p> \ No newline at end of file
diff --git a/tests/php/Backslash escapes.text b/tests/php/Backslash escapes.text
new file mode 100644
index 0000000..a5e769b
--- /dev/null
+++ b/tests/php/Backslash escapes.text
@@ -0,0 +1 @@
+Tricky combinaisons: backslash with \\-- two dashes backslash with \\> greater than \\\[test](not a link) \\\*no emphasis* \ No newline at end of file
diff --git a/tests/php/Backslash escapes.xhtml b/tests/php/Backslash escapes.xhtml
new file mode 100644
index 0000000..08fb8ef
--- /dev/null
+++ b/tests/php/Backslash escapes.xhtml
@@ -0,0 +1 @@
+<p>Tricky combinaisons:</p> <p>backslash with \-- two dashes</p> <p>backslash with \> greater than</p> <p>\[test](not a link)</p> <p>\*no emphasis*</p> \ No newline at end of file
diff --git a/tests/php/Code Spans.text b/tests/php/Code Spans.text
new file mode 100644
index 0000000..43f2bcf
--- /dev/null
+++ b/tests/php/Code Spans.text
@@ -0,0 +1,6 @@
+From `<!--` to `-->`
+on two lines.
+
+From `<!--`
+to `-->`
+on three lines.
diff --git a/tests/php/Code Spans.xhtml b/tests/php/Code Spans.xhtml
new file mode 100644
index 0000000..9ed0df8
--- /dev/null
+++ b/tests/php/Code Spans.xhtml
@@ -0,0 +1,6 @@
+<p>From <code>&lt;!--</code> to <code>--&gt;</code>
+on two lines.</p>
+
+<p>From <code>&lt;!--</code>
+to <code>--&gt;</code>
+on three lines.</p>
diff --git a/tests/php/Code block in a list item.text b/tests/php/Code block in a list item.text
new file mode 100644
index 0000000..5093348
--- /dev/null
+++ b/tests/php/Code block in a list item.text
@@ -0,0 +1,15 @@
+
+* List Item:
+
+ code block
+
+ with a blank line
+
+ within a list item.
+
+* code block
+ as first element of a list item
+
+* List Item:
+
+ code block with whitespace on preceding line \ No newline at end of file
diff --git a/tests/php/Code block in a list item.xhtml b/tests/php/Code block in a list item.xhtml
new file mode 100644
index 0000000..361c1ae
--- /dev/null
+++ b/tests/php/Code block in a list item.xhtml
@@ -0,0 +1,18 @@
+<ul>
+<li><p>List Item:</p>
+
+<pre><code>code block
+
+with a blank line
+</code></pre>
+
+<p>within a list item.</p></li>
+<li><pre><code>code block
+as first element of a list item
+</code></pre></li>
+
+<li><p>List Item:</p>
+
+<pre><code>code block with whitespace on preceding line
+</code></pre></li>
+</ul> \ No newline at end of file
diff --git a/tests/php/Code block on second line.text b/tests/php/Code block on second line.text
new file mode 100644
index 0000000..b7fcd97
--- /dev/null
+++ b/tests/php/Code block on second line.text
@@ -0,0 +1,2 @@
+
+ Codeblock on second line
diff --git a/tests/php/Code block on second line.xhtml b/tests/php/Code block on second line.xhtml
new file mode 100644
index 0000000..25abb16
--- /dev/null
+++ b/tests/php/Code block on second line.xhtml
@@ -0,0 +1,2 @@
+<pre><code>Codeblock on second line
+</code></pre>
diff --git a/tests/php/Email auto links.text b/tests/php/Email auto links.text
new file mode 100644
index 0000000..a8af4ec
--- /dev/null
+++ b/tests/php/Email auto links.text
@@ -0,0 +1,3 @@
+<michel.fortin@michelf.com>
+
+International domain names: <help@tūdaliņ.lv> \ No newline at end of file
diff --git a/tests/php/Email auto links.xhtml b/tests/php/Email auto links.xhtml
new file mode 100644
index 0000000..a32c408
--- /dev/null
+++ b/tests/php/Email auto links.xhtml
@@ -0,0 +1,3 @@
+<p><a href="&#109;&#x61;&#105;&#x6c;&#116;&#x6f;&#58;&#x6d;&#105;&#x63;&#104;&#x65;&#108;&#x2e;&#102;&#x6f;&#114;&#x74;&#105;&#x6e;&#64;&#x6d;&#105;&#x63;&#104;&#x65;&#108;&#x66;&#46;&#x63;&#111;&#x6d;">&#x6d;&#105;&#x63;&#104;&#x65;&#108;&#x2e;&#102;&#x6f;&#114;&#x74;&#105;&#x6e;&#64;&#x6d;&#105;&#x63;&#104;&#x65;&#108;&#x66;&#46;&#x63;&#111;&#x6d;</a></p>
+
+<p>International domain names: <a href="&#x6d;&#97;&#105;&#x6c;&#x74;&#111;&#58;&#x68;&#x65;&#108;&#112;&#x40;&#x74;ū&#x64;&#x61;&#108;&#105;ņ&#46;&#108;&#x76;">&#x68;&#x65;&#108;&#112;&#x40;&#x74;ū&#x64;&#x61;&#108;&#105;ņ&#46;&#108;&#x76;</a></p>
diff --git a/tests/php/Emphasis.text b/tests/php/Emphasis.text
new file mode 100644
index 0000000..88e93d4
--- /dev/null
+++ b/tests/php/Emphasis.text
@@ -0,0 +1,80 @@
+Combined emphasis:
+
+1. ***test test***
+2. ___test test___
+3. *test **test***
+4. **test *test***
+5. ***test* test**
+6. ***test** test*
+7. ***test* test**
+8. **test *test***
+9. *test **test***
+10. _test __test___
+11. __test _test___
+12. ___test_ test__
+13. ___test__ test_
+14. ___test_ test__
+15. __test _test___
+16. _test __test___
+
+
+Incorrect nesting:
+
+1. *test **test* test**
+2. _test __test_ test__
+3. **test *test** test*
+4. __test _test__ test_
+5. *test *test* test*
+6. _test _test_ test_
+7. **test **test** test**
+8. __test __test__ test__
+
+
+
+No emphasis:
+
+1. test* test *test
+2. test** test **test
+3. test_ test _test
+4. test__ test __test
+
+
+
+Middle-word emphasis (asterisks):
+
+1. *a*b
+2. a*b*
+3. a*b*c
+4. **a**b
+5. a**b**
+6. a**b**c
+
+
+Middle-word emphasis (underscore):
+
+1. _a_b
+2. a_b_
+3. a_b_c
+4. __a__b
+5. a__b__
+6. a__b__c
+
+my_precious_file.txt
+
+
+## Tricky Cases
+
+E**. **Test** TestTestTest
+
+E**. **Test** Test Test Test
+
+
+## Overlong emphasis
+
+Name: ____________
+Organization: ____
+Region/Country: __
+
+_____Cut here_____
+
+____Cut here____
diff --git a/tests/php/Emphasis.xhtml b/tests/php/Emphasis.xhtml
new file mode 100644
index 0000000..4879070
--- /dev/null
+++ b/tests/php/Emphasis.xhtml
@@ -0,0 +1,83 @@
+<p>Combined emphasis:</p>
+
+<ol>
+<li><strong><em>test test</em></strong></li>
+<li><strong><em>test test</em></strong></li>
+<li><em>test <strong>test</strong></em></li>
+<li><strong>test <em>test</em></strong></li>
+<li><strong><em>test</em> test</strong></li>
+<li><em><strong>test</strong> test</em></li>
+<li><strong><em>test</em> test</strong></li>
+<li><strong>test <em>test</em></strong></li>
+<li><em>test <strong>test</strong></em></li>
+<li><em>test <strong>test</strong></em></li>
+<li><strong>test <em>test</em></strong></li>
+<li><strong><em>test</em> test</strong></li>
+<li><em><strong>test</strong> test</em></li>
+<li><strong><em>test</em> test</strong></li>
+<li><strong>test <em>test</em></strong></li>
+<li><em>test <strong>test</strong></em></li>
+</ol>
+
+<p>Incorrect nesting:</p>
+
+<ol>
+<li>*test <strong>test* test</strong></li>
+<li>_test <strong>test_ test</strong></li>
+<li><strong>test *test</strong> test*</li>
+<li><strong>test _test</strong> test_</li>
+<li><em>test *test</em> test*</li>
+<li><em>test _test</em> test_</li>
+<li><strong>test **test</strong> test**</li>
+<li><strong>test __test</strong> test__</li>
+</ol>
+
+<p>No emphasis:</p>
+
+<ol>
+<li>test* test *test</li>
+<li>test** test **test</li>
+<li>test_ test _test</li>
+<li>test__ test __test</li>
+</ol>
+
+<p>Middle-word emphasis (asterisks):</p>
+
+<ol>
+<li><em>a</em>b</li>
+<li>a<em>b</em></li>
+<li>a<em>b</em>c</li>
+<li><strong>a</strong>b</li>
+<li>a<strong>b</strong></li>
+<li>a<strong>b</strong>c</li>
+</ol>
+
+<p>Middle-word emphasis (underscore):</p>
+
+<ol>
+<li><em>a</em>b</li>
+<li>a<em>b</em></li>
+<li>a<em>b</em>c</li>
+<li><strong>a</strong>b</li>
+<li>a<strong>b</strong></li>
+<li>a<strong>b</strong>c</li>
+</ol>
+
+<p>my<em>precious</em>file.txt</p>
+
+<h2>Tricky Cases</h2>
+
+<p>E**. <strong>Test</strong> TestTestTest</p>
+
+<p>E**. <strong>Test</strong> Test Test Test</p>
+
+
+<h2>Overlong emphasis</h2>
+
+<p>Name: ____________<br />
+Organization: ____<br />
+Region/Country: __</p>
+
+<p>_____Cut here_____</p>
+
+<p>____Cut here____</p> \ No newline at end of file
diff --git a/tests/php/Empty List Item.text b/tests/php/Empty List Item.text
new file mode 100644
index 0000000..3c4edba
--- /dev/null
+++ b/tests/php/Empty List Item.text
@@ -0,0 +1,35 @@
+With asterisks
+
+ * List item
+ *
+ * List item
+
+With numbers
+
+1. List item
+2.
+3. List item
+
+With hyphens
+
+- List item
+-
+- List item
+
+With asterisks
+
+ * List item
+ * List item
+ *
+
+With numbers
+
+1. List item
+2. List item
+3.
+
+With hyphens
+
+- List item
+- List item
+-
diff --git a/tests/php/Empty List Item.xhtml b/tests/php/Empty List Item.xhtml
new file mode 100644
index 0000000..02d86ed
--- /dev/null
+++ b/tests/php/Empty List Item.xhtml
@@ -0,0 +1,47 @@
+<p>With asterisks</p>
+
+<ul>
+<li>List item</li>
+<li></li>
+<li>List item</li>
+</ul>
+
+<p>With numbers</p>
+
+<ol>
+<li>List item</li>
+<li></li>
+<li>List item</li>
+</ol>
+
+<p>With hyphens</p>
+
+<ul>
+<li>List item</li>
+<li></li>
+<li>List item</li>
+</ul>
+
+<p>With asterisks</p>
+
+<ul>
+<li>List item</li>
+<li>List item</li>
+<li></li>
+</ul>
+
+<p>With numbers</p>
+
+<ol>
+<li>List item</li>
+<li>List item</li>
+<li></li>
+</ol>
+
+<p>With hyphens</p>
+
+<ul>
+<li>List item</li>
+<li>List item</li>
+<li></li>
+</ul> \ No newline at end of file
diff --git a/tests/php/Headers.text b/tests/php/Headers.text
new file mode 100644
index 0000000..3a39174
--- /dev/null
+++ b/tests/php/Headers.text
@@ -0,0 +1,9 @@
+Header ====== Header ------ ### Header
+
+ - - -
+
+Header ====== Paragraph Header ------ Paragraph ### Header Paragraph
+
+ - - -
+
+Paragraph Header ====== Paragraph Paragraph Header ------ Paragraph Paragraph ### Header Paragraph \ No newline at end of file
diff --git a/tests/php/Headers.xhtml b/tests/php/Headers.xhtml
new file mode 100644
index 0000000..3adb470
--- /dev/null
+++ b/tests/php/Headers.xhtml
@@ -0,0 +1,39 @@
+<h1>Header</h1>
+
+<h2>Header</h2>
+
+<h3>Header</h3>
+
+<hr />
+
+<h1>Header</h1>
+
+<p>Paragraph</p>
+
+<h2>Header</h2>
+
+<p>Paragraph</p>
+
+<h3>Header</h3>
+
+<p>Paragraph</p>
+
+<hr />
+
+<p>Paragraph</p>
+
+<h1>Header</h1>
+
+<p>Paragraph</p>
+
+<p>Paragraph</p>
+
+<h2>Header</h2>
+
+<p>Paragraph</p>
+
+<p>Paragraph</p>
+
+<h3>Header</h3>
+
+<p>Paragraph</p>
diff --git a/tests/php/Horizontal Rules.text b/tests/php/Horizontal Rules.text
new file mode 100644
index 0000000..8e2da0b
--- /dev/null
+++ b/tests/php/Horizontal Rules.text
@@ -0,0 +1,29 @@
+Horizontal rules:
+
+- - -
+
+* * *
+
+***
+
+---
+
+___
+
+Not horizontal rules (testing for a bug in 1.0.1j):
+
++++
+
+,,,
+
+===
+
+???
+
+AAA
+
+jjj
+
+j j j
+
+n n n
diff --git a/tests/php/Horizontal Rules.xhtml b/tests/php/Horizontal Rules.xhtml
new file mode 100644
index 0000000..b9170b1
--- /dev/null
+++ b/tests/php/Horizontal Rules.xhtml
@@ -0,0 +1,30 @@
+<p>Horizontal rules:</p>
+
+<hr />
+
+<hr />
+
+<hr />
+
+<hr />
+
+<hr />
+
+<p>Not horizontal rules (testing for a bug in 1.0.1j):</p>
+
+<p>+++</p>
+
+<p>,,,</p>
+
+<p>===</p>
+
+<p>???</p>
+
+<p>AAA</p>
+
+<p>jjj</p>
+
+<p>j j j</p>
+
+<p>n n n</p>
+
diff --git a/tests/php/Inline HTML (Simple).text b/tests/php/Inline HTML (Simple).text
new file mode 100644
index 0000000..9177105
--- /dev/null
+++ b/tests/php/Inline HTML (Simple).text
@@ -0,0 +1,15 @@
+With some attributes:
+
+<div id="test">
+ foo
+</div>
+
+<div id="test"
+ class="nono">
+ foo
+</div>
+
+Hr's:
+
+<hr class="foo"
+ id="bar" >
diff --git a/tests/php/Inline HTML (Simple).xhtml b/tests/php/Inline HTML (Simple).xhtml
new file mode 100644
index 0000000..facfefb
--- /dev/null
+++ b/tests/php/Inline HTML (Simple).xhtml
@@ -0,0 +1,15 @@
+<p>With some attributes:</p>
+
+<div id="test">
+ foo
+</div>
+
+<div id="test"
+ class="nono">
+ foo
+</div>
+
+<p>Hr's:</p>
+
+<hr class="foo"
+ id="bar" > \ No newline at end of file
diff --git a/tests/php/Inline HTML (Span).text b/tests/php/Inline HTML (Span).text
new file mode 100644
index 0000000..19028bb
--- /dev/null
+++ b/tests/php/Inline HTML (Span).text
@@ -0,0 +1,4 @@
+<abbr title="` **Attribute Content Is Not A Code Span** `">ACINACS</abbr>
+
+<abbr title="`first backtick!">SB</abbr>
+<abbr title="`second backtick!">SB</abbr> \ No newline at end of file
diff --git a/tests/php/Inline HTML (Span).xhtml b/tests/php/Inline HTML (Span).xhtml
new file mode 100644
index 0000000..4d18aff
--- /dev/null
+++ b/tests/php/Inline HTML (Span).xhtml
@@ -0,0 +1,4 @@
+<p><abbr title="` **Attribute Content Is Not A Code Span** `">ACINACS</abbr></p>
+
+<p><abbr title="`first backtick!">SB</abbr>
+<abbr title="`second backtick!">SB</abbr></p> \ No newline at end of file
diff --git a/tests/php/Inline HTML comments.text b/tests/php/Inline HTML comments.text
new file mode 100644
index 0000000..d57d00a
--- /dev/null
+++ b/tests/php/Inline HTML comments.text
@@ -0,0 +1,9 @@
+Paragraph one.
+
+<!-- double--dash (invalid SGML comment) -->
+
+Paragraph two.
+
+<!-- enclosed tag </div> -->
+
+The end.
diff --git a/tests/php/Inline HTML comments.xhtml b/tests/php/Inline HTML comments.xhtml
new file mode 100644
index 0000000..b45f014
--- /dev/null
+++ b/tests/php/Inline HTML comments.xhtml
@@ -0,0 +1,9 @@
+<p>Paragraph one.</p>
+
+<!-- double--dash (invalid SGML comment) -->
+
+<p>Paragraph two.</p>
+
+<!-- enclosed tag </div> -->
+
+<p>The end.</p>
diff --git a/tests/php/Ins & del.text b/tests/php/Ins & del.text
new file mode 100644
index 0000000..2d54c66
--- /dev/null
+++ b/tests/php/Ins & del.text
@@ -0,0 +1,17 @@
+Here is a block tag ins:
+
+<ins>
+<p>Some text</p>
+</ins>
+
+<ins>And here it is inside a paragraph.</ins>
+
+And here it is <ins>in the middle of</ins> a paragraph.
+
+<del>
+<p>Some text</p>
+</del>
+
+<del>And here is ins as a paragraph.</del>
+
+And here it is <del>in the middle of</del> a paragraph.
diff --git a/tests/php/Ins & del.xhtml b/tests/php/Ins & del.xhtml
new file mode 100644
index 0000000..60e8c5f
--- /dev/null
+++ b/tests/php/Ins & del.xhtml
@@ -0,0 +1,17 @@
+<p>Here is a block tag ins:</p>
+
+<ins>
+<p>Some text</p>
+</ins>
+
+<p><ins>And here it is inside a paragraph.</ins></p>
+
+<p>And here it is <ins>in the middle of</ins> a paragraph.</p>
+
+<del>
+<p>Some text</p>
+</del>
+
+<p><del>And here is ins as a paragraph.</del></p>
+
+<p>And here it is <del>in the middle of</del> a paragraph.</p>
diff --git a/tests/php/License b/tests/php/License
new file mode 100644
index 0000000..d511905
--- /dev/null
+++ b/tests/php/License
@@ -0,0 +1,339 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/tests/php/Links, inline style.text b/tests/php/Links, inline style.text
new file mode 100644
index 0000000..600a044
--- /dev/null
+++ b/tests/php/Links, inline style.text
@@ -0,0 +1 @@
+[silly URL w/ angle brackets](<?}]*+|&)>).
diff --git a/tests/php/Links, inline style.xhtml b/tests/php/Links, inline style.xhtml
new file mode 100644
index 0000000..d3e4d11
--- /dev/null
+++ b/tests/php/Links, inline style.xhtml
@@ -0,0 +1 @@
+<p><a href="?}]*+|&amp;)">silly URL w/ angle brackets</a>.</p>
diff --git a/tests/php/MD5 Hashes.text b/tests/php/MD5 Hashes.text
new file mode 100644
index 0000000..7e03221
--- /dev/null
+++ b/tests/php/MD5 Hashes.text
@@ -0,0 +1,11 @@
+# Character Escapes
+
+The MD5 value for `+` is "26b17225b626fb9238849fd60eabdf60".
+
+# HTML Blocks
+
+<p>test</p>
+
+The MD5 value for `<p>test</p>` is:
+
+6205333b793f34273d75379350b36826 \ No newline at end of file
diff --git a/tests/php/MD5 Hashes.xhtml b/tests/php/MD5 Hashes.xhtml
new file mode 100644
index 0000000..894e4aa
--- /dev/null
+++ b/tests/php/MD5 Hashes.xhtml
@@ -0,0 +1,11 @@
+<h1>Character Escapes</h1>
+
+<p>The MD5 value for <code>+</code> is "26b17225b626fb9238849fd60eabdf60".</p>
+
+<h1>HTML Blocks</h1>
+
+<p>test</p>
+
+<p>The MD5 value for <code>&lt;p&gt;test&lt;/p&gt;</code> is:</p>
+
+<p>6205333b793f34273d75379350b36826</p>
diff --git a/tests/php/Mixed OLs and ULs.text b/tests/php/Mixed OLs and ULs.text
new file mode 100644
index 0000000..cecde21
--- /dev/null
+++ b/tests/php/Mixed OLs and ULs.text
@@ -0,0 +1,13 @@
+* test
++ test
+- test
+
+1. test
+2. test
+
+* test
++ test
+- test
+
+1. test
+2. test
diff --git a/tests/php/Mixed OLs and ULs.xhtml b/tests/php/Mixed OLs and ULs.xhtml
new file mode 100644
index 0000000..0872aaa
--- /dev/null
+++ b/tests/php/Mixed OLs and ULs.xhtml
@@ -0,0 +1,21 @@
+<ul>
+<li>test</li>
+<li>test</li>
+<li>test</li>
+</ul>
+
+<ol>
+<li>test</li>
+<li>test</li>
+</ol>
+
+<ul>
+<li>test</li>
+<li>test</li>
+<li>test</li>
+</ul>
+
+<ol>
+<li>test</li>
+<li>test</li>
+</ol>
diff --git a/tests/php/Nesting.text b/tests/php/Nesting.text
new file mode 100644
index 0000000..791538c
--- /dev/null
+++ b/tests/php/Nesting.text
@@ -0,0 +1,11 @@
+Valid nesting:
+
+**[Link](url)**
+
+[**Link**](url)
+
+**[**Link**](url)**
+
+Invalid nesting:
+
+[[Link](url)](url) \ No newline at end of file
diff --git a/tests/php/Nesting.xhtml b/tests/php/Nesting.xhtml
new file mode 100644
index 0000000..37845d3
--- /dev/null
+++ b/tests/php/Nesting.xhtml
@@ -0,0 +1,11 @@
+<p>Valid nesting:</p>
+
+<p><strong><a href="url">Link</a></strong></p>
+
+<p><a href="url"><strong>Link</strong></a></p>
+
+<p><strong><a href="url"><strong>Link</strong></a></strong></p>
+
+<p>Invalid nesting:</p>
+
+<p><a href="url">[Link](url)</a></p>
diff --git a/tests/php/PHP-Specific Bugs.text b/tests/php/PHP-Specific Bugs.text
new file mode 100644
index 0000000..246b60d
--- /dev/null
+++ b/tests/php/PHP-Specific Bugs.text
@@ -0,0 +1,22 @@
+This tests for a bug where quotes escaped by PHP when using
+`preg_replace` with the `/e` modifier must be correctly unescaped
+(hence the `_UnslashQuotes` function found only in PHP Markdown).
+
+
+
+Headers below should appear exactly as they are typed (no backslash
+added or removed).
+
+Header "quoted\" again \\""
+===========================
+
+Header "quoted\" again \\""
+---------------------------
+
+### Header "quoted\" again \\"" ###
+
+
+
+Test with tabs for `_Detab`:
+
+ Code 'block' with some "tabs" and "quotes"
diff --git a/tests/php/PHP-Specific Bugs.xhtml b/tests/php/PHP-Specific Bugs.xhtml
new file mode 100644
index 0000000..c982417
--- /dev/null
+++ b/tests/php/PHP-Specific Bugs.xhtml
@@ -0,0 +1,17 @@
+<p>This tests for a bug where quotes escaped by PHP when using
+<code>preg_replace</code> with the <code>/e</code> modifier must be correctly unescaped
+(hence the <code>_UnslashQuotes</code> function found only in PHP Markdown).</p>
+
+<p>Headers below should appear exactly as they are typed (no backslash
+added or removed).</p>
+
+<h1>Header "quoted\" again \""</h1>
+
+<h2>Header "quoted\" again \""</h2>
+
+<h3>Header "quoted\" again \""</h3>
+
+<p>Test with tabs for <code>_Detab</code>:</p>
+
+<pre><code>Code 'block' with some "tabs" and "quotes"
+</code></pre>
diff --git a/tests/php/Parens in URL.text b/tests/php/Parens in URL.text
new file mode 100644
index 0000000..bb7be4f
--- /dev/null
+++ b/tests/php/Parens in URL.text
@@ -0,0 +1,14 @@
+[Inline link 1 with parens](/url\(test\) "title").
+
+[Inline link 2 with parens](</url\(test\)> "title").
+
+[Inline link 3 with non-escaped parens](/url(test) "title").
+
+[Inline link 4 with non-escaped parens](</url(test)> "title").
+
+[Reference link 1 with parens][1].
+
+[Reference link 2 with parens][2].
+
+ [1]: /url(test) "title"
+ [2]: </url(test)> "title"
diff --git a/tests/php/Parens in URL.xhtml b/tests/php/Parens in URL.xhtml
new file mode 100644
index 0000000..a81aa02
--- /dev/null
+++ b/tests/php/Parens in URL.xhtml
@@ -0,0 +1,11 @@
+<p><a href="/url(test)" title="title">Inline link 1 with parens</a>.</p>
+
+<p><a href="/url(test)" title="title">Inline link 2 with parens</a>.</p>
+
+<p><a href="/url(test)" title="title">Inline link 3 with non-escaped parens</a>.</p>
+
+<p><a href="/url(test)" title="title">Inline link 4 with non-escaped parens</a>.</p>
+
+<p><a href="/url(test)" title="title">Reference link 1 with parens</a>.</p>
+
+<p><a href="/url(test)" title="title">Reference link 2 with parens</a>.</p> \ No newline at end of file
diff --git a/tests/php/Quotes in attributes.text b/tests/php/Quotes in attributes.text
new file mode 100644
index 0000000..9792286
--- /dev/null
+++ b/tests/php/Quotes in attributes.text
@@ -0,0 +1,5 @@
+[Test](/"style="color:red)
+[Test](/'style='color:red)
+
+![](/"style="border-color:red;border-size:1px;border-style:solid)
+![](/'style='border-color:red;border-size:1px;border-style:solid)
diff --git a/tests/php/Quotes in attributes.xhtml b/tests/php/Quotes in attributes.xhtml
new file mode 100644
index 0000000..e3fcfd2
--- /dev/null
+++ b/tests/php/Quotes in attributes.xhtml
@@ -0,0 +1,5 @@
+<p><a href="/&quot;style=&quot;color:red">Test</a>
+<a href="/'style='color:red">Test</a></p>
+
+<p><img src="/&quot;style=&quot;border-color:red;border-size:1px;border-style:solid" alt="" />
+<img src="/'style='border-color:red;border-size:1px;border-style:solid" alt="" /></p>
diff --git a/tests/php/Tight blocks.text b/tests/php/Tight blocks.text
new file mode 100644
index 0000000..ae4cdcb
--- /dev/null
+++ b/tests/php/Tight blocks.text
@@ -0,0 +1 @@
+Paragraph and no space: * ciao Paragraph and 1 space: * ciao Paragraph and 3 spaces: * ciao Paragraph and 4 spaces: * ciao Paragraph before header: #Header Paragraph before blockquote: >Some quote. \ No newline at end of file
diff --git a/tests/php/Tight blocks.xhtml b/tests/php/Tight blocks.xhtml
new file mode 100644
index 0000000..8655430
--- /dev/null
+++ b/tests/php/Tight blocks.xhtml
@@ -0,0 +1,21 @@
+<p>Paragraph and no space:
+* ciao</p>
+
+<p>Paragraph and 1 space:
+ * ciao</p>
+
+<p>Paragraph and 3 spaces:
+ * ciao</p>
+
+<p>Paragraph and 4 spaces:
+ * ciao</p>
+
+<p>Paragraph before header:</p>
+
+<h1>Header</h1>
+
+<p>Paragraph before blockquote:</p>
+
+<blockquote>
+ <p>Some quote.</p>
+</blockquote>
diff --git a/tests/php/extra/Abbr.text b/tests/php/extra/Abbr.text
new file mode 100644
index 0000000..ae72f4e
--- /dev/null
+++ b/tests/php/extra/Abbr.text
@@ -0,0 +1,31 @@
+Some text about HTML, SGML and HTML4.
+
+Let's talk about the U.S.A., (É.U. or É.-U. d'A. in French).
+
+*[HTML4]: Hyper Text Markup Language version 4
+*[HTML]: Hyper Text Markup Language
+*[SGML]: Standard Generalized Markup Language
+*[U.S.A.]: United States of America
+*[É.U.] : États-Unis d'Amérique
+*[É.-U. d'A.] : États-Unis d'Amérique
+
+And here we have a CD, some CDs, and some other CD's.
+
+*[CD]: Compact Disk
+
+Let's transfert documents through TCP/IP, using TCP packets.
+
+*[IP]: Internet Protocol
+*[TCP]: Transmission Control Protocol
+
+ ---
+
+Bienvenue sur [CMS](http://www.bidulecms.com "Bidule CMS").
+
+*[CMS]: Content Management System
+
+ ---
+
+ATCCE
+
+*[ATCCE]: Abbreviation "Testing" Correct 'Character' < Escapes > \ No newline at end of file
diff --git a/tests/php/extra/Abbr.xhtml b/tests/php/extra/Abbr.xhtml
new file mode 100644
index 0000000..8beaa2e
--- /dev/null
+++ b/tests/php/extra/Abbr.xhtml
@@ -0,0 +1,15 @@
+<p>Some text about <abbr title="Hyper Text Markup Language">HTML</abbr>, <abbr title="Standard Generalized Markup Language">SGML</abbr> and <abbr title="Hyper Text Markup Language version 4">HTML4</abbr>.</p>
+
+<p>Let's talk about the <abbr title="United States of America">U.S.A.</abbr>, (<abbr title="États-Unis d'Amérique">É.U.</abbr> or <abbr title="États-Unis d'Amérique">É.-U. d'A.</abbr> in French).</p>
+
+<p>And here we have a <abbr title="Compact Disk">CD</abbr>, some CDs, and some other <abbr title="Compact Disk">CD</abbr>'s.</p>
+
+<p>Let's transfert documents through <abbr title="Transmission Control Protocol">TCP</abbr>/<abbr title="Internet Protocol">IP</abbr>, using <abbr title="Transmission Control Protocol">TCP</abbr> packets.</p>
+
+<hr />
+
+<p>Bienvenue sur <a href="http://www.bidulecms.com" title="Bidule CMS"><abbr title="Content Management System">CMS</abbr></a>.</p>
+
+<hr />
+
+<p><abbr title="Abbreviation &quot;Testing&quot; Correct 'Character' &lt; Escapes &gt;">ATCCE</abbr></p>
diff --git a/tests/php/extra/Definition Lists.text b/tests/php/extra/Definition Lists.text
new file mode 100644
index 0000000..5b3bdb6
--- /dev/null
+++ b/tests/php/extra/Definition Lists.text
@@ -0,0 +1,115 @@
+A simple definition list:
+
+Term 1
+: Definition 1
+
+Term 2
+: Definition 2
+
+With multiple terms:
+
+Term 1
+Term 2
+: Definition 1
+
+Term 3
+Term 4
+: Definition 2
+
+With multiple definitions:
+
+Term 1
+: Definition 1
+: Definition 2
+
+Term 2
+: Definition 3
+: Definition 4
+
+With multiple lines per definition:
+
+Term 1
+: Definition 1 line 1 ...
+Definition 1 line 2
+: Definition 2 line 1 ...
+Definition 2 line 2
+
+Term 2
+: Definition 3 line 2 ...
+ Definition 3 line 2
+: Definition 4 line 2 ...
+ Definition 4 line 2
+
+With paragraphs:
+
+Term 1
+
+: Definition 1 (paragraph)
+
+Term 2
+
+: Definition 2 (paragraph)
+
+With multiple paragraphs:
+
+Term 1
+
+: Definition 1 paragraph 1 line 1 ...
+ Definition 1 paragraph 1 line 2
+
+ Definition 1 paragraph 2 line 1 ...
+ Definition 1 paragraph 2 line 2
+
+Term 2
+
+: Definition 1 paragraph 1 line 1 ...
+Definition 1 paragraph 1 line 2 (lazy)
+
+ Definition 1 paragraph 2 line 1 ...
+Definition 1 paragraph 2 line 2 (lazy)
+
+* * *
+
+A mix:
+
+Term 1
+Term 2
+
+: Definition 1 paragraph 1 line 1 ...
+Definition 1 paragraph 1 line 2 (lazy)
+
+ Definition 1 paragraph 2 line 1 ...
+ Definition 1 paragraph 2 line 2
+
+: Definition 2 paragraph 1 line 1 ...
+Definition 2 paragraph 1 line 2 (lazy)
+
+Term 3
+: Definition 3 (no paragraph)
+: Definition 4 (no paragraph)
+: Definition 5 line 1 ...
+ Definition 5 line 2 (no paragraph)
+
+: Definition 6 paragraph 1 line 1 ...
+Definition 6 paragraph 1 line 2
+: Definition 7 (no paragraph)
+: Definition 8 paragraph 1 line 1 (forced paragraph) ...
+ Definition 8 paragraph 1 line 2
+
+ Definition 8 paragraph 2 line 1
+
+Term 4
+: Definition 9 paragraph 1 line 1 (forced paragraph) ...
+ Definition 9 paragraph 1 line 2
+
+ Definition 9 paragraph 2 line 1
+: Definition 10 (no paragraph)
+
+* * *
+
+Special cases:
+
+Term
+
+: code block
+ as first element of a definition \ No newline at end of file
diff --git a/tests/php/extra/Definition Lists.xhtml b/tests/php/extra/Definition Lists.xhtml
new file mode 100644
index 0000000..f99f456
--- /dev/null
+++ b/tests/php/extra/Definition Lists.xhtml
@@ -0,0 +1,155 @@
+<p>A simple definition list:</p>
+
+<dl>
+<dt>Term 1</dt>
+<dd>Definition 1</dd>
+
+<dt>Term 2</dt>
+<dd>Definition 2</dd>
+</dl>
+
+<p>With multiple terms:</p>
+
+<dl>
+<dt>Term 1</dt>
+<dt>Term 2</dt>
+<dd>Definition 1</dd>
+
+<dt>Term 3</dt>
+<dt>Term 4</dt>
+<dd>Definition 2</dd>
+</dl>
+
+<p>With multiple definitions:</p>
+
+<dl>
+<dt>Term 1</dt>
+<dd>Definition 1</dd>
+
+<dd>Definition 2</dd>
+
+<dt>Term 2</dt>
+<dd>Definition 3</dd>
+
+<dd>Definition 4</dd>
+</dl>
+
+<p>With multiple lines per definition:</p>
+
+<dl>
+<dt>Term 1</dt>
+<dd>Definition 1 line 1 ...
+Definition 1 line 2</dd>
+
+<dd>Definition 2 line 1 ...
+Definition 2 line 2</dd>
+
+<dt>Term 2</dt>
+<dd>Definition 3 line 2 ...
+Definition 3 line 2</dd>
+
+<dd>Definition 4 line 2 ...
+Definition 4 line 2</dd>
+</dl>
+
+<p>With paragraphs:</p>
+
+<dl>
+<dt>Term 1</dt>
+<dd>
+<p>Definition 1 (paragraph)</p>
+</dd>
+
+<dt>Term 2</dt>
+<dd>
+<p>Definition 2 (paragraph)</p>
+</dd>
+</dl>
+
+<p>With multiple paragraphs:</p>
+
+<dl>
+<dt>Term 1</dt>
+<dd>
+<p>Definition 1 paragraph 1 line 1 ...
+Definition 1 paragraph 1 line 2</p>
+
+<p>Definition 1 paragraph 2 line 1 ...
+Definition 1 paragraph 2 line 2</p>
+</dd>
+
+<dt>Term 2</dt>
+<dd>
+<p>Definition 1 paragraph 1 line 1 ...
+Definition 1 paragraph 1 line 2 (lazy)</p>
+
+<p>Definition 1 paragraph 2 line 1 ...
+Definition 1 paragraph 2 line 2 (lazy)</p>
+</dd>
+</dl>
+
+<hr />
+
+<p>A mix:</p>
+
+<dl>
+<dt>Term 1</dt>
+<dt>Term 2</dt>
+<dd>
+<p>Definition 1 paragraph 1 line 1 ...
+Definition 1 paragraph 1 line 2 (lazy)</p>
+
+<p>Definition 1 paragraph 2 line 1 ...
+Definition 1 paragraph 2 line 2</p>
+</dd>
+
+<dd>
+<p>Definition 2 paragraph 1 line 1 ...
+Definition 2 paragraph 1 line 2 (lazy)</p>
+</dd>
+
+<dt>Term 3</dt>
+<dd>Definition 3 (no paragraph)</dd>
+
+<dd>Definition 4 (no paragraph)</dd>
+
+<dd>Definition 5 line 1 ...
+Definition 5 line 2 (no paragraph)</dd>
+
+<dd>
+<p>Definition 6 paragraph 1 line 1 ...
+Definition 6 paragraph 1 line 2</p>
+</dd>
+
+<dd>Definition 7 (no paragraph)</dd>
+
+<dd>
+<p>Definition 8 paragraph 1 line 1 (forced paragraph) ...
+Definition 8 paragraph 1 line 2</p>
+
+<p>Definition 8 paragraph 2 line 1</p>
+</dd>
+
+<dt>Term 4</dt>
+<dd>
+<p>Definition 9 paragraph 1 line 1 (forced paragraph) ...
+Definition 9 paragraph 1 line 2</p>
+
+<p>Definition 9 paragraph 2 line 1</p>
+</dd>
+
+<dd>Definition 10 (no paragraph)</dd>
+</dl>
+
+<hr />
+
+<p>Special cases:</p>
+
+<dl>
+<dt>Term</dt>
+<dd>
+<pre><code>code block
+as first element of a definition
+</code></pre>
+</dd>
+</dl>
diff --git a/tests/php/extra/Emphasis.text b/tests/php/extra/Emphasis.text
new file mode 100644
index 0000000..88e93d4
--- /dev/null
+++ b/tests/php/extra/Emphasis.text
@@ -0,0 +1,80 @@
+Combined emphasis:
+
+1. ***test test***
+2. ___test test___
+3. *test **test***
+4. **test *test***
+5. ***test* test**
+6. ***test** test*
+7. ***test* test**
+8. **test *test***
+9. *test **test***
+10. _test __test___
+11. __test _test___
+12. ___test_ test__
+13. ___test__ test_
+14. ___test_ test__
+15. __test _test___
+16. _test __test___
+
+
+Incorrect nesting:
+
+1. *test **test* test**
+2. _test __test_ test__
+3. **test *test** test*
+4. __test _test__ test_
+5. *test *test* test*
+6. _test _test_ test_
+7. **test **test** test**
+8. __test __test__ test__
+
+
+
+No emphasis:
+
+1. test* test *test
+2. test** test **test
+3. test_ test _test
+4. test__ test __test
+
+
+
+Middle-word emphasis (asterisks):
+
+1. *a*b
+2. a*b*
+3. a*b*c
+4. **a**b
+5. a**b**
+6. a**b**c
+
+
+Middle-word emphasis (underscore):
+
+1. _a_b
+2. a_b_
+3. a_b_c
+4. __a__b
+5. a__b__
+6. a__b__c
+
+my_precious_file.txt
+
+
+## Tricky Cases
+
+E**. **Test** TestTestTest
+
+E**. **Test** Test Test Test
+
+
+## Overlong emphasis
+
+Name: ____________
+Organization: ____
+Region/Country: __
+
+_____Cut here_____
+
+____Cut here____
diff --git a/tests/php/extra/Emphasis.xhtml b/tests/php/extra/Emphasis.xhtml
new file mode 100644
index 0000000..1fa8218
--- /dev/null
+++ b/tests/php/extra/Emphasis.xhtml
@@ -0,0 +1,83 @@
+<p>Combined emphasis:</p>
+
+<ol>
+<li><strong><em>test test</em></strong></li>
+<li><strong><em>test test</em></strong></li>
+<li><em>test <strong>test</strong></em></li>
+<li><strong>test <em>test</em></strong></li>
+<li><strong><em>test</em> test</strong></li>
+<li><em><strong>test</strong> test</em></li>
+<li><strong><em>test</em> test</strong></li>
+<li><strong>test <em>test</em></strong></li>
+<li><em>test <strong>test</strong></em></li>
+<li><em>test <strong>test</strong></em></li>
+<li><strong>test <em>test</em></strong></li>
+<li><strong><em>test</em> test</strong></li>
+<li><em><strong>test</strong> test</em></li>
+<li><strong><em>test</em> test</strong></li>
+<li><strong>test <em>test</em></strong></li>
+<li><em>test <strong>test</strong></em></li>
+</ol>
+
+<p>Incorrect nesting:</p>
+
+<ol>
+<li>*test <strong>test* test</strong></li>
+<li>_test <strong>test_ test</strong></li>
+<li><strong>test *test</strong> test*</li>
+<li><strong>test _test</strong> test_</li>
+<li><em>test *test</em> test*</li>
+<li><em>test _test</em> test_</li>
+<li><strong>test **test</strong> test**</li>
+<li><strong>test __test</strong> test__</li>
+</ol>
+
+<p>No emphasis:</p>
+
+<ol>
+<li>test* test *test</li>
+<li>test** test **test</li>
+<li>test_ test _test</li>
+<li>test__ test __test</li>
+</ol>
+
+<p>Middle-word emphasis (asterisks):</p>
+
+<ol>
+<li><em>a</em>b</li>
+<li>a<em>b</em></li>
+<li>a<em>b</em>c</li>
+<li><strong>a</strong>b</li>
+<li>a<strong>b</strong></li>
+<li>a<strong>b</strong>c</li>
+</ol>
+
+<p>Middle-word emphasis (underscore):</p>
+
+<ol>
+<li>_a_b</li>
+<li>a_b_</li>
+<li>a_b_c</li>
+<li>__a__b</li>
+<li>a__b__</li>
+<li>a__b__c</li>
+</ol>
+
+<p>my_precious_file.txt</p>
+
+<h2>Tricky Cases</h2>
+
+<p>E**. <strong>Test</strong> TestTestTest</p>
+
+<p>E**. <strong>Test</strong> Test Test Test</p>
+
+
+<h2>Overlong emphasis</h2>
+
+<p>Name: ____________<br />
+Organization: ____<br />
+Region/Country: __</p>
+
+<p>_____Cut here_____</p>
+
+<p>____Cut here____</p>
diff --git a/tests/php/extra/Fenced Code Blocks.text b/tests/php/extra/Fenced Code Blocks.text
new file mode 100644
index 0000000..f2400ff
--- /dev/null
+++ b/tests/php/extra/Fenced Code Blocks.text
@@ -0,0 +1,60 @@
+~~~
+Fenced
+~~~
+
+Code block starting and ending with empty lines:
+~~~
+
+
+Fenced
+
+
+~~~
+
+Indented code block containing fenced code block sample:
+
+ ~~~
+ Fenced
+ ~~~
+
+Fenced code block with indented code block sample:
+
+~~~
+Some text
+
+ Indented code block sample code
+~~~
+
+Fenced code block with long markers:
+
+~~~~~~~~~~~~~~~~~~
+Fenced
+~~~~~~~~~~~~~~~~~~
+
+Fenced code block with fenced code block markers of different length in it:
+
+~~~~
+In code block
+~~~
+Still in code block
+~~~~~
+Still in code block
+~~~~
+
+Fenced code block with Markdown header and horizontal rule:
+
+~~~
+#test
+---
+~~~
+
+Fenced code block with link definitions, footnote definition and
+abbreviation definitions:
+
+~~~
+[example]: http://example.com/
+
+[^1]: Footnote def
+
+*[HTML]: HyperText Markup Language
+~~~ \ No newline at end of file
diff --git a/tests/php/extra/Fenced Code Blocks.xhtml b/tests/php/extra/Fenced Code Blocks.xhtml
new file mode 100644
index 0000000..518908c
--- /dev/null
+++ b/tests/php/extra/Fenced Code Blocks.xhtml
@@ -0,0 +1,53 @@
+<pre><code>Fenced
+</code></pre>
+
+<p>Code block starting and ending with empty lines:</p>
+
+<pre><code><br /><br />Fenced
+
+
+</code></pre>
+
+<p>Indented code block containing fenced code block sample:</p>
+
+<pre><code>~~~
+Fenced
+~~~
+</code></pre>
+
+<p>Fenced code block with indented code block sample:</p>
+
+<pre><code>Some text
+
+ Indented code block sample code
+</code></pre>
+
+<p>Fenced code block with long markers:</p>
+
+<pre><code>Fenced
+</code></pre>
+
+<p>Fenced code block with fenced code block markers of different length in it:</p>
+
+<pre><code>In code block
+~~~
+Still in code block
+~~~~~
+Still in code block
+</code></pre>
+
+<p>Fenced code block with Markdown header and horizontal rule:</p>
+
+<pre><code>#test
+---
+</code></pre>
+
+<p>Fenced code block with link definitions, footnote definition and
+abbreviation definitions:</p>
+
+<pre><code>[example]: http://example.com/
+
+[^1]: Footnote def
+
+*[HTML]: HyperText Markup Language
+</code></pre>
diff --git a/tests/php/extra/Footnotes.text b/tests/php/extra/Footnotes.text
new file mode 100644
index 0000000..40192e9
--- /dev/null
+++ b/tests/php/extra/Footnotes.text
@@ -0,0 +1,61 @@
+This is the first paragraph.[^first]
+
+[^first]: This is the first note.
+
+* List item one.[^second]
+* List item two.[^third]
+
+[^third]: This is the third note, defined out of order.
+[^second]: This is the second note.
+[^fourth]: This is the fourth note.
+
+# Header[^fourth]
+
+Some paragraph with a footnote[^1], and another[^2].
+
+[^1]: Content for fifth footnote.
+[^2]: Content for sixth footnote spaning on
+ three lines, with some span-level markup like
+ _emphasis_, a [link][].
+
+[link]: http://www.michelf.com/
+
+Another paragraph with a named footnote[^fn-name].
+
+[^fn-name]:
+ Footnote beginning on the line next to the marker.
+
+This paragraph should not have a footnote marker since
+the footnote is undefined.[^3]
+
+This paragraph should not have a footnote marker since
+the footnote has already been used before.[^1]
+
+This paragraph links to a footnote with plenty of
+block-level content.[^block]
+
+[^block]:
+ Paragraph.
+
+ * List item
+
+ > Blockquote
+
+ Code block
+
+This paragraph host the footnote reference within a
+footnote test[^reference].
+
+[^reference]:
+ This footnote has a footnote of its own.[^nested]
+
+[^nested]:
+ This footnote should appear even though as it is refered
+ from another footnote. But [^reference] should be litteral
+ since the footnote with that name has already been used.
+
+ - - -
+
+Testing unusual footnote name[^1$^!"'].
+
+[^1$^!"']: Haha!
diff --git a/tests/php/extra/Footnotes.xhtml b/tests/php/extra/Footnotes.xhtml
new file mode 100644
index 0000000..e33639d
--- /dev/null
+++ b/tests/php/extra/Footnotes.xhtml
@@ -0,0 +1,96 @@
+<p>This is the first paragraph.<sup id="fnref:first"><a href="#fn:first" rel="footnote">1</a></sup></p>
+
+<ul>
+<li>List item one.<sup id="fnref:second"><a href="#fn:second" rel="footnote">2</a></sup></li>
+<li>List item two.<sup id="fnref:third"><a href="#fn:third" rel="footnote">3</a></sup></li>
+</ul>
+
+<h1>Header<sup id="fnref:fourth"><a href="#fn:fourth" rel="footnote">4</a></sup></h1>
+
+<p>Some paragraph with a footnote<sup id="fnref:1"><a href="#fn:1" rel="footnote">5</a></sup>, and another<sup id="fnref:2"><a href="#fn:2" rel="footnote">6</a></sup>.</p>
+
+<p>Another paragraph with a named footnote<sup id="fnref:fn-name"><a href="#fn:fn-name" rel="footnote">7</a></sup>.</p>
+
+<p>This paragraph should not have a footnote marker since
+the footnote is undefined.[^3]</p>
+
+<p>This paragraph should not have a footnote marker since
+the footnote has already been used before.[^1]</p>
+
+<p>This paragraph links to a footnote with plenty of
+block-level content.<sup id="fnref:block"><a href="#fn:block" rel="footnote">8</a></sup></p>
+
+<p>This paragraph host the footnote reference within a
+footnote test<sup id="fnref:reference"><a href="#fn:reference" rel="footnote">9</a></sup>.</p>
+
+<hr />
+
+<p>Testing unusual footnote name<sup id="fnref:1$^!&quot;'"><a href="#fn:1$^!&quot;'" rel="footnote">10</a></sup>.</p>
+
+<div class="footnotes">
+<hr />
+<ol>
+
+<li id="fn:first">
+<p>This is the first note.&#160;<a href="#fnref:first" rev="footnote">&#8617;</a></p>
+</li>
+
+<li id="fn:second">
+<p>This is the second note.&#160;<a href="#fnref:second" rev="footnote">&#8617;</a></p>
+</li>
+
+<li id="fn:third">
+<p>This is the third note, defined out of order.&#160;<a href="#fnref:third" rev="footnote">&#8617;</a></p>
+</li>
+
+<li id="fn:fourth">
+<p>This is the fourth note.&#160;<a href="#fnref:fourth" rev="footnote">&#8617;</a></p>
+</li>
+
+<li id="fn:1">
+<p>Content for fifth footnote.&#160;<a href="#fnref:1" rev="footnote">&#8617;</a></p>
+</li>
+
+<li id="fn:2">
+<p>Content for sixth footnote spaning on
+three lines, with some span-level markup like
+<em>emphasis</em>, a <a href="http://www.michelf.com/">link</a>.&#160;<a href="#fnref:2" rev="footnote">&#8617;</a></p>
+</li>
+
+<li id="fn:fn-name">
+<p>Footnote beginning on the line next to the marker.&#160;<a href="#fnref:fn-name" rev="footnote">&#8617;</a></p>
+</li>
+
+<li id="fn:block">
+<p>Paragraph.</p>
+
+<ul>
+<li>List item</li>
+</ul>
+
+<blockquote>
+ <p>Blockquote</p>
+</blockquote>
+
+<pre><code>Code block
+</code></pre>
+
+<p><a href="#fnref:block" rev="footnote">&#8617;</a></p>
+</li>
+
+<li id="fn:reference">
+<p>This footnote has a footnote of its own.<sup id="fnref:nested"><a href="#fn:nested" rel="footnote">11</a></sup>&#160;<a href="#fnref:reference" rev="footnote">&#8617;</a></p>
+</li>
+
+<li id="fn:1$^!&quot;'">
+<p>Haha!&#160;<a href="#fnref:1$^!&quot;'" rev="footnote">&#8617;</a></p>
+</li>
+
+<li id="fn:nested">
+<p>This footnote should appear even though as it is refered
+from another footnote. But [^reference] should be litteral
+since the footnote with that name has already been used.&#160;<a href="#fnref:nested" rev="footnote">&#8617;</a></p>
+</li>
+
+</ol>
+</div>
diff --git a/tests/php/extra/Inline HTML with Markdown content.text b/tests/php/extra/Inline HTML with Markdown content.text
new file mode 100644
index 0000000..1eb5450
--- /dev/null
+++ b/tests/php/extra/Inline HTML with Markdown content.text
@@ -0,0 +1,104 @@
+# Markdown inside code blocks
+
+<div markdown="1">
+foo
+</div>
+
+<div markdown='1'>
+foo
+</div>
+
+<div markdown=1>
+foo
+</div>
+
+<table>
+<tr><td markdown="1">test _emphasis_ (span)</td></tr>
+</table>
+
+<table>
+<tr><td markdown="span">test _emphasis_ (span)</td></tr>
+</table>
+
+<table>
+<tr><td markdown="block">test _emphasis_ (block)</td></tr>
+</table>
+
+## More complicated
+
+<table>
+<tr><td markdown="1">
+* this is _not_ a list item</td></tr>
+<tr><td markdown="span">
+* this is _not_ a list item</td></tr>
+<tr><td markdown="block">
+* this _is_ a list item
+</td></tr>
+</table>
+
+## With indent
+
+<div>
+ <div markdown="1">
+ This text is no code block: if it was, the
+ closing `<div>` would be too and the HTML block
+ would be invalid.
+
+ Markdown content in HTML blocks is assumed to be
+ indented the same as the block opening tag.
+
+ **This should be the third paragraph after the header.**
+ </div>
+</div>
+
+## Code block with rogue `</div>`s in Markdown code span and block
+
+<div>
+ <div markdown="1">
+
+ This is a code block however:
+
+ </div>
+
+ Funny isn't it? Here is a code span: `</div>`.
+
+ </div>
+</div>
+
+<div>
+ <div markdown="1">
+ * List item, not a code block
+
+Some text
+
+ This is a code block.
+ </div>
+</div>
+
+## No code block in markdown span mode
+
+<p markdown="1">
+ This is not a code block since Markdown parse paragraph
+ content as span. Code spans like `</p>` are allowed though.
+</p>
+
+<p markdown="1">_Hello_ _world_</p>
+
+## Preserving attributes and tags on more than one line:
+
+<p class="test" markdown="1"
+id="12">
+Some _span_ content.
+</p>
+
+
+## Header confusion bug
+
+<table class="canvas">
+<tr>
+<td id="main" markdown="1">Hello World!
+============
+
+Hello World!</td>
+</tr>
+</table>
diff --git a/tests/php/extra/Inline HTML with Markdown content.xhtml b/tests/php/extra/Inline HTML with Markdown content.xhtml
new file mode 100644
index 0000000..4751f78
--- /dev/null
+++ b/tests/php/extra/Inline HTML with Markdown content.xhtml
@@ -0,0 +1,125 @@
+<h1>Markdown inside code blocks</h1>
+
+<div>
+
+<p>foo</p>
+
+</div>
+
+<div>
+
+<p>foo</p>
+
+</div>
+
+<div>
+
+<p>foo</p>
+
+</div>
+
+<table>
+<tr><td>test <em>emphasis</em> (span)</td></tr>
+</table>
+
+<table>
+<tr><td>test <em>emphasis</em> (span)</td></tr>
+</table>
+
+<table>
+<tr><td>
+
+<p>test <em>emphasis</em> (block)</p>
+
+</td></tr>
+</table>
+
+<h2>More complicated</h2>
+
+<table>
+<tr><td>
+* this is <em>not</em> a list item</td></tr>
+<tr><td>
+* this is <em>not</em> a list item</td></tr>
+<tr><td>
+
+<ul>
+<li>this <em>is</em> a list item</li>
+</ul>
+
+</td></tr>
+</table>
+
+<h2>With indent</h2>
+
+<div>
+ <div>
+
+<p>This text is no code block: if it was, the
+closing <code>&lt;div&gt;</code> would be too and the HTML block
+would be invalid.</p>
+
+<p>Markdown content in HTML blocks is assumed to be
+indented the same as the block opening tag.</p>
+
+<p><strong>This should be the third paragraph after the header.</strong></p>
+
+</div>
+</div>
+
+<h2>Code block with rogue <code>&lt;/div&gt;</code>s in Markdown code span and block</h2>
+
+<div>
+ <div>
+
+<p>This is a code block however:</p>
+
+<pre><code>&lt;/div&gt;
+</code></pre>
+
+<p>Funny isn't it? Here is a code span: <code>&lt;/div&gt;</code>.</p>
+
+</div>
+</div>
+
+<div>
+ <div>
+
+<ul>
+<li>List item, not a code block</li>
+</ul>
+
+<p>Some text</p>
+
+<pre><code>This is a code block.
+</code></pre>
+
+</div>
+</div>
+
+<h2>No code block in markdown span mode</h2>
+
+<p>
+ This is not a code block since Markdown parse paragraph
+ content as span. Code spans like <code>&lt;/p&gt;</code> are allowed though.
+</p>
+
+<p><em>Hello</em> <em>world</em></p>
+
+<h2>Preserving attributes and tags on more than one line:</h2>
+
+<p class="test"
+id="12">
+Some <em>span</em> content.
+</p>
+
+<h2>Header confusion bug</h2>
+
+<table class="canvas">
+<tr>
+<td id="main">Hello World!
+============
+
+Hello World!</td>
+</tr>
+</table> \ No newline at end of file
diff --git a/tests/php/extra/Tables.text b/tests/php/extra/Tables.text
new file mode 100644
index 0000000..71b93ca
--- /dev/null
+++ b/tests/php/extra/Tables.text
@@ -0,0 +1,104 @@
+# Simple tables
+
+Header 1 | Header 2
+--------- | ---------
+Cell 1 | Cell 2
+Cell 3 | Cell 4
+
+With leading pipes:
+
+| Header 1 | Header 2
+| --------- | ---------
+| Cell 1 | Cell 2
+| Cell 3 | Cell 4
+
+With tailing pipes:
+
+Header 1 | Header 2 |
+--------- | --------- |
+Cell 1 | Cell 2 |
+Cell 3 | Cell 4 |
+
+With leading and tailing pipes:
+
+| Header 1 | Header 2 |
+| --------- | --------- |
+| Cell 1 | Cell 2 |
+| Cell 3 | Cell 4 |
+
+* * *
+
+# One-column one-row table
+
+With leading pipes:
+
+| Header
+| -------
+| Cell
+
+With tailing pipes:
+
+Header |
+------- |
+Cell |
+
+With leading and tailing pipes:
+
+| Header |
+| ------- |
+| Cell |
+
+* * *
+
+Table alignement:
+
+| Default | Right | Center | Left |
+| --------- |:--------- |:---------:| ---------:|
+| Long Cell | Long Cell | Long Cell | Long Cell |
+| Cell | Cell | Cell | Cell |
+
+Table alignement (alternate spacing):
+
+| Default | Right | Center | Left |
+| --------- | :-------- | :-------: | --------: |
+| Long Cell | Long Cell | Long Cell | Long Cell |
+| Cell | Cell | Cell | Cell |
+
+* * *
+
+# Empty cells
+
+| Header 1 | Header 2 |
+| --------- | --------- |
+| A | B |
+| C | |
+
+Header 1 | Header 2
+--------- | ---------
+A | B
+ | D
+
+* * *
+
+# Missing tailing pipe
+
+Header 1 | Header 2
+--------- | --------- |
+Cell | Cell |
+Cell | Cell |
+
+Header 1 | Header 2 |
+--------- | ---------
+Cell | Cell |
+Cell | Cell |
+
+Header 1 | Header 2 |
+--------- | --------- |
+Cell | Cell
+Cell | Cell |
+
+Header 1 | Header 2 |
+--------- | --------- |
+Cell | Cell |
+Cell | Cell
+
diff --git a/tests/php/extra/Tables.xhtml b/tests/php/extra/Tables.xhtml
new file mode 100644
index 0000000..e36286c
--- /dev/null
+++ b/tests/php/extra/Tables.xhtml
@@ -0,0 +1,310 @@
+<h1>Simple tables</h1>
+
+<table>
+<thead>
+<tr>
+ <th>Header 1</th>
+ <th>Header 2</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+ <td>Cell 1</td>
+ <td>Cell 2</td>
+</tr>
+<tr>
+ <td>Cell 3</td>
+ <td>Cell 4</td>
+</tr>
+</tbody>
+</table>
+
+<p>With leading pipes:</p>
+
+<table>
+<thead>
+<tr>
+ <th>Header 1</th>
+ <th>Header 2</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+ <td>Cell 1</td>
+ <td>Cell 2</td>
+</tr>
+<tr>
+ <td>Cell 3</td>
+ <td>Cell 4</td>
+</tr>
+</tbody>
+</table>
+
+<p>With tailing pipes:</p>
+
+<table>
+<thead>
+<tr>
+ <th>Header 1</th>
+ <th>Header 2</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+ <td>Cell 1</td>
+ <td>Cell 2</td>
+</tr>
+<tr>
+ <td>Cell 3</td>
+ <td>Cell 4</td>
+</tr>
+</tbody>
+</table>
+
+<p>With leading and tailing pipes:</p>
+
+<table>
+<thead>
+<tr>
+ <th>Header 1</th>
+ <th>Header 2</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+ <td>Cell 1</td>
+ <td>Cell 2</td>
+</tr>
+<tr>
+ <td>Cell 3</td>
+ <td>Cell 4</td>
+</tr>
+</tbody>
+</table>
+
+<hr />
+
+<h1>One-column one-row table</h1>
+
+<p>With leading pipes:</p>
+
+<table>
+<thead>
+<tr>
+ <th>Header</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+ <td>Cell</td>
+</tr>
+</tbody>
+</table>
+
+<p>With tailing pipes:</p>
+
+<table>
+<thead>
+<tr>
+ <th>Header</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+ <td>Cell</td>
+</tr>
+</tbody>
+</table>
+
+<p>With leading and tailing pipes:</p>
+
+<table>
+<thead>
+<tr>
+ <th>Header</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+ <td>Cell</td>
+</tr>
+</tbody>
+</table>
+
+<hr />
+
+<p>Table alignement:</p>
+
+<table>
+<thead>
+<tr>
+ <th>Default</th>
+ <th align="left">Right</th>
+ <th align="center">Center</th>
+ <th align="right">Left</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+ <td>Long Cell</td>
+ <td align="left">Long Cell</td>
+ <td align="center">Long Cell</td>
+ <td align="right">Long Cell</td>
+</tr>
+<tr>
+ <td>Cell</td>
+ <td align="left">Cell</td>
+ <td align="center">Cell</td>
+ <td align="right">Cell</td>
+</tr>
+</tbody>
+</table>
+
+<p>Table alignement (alternate spacing):</p>
+
+<table>
+<thead>
+<tr>
+ <th>Default</th>
+ <th align="left">Right</th>
+ <th align="center">Center</th>
+ <th align="right">Left</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+ <td>Long Cell</td>
+ <td align="left">Long Cell</td>
+ <td align="center">Long Cell</td>
+ <td align="right">Long Cell</td>
+</tr>
+<tr>
+ <td>Cell</td>
+ <td align="left">Cell</td>
+ <td align="center">Cell</td>
+ <td align="right">Cell</td>
+</tr>
+</tbody>
+</table>
+
+<hr />
+
+<h1>Empty cells</h1>
+
+<table>
+<thead>
+<tr>
+ <th>Header 1</th>
+ <th>Header 2</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+ <td>A</td>
+ <td>B</td>
+</tr>
+<tr>
+ <td>C</td>
+ <td></td>
+</tr>
+</tbody>
+</table>
+
+<table>
+<thead>
+<tr>
+ <th>Header 1</th>
+ <th>Header 2</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+ <td>A</td>
+ <td>B</td>
+</tr>
+<tr>
+ <td></td>
+ <td>D</td>
+</tr>
+</tbody>
+</table>
+
+<hr />
+
+<h1>Missing tailing pipe</h1>
+
+<table>
+<thead>
+<tr>
+ <th>Header 1</th>
+ <th>Header 2</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+ <td>Cell</td>
+ <td>Cell</td>
+</tr>
+<tr>
+ <td>Cell</td>
+ <td>Cell</td>
+</tr>
+</tbody>
+</table>
+
+<table>
+<thead>
+<tr>
+ <th>Header 1</th>
+ <th>Header 2</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+ <td>Cell</td>
+ <td>Cell</td>
+</tr>
+<tr>
+ <td>Cell</td>
+ <td>Cell</td>
+</tr>
+</tbody>
+</table>
+
+<table>
+<thead>
+<tr>
+ <th>Header 1</th>
+ <th>Header 2</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+ <td>Cell</td>
+ <td>Cell</td>
+</tr>
+<tr>
+ <td>Cell</td>
+ <td>Cell</td>
+</tr>
+</tbody>
+</table>
+
+<table>
+<thead>
+<tr>
+ <th>Header 1</th>
+ <th>Header 2</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+ <td>Cell</td>
+ <td>Cell</td>
+</tr>
+<tr>
+ <td>Cell</td>
+ <td>Cell</td>
+</tr>
+</tbody>
+</table> \ No newline at end of file
diff --git a/tests/php/extra/test.cfg b/tests/php/extra/test.cfg
new file mode 100644
index 0000000..9c10984
--- /dev/null
+++ b/tests/php/extra/test.cfg
@@ -0,0 +1,6 @@
+[DEFAULT]
+extensions=extra
+normalize=1
+input_ext=.text
+output_ext=.xhtml
+skip=1
diff --git a/tests/php/test.cfg b/tests/php/test.cfg
new file mode 100644
index 0000000..645d72b
--- /dev/null
+++ b/tests/php/test.cfg
@@ -0,0 +1,5 @@
+[DEFAULT]
+normalize=1
+input_ext=.text
+output_ext=.xhtml
+skip=1
diff --git a/MarkdownTest/Tests_2004/Amps and angle encoding.html b/tests/pl/Tests_2004/Amps and angle encoding.html
index 9606860..9606860 100644
--- a/MarkdownTest/Tests_2004/Amps and angle encoding.html
+++ b/tests/pl/Tests_2004/Amps and angle encoding.html
diff --git a/MarkdownTest/Tests_2004/Amps and angle encoding.text b/tests/pl/Tests_2004/Amps and angle encoding.text
index 0e9527f..0e9527f 100644
--- a/MarkdownTest/Tests_2004/Amps and angle encoding.text
+++ b/tests/pl/Tests_2004/Amps and angle encoding.text
diff --git a/MarkdownTest/Tests_2004/Auto links.html b/tests/pl/Tests_2004/Auto links.html
index f8df985..f8df985 100644
--- a/MarkdownTest/Tests_2004/Auto links.html
+++ b/tests/pl/Tests_2004/Auto links.html
diff --git a/MarkdownTest/Tests_2004/Auto links.text b/tests/pl/Tests_2004/Auto links.text
index abbc488..abbc488 100644
--- a/MarkdownTest/Tests_2004/Auto links.text
+++ b/tests/pl/Tests_2004/Auto links.text
diff --git a/MarkdownTest/Tests_2004/Backslash escapes.html b/tests/pl/Tests_2004/Backslash escapes.html
index 77823c3..77823c3 100644
--- a/MarkdownTest/Tests_2004/Backslash escapes.html
+++ b/tests/pl/Tests_2004/Backslash escapes.html
diff --git a/MarkdownTest/Tests_2004/Backslash escapes.text b/tests/pl/Tests_2004/Backslash escapes.text
index 16447a0..16447a0 100644
--- a/MarkdownTest/Tests_2004/Backslash escapes.text
+++ b/tests/pl/Tests_2004/Backslash escapes.text
diff --git a/MarkdownTest/Tests_2004/Blockquotes with code blocks.html b/tests/pl/Tests_2004/Blockquotes with code blocks.html
index 990202a..990202a 100644
--- a/MarkdownTest/Tests_2004/Blockquotes with code blocks.html
+++ b/tests/pl/Tests_2004/Blockquotes with code blocks.html
diff --git a/MarkdownTest/Tests_2004/Blockquotes with code blocks.text b/tests/pl/Tests_2004/Blockquotes with code blocks.text
index c31d171..c31d171 100644
--- a/MarkdownTest/Tests_2004/Blockquotes with code blocks.text
+++ b/tests/pl/Tests_2004/Blockquotes with code blocks.text
diff --git a/MarkdownTest/Tests_2004/Hard-wrapped paragraphs with list-like lines.html b/tests/pl/Tests_2004/Hard-wrapped paragraphs with list-like lines.html
index e21ac79..e21ac79 100644
--- a/MarkdownTest/Tests_2004/Hard-wrapped paragraphs with list-like lines.html
+++ b/tests/pl/Tests_2004/Hard-wrapped paragraphs with list-like lines.html
diff --git a/MarkdownTest/Tests_2004/Hard-wrapped paragraphs with list-like lines.text b/tests/pl/Tests_2004/Hard-wrapped paragraphs with list-like lines.text
index f8a5b27..f8a5b27 100644
--- a/MarkdownTest/Tests_2004/Hard-wrapped paragraphs with list-like lines.text
+++ b/tests/pl/Tests_2004/Hard-wrapped paragraphs with list-like lines.text
diff --git a/MarkdownTest/Tests_2004/Horizontal rules.html b/tests/pl/Tests_2004/Horizontal rules.html
index 2dc2ab6..2dc2ab6 100644
--- a/MarkdownTest/Tests_2004/Horizontal rules.html
+++ b/tests/pl/Tests_2004/Horizontal rules.html
diff --git a/MarkdownTest/Tests_2004/Horizontal rules.text b/tests/pl/Tests_2004/Horizontal rules.text
index 1594bda..1594bda 100644
--- a/MarkdownTest/Tests_2004/Horizontal rules.text
+++ b/tests/pl/Tests_2004/Horizontal rules.text
diff --git a/MarkdownTest/Tests_2004/Inline HTML (Advanced).html b/tests/pl/Tests_2004/Inline HTML (Advanced).html
index 1972d87..1972d87 100644
--- a/MarkdownTest/Tests_2004/Inline HTML (Advanced).html
+++ b/tests/pl/Tests_2004/Inline HTML (Advanced).html
diff --git a/MarkdownTest/Tests_2004/Inline HTML (Advanced).text b/tests/pl/Tests_2004/Inline HTML (Advanced).text
index 9d71ddc..9d71ddc 100644
--- a/MarkdownTest/Tests_2004/Inline HTML (Advanced).text
+++ b/tests/pl/Tests_2004/Inline HTML (Advanced).text
diff --git a/MarkdownTest/Tests_2004/Inline HTML (Simple).html b/tests/pl/Tests_2004/Inline HTML (Simple).html
index 6bf78f8..6bf78f8 100644
--- a/MarkdownTest/Tests_2004/Inline HTML (Simple).html
+++ b/tests/pl/Tests_2004/Inline HTML (Simple).html
diff --git a/MarkdownTest/Tests_2004/Inline HTML (Simple).text b/tests/pl/Tests_2004/Inline HTML (Simple).text
index 14aa2dc..14aa2dc 100644
--- a/MarkdownTest/Tests_2004/Inline HTML (Simple).text
+++ b/tests/pl/Tests_2004/Inline HTML (Simple).text
diff --git a/MarkdownTest/Tests_2004/Inline HTML comments.html b/tests/pl/Tests_2004/Inline HTML comments.html
index 3f167a1..3f167a1 100644
--- a/MarkdownTest/Tests_2004/Inline HTML comments.html
+++ b/tests/pl/Tests_2004/Inline HTML comments.html
diff --git a/MarkdownTest/Tests_2004/Inline HTML comments.text b/tests/pl/Tests_2004/Inline HTML comments.text
index 41d830d..41d830d 100644
--- a/MarkdownTest/Tests_2004/Inline HTML comments.text
+++ b/tests/pl/Tests_2004/Inline HTML comments.text
diff --git a/MarkdownTest/Tests_2004/Links, inline style.html b/tests/pl/Tests_2004/Links, inline style.html
index bdfabb5..bdfabb5 100644
--- a/MarkdownTest/Tests_2004/Links, inline style.html
+++ b/tests/pl/Tests_2004/Links, inline style.html
diff --git a/MarkdownTest/Tests_2004/Links, inline style.text b/tests/pl/Tests_2004/Links, inline style.text
index 4d0c1c2..4d0c1c2 100644
--- a/MarkdownTest/Tests_2004/Links, inline style.text
+++ b/tests/pl/Tests_2004/Links, inline style.text
diff --git a/MarkdownTest/Tests_2004/Links, reference style.html b/tests/pl/Tests_2004/Links, reference style.html
index cf4d833..cf4d833 100644
--- a/MarkdownTest/Tests_2004/Links, reference style.html
+++ b/tests/pl/Tests_2004/Links, reference style.html
diff --git a/MarkdownTest/Tests_2004/Links, reference style.text b/tests/pl/Tests_2004/Links, reference style.text
index b2fa734..b2fa734 100644
--- a/MarkdownTest/Tests_2004/Links, reference style.text
+++ b/tests/pl/Tests_2004/Links, reference style.text
diff --git a/MarkdownTest/Tests_2004/Literal quotes in titles.html b/tests/pl/Tests_2004/Literal quotes in titles.html
index 611c1ac..611c1ac 100644
--- a/MarkdownTest/Tests_2004/Literal quotes in titles.html
+++ b/tests/pl/Tests_2004/Literal quotes in titles.html
diff --git a/MarkdownTest/Tests_2004/Literal quotes in titles.text b/tests/pl/Tests_2004/Literal quotes in titles.text
index 29d0e42..29d0e42 100644
--- a/MarkdownTest/Tests_2004/Literal quotes in titles.text
+++ b/tests/pl/Tests_2004/Literal quotes in titles.text
diff --git a/MarkdownTest/Tests_2004/Markdown Documentation - Basics.html b/tests/pl/Tests_2004/Markdown Documentation - Basics.html
index d5bdbb2..d5bdbb2 100644
--- a/MarkdownTest/Tests_2004/Markdown Documentation - Basics.html
+++ b/tests/pl/Tests_2004/Markdown Documentation - Basics.html
diff --git a/MarkdownTest/Tests_2004/Markdown Documentation - Basics.text b/tests/pl/Tests_2004/Markdown Documentation - Basics.text
index 486055c..486055c 100644
--- a/MarkdownTest/Tests_2004/Markdown Documentation - Basics.text
+++ b/tests/pl/Tests_2004/Markdown Documentation - Basics.text
diff --git a/MarkdownTest/Tests_2004/Markdown Documentation - Syntax.html b/tests/pl/Tests_2004/Markdown Documentation - Syntax.html
index 5c01306..5c01306 100644
--- a/MarkdownTest/Tests_2004/Markdown Documentation - Syntax.html
+++ b/tests/pl/Tests_2004/Markdown Documentation - Syntax.html
diff --git a/MarkdownTest/Tests_2004/Markdown Documentation - Syntax.text b/tests/pl/Tests_2004/Markdown Documentation - Syntax.text
index dabd75c..dabd75c 100644
--- a/MarkdownTest/Tests_2004/Markdown Documentation - Syntax.text
+++ b/tests/pl/Tests_2004/Markdown Documentation - Syntax.text
diff --git a/MarkdownTest/Tests_2004/Nested blockquotes.html b/tests/pl/Tests_2004/Nested blockquotes.html
index d8ec7f8..d8ec7f8 100644
--- a/MarkdownTest/Tests_2004/Nested blockquotes.html
+++ b/tests/pl/Tests_2004/Nested blockquotes.html
diff --git a/MarkdownTest/Tests_2004/Nested blockquotes.text b/tests/pl/Tests_2004/Nested blockquotes.text
index ed3c624..ed3c624 100644
--- a/MarkdownTest/Tests_2004/Nested blockquotes.text
+++ b/tests/pl/Tests_2004/Nested blockquotes.text
diff --git a/MarkdownTest/Tests_2004/Ordered and unordered lists.html b/tests/pl/Tests_2004/Ordered and unordered lists.html
index ce85c3a..ce85c3a 100644
--- a/MarkdownTest/Tests_2004/Ordered and unordered lists.html
+++ b/tests/pl/Tests_2004/Ordered and unordered lists.html
diff --git a/MarkdownTest/Tests_2004/Ordered and unordered lists.text b/tests/pl/Tests_2004/Ordered and unordered lists.text
index 621db58..621db58 100644
--- a/MarkdownTest/Tests_2004/Ordered and unordered lists.text
+++ b/tests/pl/Tests_2004/Ordered and unordered lists.text
diff --git a/MarkdownTest/Tests_2004/Strong and em together.html b/tests/pl/Tests_2004/Strong and em together.html
index 71ec78c..71ec78c 100644
--- a/MarkdownTest/Tests_2004/Strong and em together.html
+++ b/tests/pl/Tests_2004/Strong and em together.html
diff --git a/MarkdownTest/Tests_2004/Strong and em together.text b/tests/pl/Tests_2004/Strong and em together.text
index 95ee690..95ee690 100644
--- a/MarkdownTest/Tests_2004/Strong and em together.text
+++ b/tests/pl/Tests_2004/Strong and em together.text
diff --git a/MarkdownTest/Tests_2004/Tabs.html b/tests/pl/Tests_2004/Tabs.html
index 3301ba8..3301ba8 100644
--- a/MarkdownTest/Tests_2004/Tabs.html
+++ b/tests/pl/Tests_2004/Tabs.html
diff --git a/MarkdownTest/Tests_2004/Tabs.text b/tests/pl/Tests_2004/Tabs.text
index 589d113..589d113 100644
--- a/MarkdownTest/Tests_2004/Tabs.text
+++ b/tests/pl/Tests_2004/Tabs.text
diff --git a/MarkdownTest/Tests_2004/Tidyness.html b/tests/pl/Tests_2004/Tidyness.html
index f2a8ce7..f2a8ce7 100644
--- a/MarkdownTest/Tests_2004/Tidyness.html
+++ b/tests/pl/Tests_2004/Tidyness.html
diff --git a/MarkdownTest/Tests_2004/Tidyness.text b/tests/pl/Tests_2004/Tidyness.text
index 5f18b8d..5f18b8d 100644
--- a/MarkdownTest/Tests_2004/Tidyness.text
+++ b/tests/pl/Tests_2004/Tidyness.text
diff --git a/MarkdownTest/Tests_2004/Yuri-Attributes.html b/tests/pl/Tests_2004/Yuri-Attributes.html
index 057da2f..057da2f 100644
--- a/MarkdownTest/Tests_2004/Yuri-Attributes.html
+++ b/tests/pl/Tests_2004/Yuri-Attributes.html
diff --git a/MarkdownTest/Tests_2004/Yuri-Attributes.text b/tests/pl/Tests_2004/Yuri-Attributes.text
index 8ee512d..8ee512d 100644
--- a/MarkdownTest/Tests_2004/Yuri-Attributes.text
+++ b/tests/pl/Tests_2004/Yuri-Attributes.text
diff --git a/MarkdownTest/Tests_2004/Yuri-Email.html b/tests/pl/Tests_2004/Yuri-Email.html
index bf1d149..bf1d149 100644
--- a/MarkdownTest/Tests_2004/Yuri-Email.html
+++ b/tests/pl/Tests_2004/Yuri-Email.html
diff --git a/MarkdownTest/Tests_2004/Yuri-Email.text b/tests/pl/Tests_2004/Yuri-Email.text
index 8f9c779..8f9c779 100644
--- a/MarkdownTest/Tests_2004/Yuri-Email.text
+++ b/tests/pl/Tests_2004/Yuri-Email.text
diff --git a/MarkdownTest/Tests_2004/Yuri-Footnotes.html b/tests/pl/Tests_2004/Yuri-Footnotes.html
index cadb040..cadb040 100644
--- a/MarkdownTest/Tests_2004/Yuri-Footnotes.html
+++ b/tests/pl/Tests_2004/Yuri-Footnotes.html
diff --git a/MarkdownTest/Tests_2004/Yuri-Footnotes.text b/tests/pl/Tests_2004/Yuri-Footnotes.text
index 16fe402..16fe402 100644
--- a/MarkdownTest/Tests_2004/Yuri-Footnotes.text
+++ b/tests/pl/Tests_2004/Yuri-Footnotes.text
diff --git a/MarkdownTest/Tests_2004/Yuri-Links-in-Headers.html b/tests/pl/Tests_2004/Yuri-Links-in-Headers.html
index 6afc56e..6afc56e 100644
--- a/MarkdownTest/Tests_2004/Yuri-Links-in-Headers.html
+++ b/tests/pl/Tests_2004/Yuri-Links-in-Headers.html
diff --git a/MarkdownTest/Tests_2004/Yuri-Links-in-Headers.text b/tests/pl/Tests_2004/Yuri-Links-in-Headers.text
index d06a9e1..d06a9e1 100644
--- a/MarkdownTest/Tests_2004/Yuri-Links-in-Headers.text
+++ b/tests/pl/Tests_2004/Yuri-Links-in-Headers.text
diff --git a/tests/pl/Tests_2004/test.cfg b/tests/pl/Tests_2004/test.cfg
new file mode 100644
index 0000000..d3850f4
--- /dev/null
+++ b/tests/pl/Tests_2004/test.cfg
@@ -0,0 +1,10 @@
+[DEFAULT]
+input_ext=.text
+normalize=1
+# comment out next line to run these tests
+#skip=1
+
+[Yuri-Footnotes]
+extensions=footnotes
+skip=1
+
diff --git a/MarkdownTest/Tests_2007/Amps and angle encoding.html b/tests/pl/Tests_2007/Amps and angle encoding.html
index 9606860..9606860 100644
--- a/MarkdownTest/Tests_2007/Amps and angle encoding.html
+++ b/tests/pl/Tests_2007/Amps and angle encoding.html
diff --git a/MarkdownTest/Tests_2007/Amps and angle encoding.text b/tests/pl/Tests_2007/Amps and angle encoding.text
index 0e9527f..0e9527f 100644
--- a/MarkdownTest/Tests_2007/Amps and angle encoding.text
+++ b/tests/pl/Tests_2007/Amps and angle encoding.text
diff --git a/MarkdownTest/Tests_2007/Auto links.html b/tests/pl/Tests_2007/Auto links.html
index f8df985..f8df985 100644
--- a/MarkdownTest/Tests_2007/Auto links.html
+++ b/tests/pl/Tests_2007/Auto links.html
diff --git a/MarkdownTest/Tests_2007/Auto links.text b/tests/pl/Tests_2007/Auto links.text
index abbc488..abbc488 100644
--- a/MarkdownTest/Tests_2007/Auto links.text
+++ b/tests/pl/Tests_2007/Auto links.text
diff --git a/MarkdownTest/Tests_2007/Backslash escapes.html b/tests/pl/Tests_2007/Backslash escapes.html
index 29870da..29870da 100644
--- a/MarkdownTest/Tests_2007/Backslash escapes.html
+++ b/tests/pl/Tests_2007/Backslash escapes.html
diff --git a/MarkdownTest/Tests_2007/Backslash escapes.text b/tests/pl/Tests_2007/Backslash escapes.text
index 5b014cb..5b014cb 100644
--- a/MarkdownTest/Tests_2007/Backslash escapes.text
+++ b/tests/pl/Tests_2007/Backslash escapes.text
diff --git a/MarkdownTest/Tests_2007/Blockquotes with code blocks.html b/tests/pl/Tests_2007/Blockquotes with code blocks.html
index 990202a..990202a 100644
--- a/MarkdownTest/Tests_2007/Blockquotes with code blocks.html
+++ b/tests/pl/Tests_2007/Blockquotes with code blocks.html
diff --git a/MarkdownTest/Tests_2007/Blockquotes with code blocks.text b/tests/pl/Tests_2007/Blockquotes with code blocks.text
index c31d171..c31d171 100644
--- a/MarkdownTest/Tests_2007/Blockquotes with code blocks.text
+++ b/tests/pl/Tests_2007/Blockquotes with code blocks.text
diff --git a/MarkdownTest/Tests_2007/Code Blocks.html b/tests/pl/Tests_2007/Code Blocks.html
index 32703f5..32703f5 100644
--- a/MarkdownTest/Tests_2007/Code Blocks.html
+++ b/tests/pl/Tests_2007/Code Blocks.html
diff --git a/MarkdownTest/Tests_2007/Code Blocks.text b/tests/pl/Tests_2007/Code Blocks.text
index b54b092..b54b092 100644
--- a/MarkdownTest/Tests_2007/Code Blocks.text
+++ b/tests/pl/Tests_2007/Code Blocks.text
diff --git a/MarkdownTest/Tests_2007/Code Spans.html b/tests/pl/Tests_2007/Code Spans.html
index b057457..b057457 100644
--- a/MarkdownTest/Tests_2007/Code Spans.html
+++ b/tests/pl/Tests_2007/Code Spans.html
diff --git a/MarkdownTest/Tests_2007/Code Spans.text b/tests/pl/Tests_2007/Code Spans.text
index 5c229c7..5c229c7 100644
--- a/MarkdownTest/Tests_2007/Code Spans.text
+++ b/tests/pl/Tests_2007/Code Spans.text
diff --git a/MarkdownTest/Tests_2007/Hard-wrapped paragraphs with list-like lines.html b/tests/pl/Tests_2007/Hard-wrapped paragraphs with list-like lines.html
index e21ac79..e21ac79 100644
--- a/MarkdownTest/Tests_2007/Hard-wrapped paragraphs with list-like lines.html
+++ b/tests/pl/Tests_2007/Hard-wrapped paragraphs with list-like lines.html
diff --git a/MarkdownTest/Tests_2007/Hard-wrapped paragraphs with list-like lines.text b/tests/pl/Tests_2007/Hard-wrapped paragraphs with list-like lines.text
index f8a5b27..f8a5b27 100644
--- a/MarkdownTest/Tests_2007/Hard-wrapped paragraphs with list-like lines.text
+++ b/tests/pl/Tests_2007/Hard-wrapped paragraphs with list-like lines.text
diff --git a/MarkdownTest/Tests_2007/Horizontal rules.html b/tests/pl/Tests_2007/Horizontal rules.html
index 2dc2ab6..2dc2ab6 100644
--- a/MarkdownTest/Tests_2007/Horizontal rules.html
+++ b/tests/pl/Tests_2007/Horizontal rules.html
diff --git a/MarkdownTest/Tests_2007/Horizontal rules.text b/tests/pl/Tests_2007/Horizontal rules.text
index 1594bda..1594bda 100644
--- a/MarkdownTest/Tests_2007/Horizontal rules.text
+++ b/tests/pl/Tests_2007/Horizontal rules.text
diff --git a/MarkdownTest/Tests_2007/Images.html b/tests/pl/Tests_2007/Images.html
index 217f028..217f028 100644
--- a/MarkdownTest/Tests_2007/Images.html
+++ b/tests/pl/Tests_2007/Images.html
diff --git a/MarkdownTest/Tests_2007/Images.text b/tests/pl/Tests_2007/Images.text
index 5707590..5707590 100644
--- a/MarkdownTest/Tests_2007/Images.text
+++ b/tests/pl/Tests_2007/Images.text
diff --git a/MarkdownTest/Tests_2007/Inline HTML (Advanced).html b/tests/pl/Tests_2007/Inline HTML (Advanced).html
index 884f14c..884f14c 100644
--- a/MarkdownTest/Tests_2007/Inline HTML (Advanced).html
+++ b/tests/pl/Tests_2007/Inline HTML (Advanced).html
diff --git a/MarkdownTest/Tests_2007/Inline HTML (Advanced).text b/tests/pl/Tests_2007/Inline HTML (Advanced).text
index 3633f81..3633f81 100644
--- a/MarkdownTest/Tests_2007/Inline HTML (Advanced).text
+++ b/tests/pl/Tests_2007/Inline HTML (Advanced).text
diff --git a/MarkdownTest/Tests_2007/Inline HTML (Simple).html b/tests/pl/Tests_2007/Inline HTML (Simple).html
index 6bf78f8..6bf78f8 100644
--- a/MarkdownTest/Tests_2007/Inline HTML (Simple).html
+++ b/tests/pl/Tests_2007/Inline HTML (Simple).html
diff --git a/MarkdownTest/Tests_2007/Inline HTML (Simple).text b/tests/pl/Tests_2007/Inline HTML (Simple).text
index 14aa2dc..14aa2dc 100644
--- a/MarkdownTest/Tests_2007/Inline HTML (Simple).text
+++ b/tests/pl/Tests_2007/Inline HTML (Simple).text
diff --git a/MarkdownTest/Tests_2007/Inline HTML comments.html b/tests/pl/Tests_2007/Inline HTML comments.html
index 3f167a1..3f167a1 100644
--- a/MarkdownTest/Tests_2007/Inline HTML comments.html
+++ b/tests/pl/Tests_2007/Inline HTML comments.html
diff --git a/MarkdownTest/Tests_2007/Inline HTML comments.text b/tests/pl/Tests_2007/Inline HTML comments.text
index 41d830d..41d830d 100644
--- a/MarkdownTest/Tests_2007/Inline HTML comments.text
+++ b/tests/pl/Tests_2007/Inline HTML comments.text
diff --git a/MarkdownTest/Tests_2007/Links, inline style.html b/tests/pl/Tests_2007/Links, inline style.html
index 9f351ef..9f351ef 100644
--- a/MarkdownTest/Tests_2007/Links, inline style.html
+++ b/tests/pl/Tests_2007/Links, inline style.html
diff --git a/MarkdownTest/Tests_2007/Links, inline style.text b/tests/pl/Tests_2007/Links, inline style.text
index aba9658..aba9658 100644
--- a/MarkdownTest/Tests_2007/Links, inline style.text
+++ b/tests/pl/Tests_2007/Links, inline style.text
diff --git a/MarkdownTest/Tests_2007/Links, reference style.html b/tests/pl/Tests_2007/Links, reference style.html
index 8e70c32..8e70c32 100644
--- a/MarkdownTest/Tests_2007/Links, reference style.html
+++ b/tests/pl/Tests_2007/Links, reference style.html
diff --git a/MarkdownTest/Tests_2007/Links, reference style.text b/tests/pl/Tests_2007/Links, reference style.text
index 341ec88..341ec88 100644
--- a/MarkdownTest/Tests_2007/Links, reference style.text
+++ b/tests/pl/Tests_2007/Links, reference style.text
diff --git a/MarkdownTest/Tests_2007/Links, shortcut references.html b/tests/pl/Tests_2007/Links, shortcut references.html
index bf81e93..bf81e93 100755..100644
--- a/MarkdownTest/Tests_2007/Links, shortcut references.html
+++ b/tests/pl/Tests_2007/Links, shortcut references.html
diff --git a/MarkdownTest/Tests_2007/Links, shortcut references.text b/tests/pl/Tests_2007/Links, shortcut references.text
index 8c44c98..8c44c98 100755..100644
--- a/MarkdownTest/Tests_2007/Links, shortcut references.text
+++ b/tests/pl/Tests_2007/Links, shortcut references.text
diff --git a/MarkdownTest/Tests_2007/Literal quotes in titles.html b/tests/pl/Tests_2007/Literal quotes in titles.html
index 611c1ac..611c1ac 100644
--- a/MarkdownTest/Tests_2007/Literal quotes in titles.html
+++ b/tests/pl/Tests_2007/Literal quotes in titles.html
diff --git a/MarkdownTest/Tests_2007/Literal quotes in titles.text b/tests/pl/Tests_2007/Literal quotes in titles.text
index 29d0e42..29d0e42 100644
--- a/MarkdownTest/Tests_2007/Literal quotes in titles.text
+++ b/tests/pl/Tests_2007/Literal quotes in titles.text
diff --git a/MarkdownTest/Tests_2007/Markdown Documentation - Basics.html b/tests/pl/Tests_2007/Markdown Documentation - Basics.html
index d5bdbb2..d5bdbb2 100644
--- a/MarkdownTest/Tests_2007/Markdown Documentation - Basics.html
+++ b/tests/pl/Tests_2007/Markdown Documentation - Basics.html
diff --git a/MarkdownTest/Tests_2007/Markdown Documentation - Basics.text b/tests/pl/Tests_2007/Markdown Documentation - Basics.text
index 486055c..486055c 100644
--- a/MarkdownTest/Tests_2007/Markdown Documentation - Basics.text
+++ b/tests/pl/Tests_2007/Markdown Documentation - Basics.text
diff --git a/MarkdownTest/Tests_2007/Markdown Documentation - Syntax.html b/tests/pl/Tests_2007/Markdown Documentation - Syntax.html
index 5c01306..5c01306 100644
--- a/MarkdownTest/Tests_2007/Markdown Documentation - Syntax.html
+++ b/tests/pl/Tests_2007/Markdown Documentation - Syntax.html
diff --git a/MarkdownTest/Tests_2007/Markdown Documentation - Syntax.text b/tests/pl/Tests_2007/Markdown Documentation - Syntax.text
index 57360a1..57360a1 100644
--- a/MarkdownTest/Tests_2007/Markdown Documentation - Syntax.text
+++ b/tests/pl/Tests_2007/Markdown Documentation - Syntax.text
diff --git a/MarkdownTest/Tests_2007/Nested blockquotes.html b/tests/pl/Tests_2007/Nested blockquotes.html
index d8ec7f8..d8ec7f8 100644
--- a/MarkdownTest/Tests_2007/Nested blockquotes.html
+++ b/tests/pl/Tests_2007/Nested blockquotes.html
diff --git a/MarkdownTest/Tests_2007/Nested blockquotes.text b/tests/pl/Tests_2007/Nested blockquotes.text
index ed3c624..ed3c624 100644
--- a/MarkdownTest/Tests_2007/Nested blockquotes.text
+++ b/tests/pl/Tests_2007/Nested blockquotes.text
diff --git a/MarkdownTest/Tests_2007/Ordered and unordered lists.html b/tests/pl/Tests_2007/Ordered and unordered lists.html
index ba71eab..ba71eab 100644
--- a/MarkdownTest/Tests_2007/Ordered and unordered lists.html
+++ b/tests/pl/Tests_2007/Ordered and unordered lists.html
diff --git a/MarkdownTest/Tests_2007/Ordered and unordered lists.text b/tests/pl/Tests_2007/Ordered and unordered lists.text
index 7f3b497..7f3b497 100644
--- a/MarkdownTest/Tests_2007/Ordered and unordered lists.text
+++ b/tests/pl/Tests_2007/Ordered and unordered lists.text
diff --git a/MarkdownTest/Tests_2007/Strong and em together.html b/tests/pl/Tests_2007/Strong and em together.html
index 71ec78c..71ec78c 100644
--- a/MarkdownTest/Tests_2007/Strong and em together.html
+++ b/tests/pl/Tests_2007/Strong and em together.html
diff --git a/MarkdownTest/Tests_2007/Strong and em together.text b/tests/pl/Tests_2007/Strong and em together.text
index 95ee690..95ee690 100644
--- a/MarkdownTest/Tests_2007/Strong and em together.text
+++ b/tests/pl/Tests_2007/Strong and em together.text
diff --git a/MarkdownTest/Tests_2007/Tabs.html b/tests/pl/Tests_2007/Tabs.html
index 3301ba8..3301ba8 100644
--- a/MarkdownTest/Tests_2007/Tabs.html
+++ b/tests/pl/Tests_2007/Tabs.html
diff --git a/MarkdownTest/Tests_2007/Tabs.text b/tests/pl/Tests_2007/Tabs.text
index 589d113..589d113 100644
--- a/MarkdownTest/Tests_2007/Tabs.text
+++ b/tests/pl/Tests_2007/Tabs.text
diff --git a/MarkdownTest/Tests_2007/Tidyness.html b/tests/pl/Tests_2007/Tidyness.html
index f2a8ce7..f2a8ce7 100644
--- a/MarkdownTest/Tests_2007/Tidyness.html
+++ b/tests/pl/Tests_2007/Tidyness.html
diff --git a/MarkdownTest/Tests_2007/Tidyness.text b/tests/pl/Tests_2007/Tidyness.text
index 5f18b8d..5f18b8d 100644
--- a/MarkdownTest/Tests_2007/Tidyness.text
+++ b/tests/pl/Tests_2007/Tidyness.text
diff --git a/tests/pl/Tests_2007/test.cfg b/tests/pl/Tests_2007/test.cfg
new file mode 100644
index 0000000..be86b6c
--- /dev/null
+++ b/tests/pl/Tests_2007/test.cfg
@@ -0,0 +1,5 @@
+[DEFAULT]
+input_ext=.text
+normalize=1
+# comment out next line to run these tests
+skip=1
diff --git a/tests/plugins.py b/tests/plugins.py
new file mode 100644
index 0000000..acd1eaf
--- /dev/null
+++ b/tests/plugins.py
@@ -0,0 +1,115 @@
+import traceback
+from util import MarkdownSyntaxError
+from nose.plugins import Plugin
+from nose.plugins.errorclass import ErrorClass, ErrorClassPlugin
+
+class Markdown(ErrorClassPlugin):
+ """ Add MarkdownSyntaxError and ensure proper formatting. """
+ mdsyntax = ErrorClass(MarkdownSyntaxError,
+ label='MarkdownSyntaxError',
+ isfailure=True)
+ enabled = True
+
+ def configure(self, options, conf):
+ self.conf = conf
+
+ def addError(self, test, err):
+ """ Ensure other plugins see the error by returning nothing here. """
+ pass
+
+ def formatError(self, test, err):
+ """ Remove unnessecary and unhelpful traceback from error report. """
+ et, ev, tb = err
+ if et.__name__ == 'MarkdownSyntaxError':
+ return et, ev, ''
+ return err
+
+
+def escape(html):
+ """ Escape HTML for display as source within HTML. """
+ html = html.replace('&', '&amp;')
+ html = html.replace('<', '&lt;')
+ html = html.replace('>', '&gt;')
+ return html
+
+
+class HtmlOutput(Plugin):
+ """Output test results as ugly, unstyled html. """
+
+ name = 'html-output'
+ score = 2 # run late
+ enabled = True
+
+ def __init__(self):
+ super(HtmlOutput, self).__init__()
+ self.html = [ '<html><head>',
+ '<title>Test output</title>',
+ '</head><body>' ]
+
+ def configure(self, options, conf):
+ self.conf = conf
+
+ def addSuccess(self, test):
+ self.html.append('<span>ok</span>')
+
+ def addError(self, test, err):
+ err = self.formatErr(err)
+ self.html.append('<span>ERROR</span>')
+ self.html.append('<pre>%s</pre>' % escape(err))
+
+ def addFailure(self, test, err):
+ err = self.formatErr(err)
+ self.html.append('<span>FAIL</span>')
+ self.html.append('<pre>%s</pre>' % escape(err))
+
+ def finalize(self, result):
+ self.html.append('<div>')
+ self.html.append("Ran %d test%s" %
+ (result.testsRun, result.testsRun != 1 and "s"
+or ""))
+ self.html.append('</div>')
+ self.html.append('<div>')
+ if not result.wasSuccessful():
+ self.html.extend(['<span>FAILED (',
+ 'failures=%d ' % len(result.failures),
+ 'errors=%d' % len(result.errors)])
+ for cls in result.errorClasses.keys():
+ storage, label, isfail = result.errorClasses[cls]
+ if len(storage):
+ self.html.append(' %ss=%d' % (label, len(storage)))
+ self.html.append(')</span>')
+ else:
+ self.html.append('OK')
+ self.html.append('</div></body></html>')
+ f = open('tmp/test-output.html', 'w')
+ for l in self.html:
+ f.write(l)
+ f.close()
+
+ def formatErr(self, err):
+ exctype, value, tb = err
+ return ''.join(traceback.format_exception(exctype, value, tb))
+
+ def startContext(self, ctx):
+ try:
+ n = ctx.__name__
+ except AttributeError:
+ n = str(ctx).replace('<', '').replace('>', '')
+ self.html.extend(['<fieldset>', '<legend>', n, '</legend>'])
+ try:
+ path = ctx.__file__.replace('.pyc', '.py')
+ self.html.extend(['<div>', path, '</div>'])
+ except AttributeError:
+ pass
+
+ def stopContext(self, ctx):
+ self.html.append('</fieldset>')
+
+ def startTest(self, test):
+ self.html.extend([ '<div><span>',
+ test.shortDescription() or str(test),
+ '</span>' ])
+
+ def stopTest(self, test):
+ self.html.append('</div>')
+
diff --git a/tests/safe_mode/remove.html b/tests/safe_mode/remove.html
new file mode 100644
index 0000000..a1e1626
--- /dev/null
+++ b/tests/safe_mode/remove.html
@@ -0,0 +1,34 @@
+<p>Here's a simple block:</p>
+<p></p>
+<p>This should be a code block, though:</p>
+<pre><code>&lt;div&gt;
+ foo
+&lt;/div&gt;
+</code></pre>
+<p>As should this:</p>
+<pre><code>&lt;div&gt;foo&lt;/div&gt;
+</code></pre>
+<p>Now, nested:</p>
+<p></p>
+<p>This should just be an HTML comment:</p>
+<p></p>
+<p>Multiline:</p>
+<p></p>
+<p>Code block:</p>
+<pre><code>&lt;!-- Comment --&gt;
+</code></pre>
+<p>Just plain comment, with trailing spaces on the line:</p>
+<p></p>
+<p>Code:</p>
+<pre><code>&lt;hr /&gt;
+</code></pre>
+<p>Hr's:</p>
+<p></p>
+<p></p>
+<p></p>
+<p></p>
+<p></p>
+<p></p>
+<p></p>
+<p></p>
+<p></p> \ No newline at end of file
diff --git a/tests/safe_mode/remove.txt b/tests/safe_mode/remove.txt
new file mode 100644
index 0000000..14aa2dc
--- /dev/null
+++ b/tests/safe_mode/remove.txt
@@ -0,0 +1,69 @@
+Here's a simple block:
+
+<div>
+ foo
+</div>
+
+This should be a code block, though:
+
+ <div>
+ foo
+ </div>
+
+As should this:
+
+ <div>foo</div>
+
+Now, nested:
+
+<div>
+ <div>
+ <div>
+ foo
+ </div>
+ </div>
+</div>
+
+This should just be an HTML comment:
+
+<!-- Comment -->
+
+Multiline:
+
+<!--
+Blah
+Blah
+-->
+
+Code block:
+
+ <!-- Comment -->
+
+Just plain comment, with trailing spaces on the line:
+
+<!-- foo -->
+
+Code:
+
+ <hr />
+
+Hr's:
+
+<hr>
+
+<hr/>
+
+<hr />
+
+<hr>
+
+<hr/>
+
+<hr />
+
+<hr class="foo" id="bar" />
+
+<hr class="foo" id="bar"/>
+
+<hr class="foo" id="bar" >
+
diff --git a/tests/safe_mode/replace.html b/tests/safe_mode/replace.html
new file mode 100644
index 0000000..fdf666e
--- /dev/null
+++ b/tests/safe_mode/replace.html
@@ -0,0 +1,34 @@
+<p>Here's a simple block:</p>
+<p>[HTML_REMOVED]</p>
+<p>This should be a code block, though:</p>
+<pre><code>&lt;div&gt;
+ foo
+&lt;/div&gt;
+</code></pre>
+<p>As should this:</p>
+<pre><code>&lt;div&gt;foo&lt;/div&gt;
+</code></pre>
+<p>Now, nested:</p>
+<p>[HTML_REMOVED]</p>
+<p>This should just be an HTML comment:</p>
+<p>[HTML_REMOVED]</p>
+<p>Multiline:</p>
+<p>[HTML_REMOVED]</p>
+<p>Code block:</p>
+<pre><code>&lt;!-- Comment --&gt;
+</code></pre>
+<p>Just plain comment, with trailing spaces on the line:</p>
+<p>[HTML_REMOVED]</p>
+<p>Code:</p>
+<pre><code>&lt;hr /&gt;
+</code></pre>
+<p>Hr's:</p>
+<p>[HTML_REMOVED]</p>
+<p>[HTML_REMOVED]</p>
+<p>[HTML_REMOVED]</p>
+<p>[HTML_REMOVED]</p>
+<p>[HTML_REMOVED]</p>
+<p>[HTML_REMOVED]</p>
+<p>[HTML_REMOVED]</p>
+<p>[HTML_REMOVED]</p>
+<p>[HTML_REMOVED]</p> \ No newline at end of file
diff --git a/tests/safe_mode/replace.txt b/tests/safe_mode/replace.txt
new file mode 100644
index 0000000..14aa2dc
--- /dev/null
+++ b/tests/safe_mode/replace.txt
@@ -0,0 +1,69 @@
+Here's a simple block:
+
+<div>
+ foo
+</div>
+
+This should be a code block, though:
+
+ <div>
+ foo
+ </div>
+
+As should this:
+
+ <div>foo</div>
+
+Now, nested:
+
+<div>
+ <div>
+ <div>
+ foo
+ </div>
+ </div>
+</div>
+
+This should just be an HTML comment:
+
+<!-- Comment -->
+
+Multiline:
+
+<!--
+Blah
+Blah
+-->
+
+Code block:
+
+ <!-- Comment -->
+
+Just plain comment, with trailing spaces on the line:
+
+<!-- foo -->
+
+Code:
+
+ <hr />
+
+Hr's:
+
+<hr>
+
+<hr/>
+
+<hr />
+
+<hr>
+
+<hr/>
+
+<hr />
+
+<hr class="foo" id="bar" />
+
+<hr class="foo" id="bar"/>
+
+<hr class="foo" id="bar" >
+
diff --git a/tests/safe_mode/test.cfg b/tests/safe_mode/test.cfg
new file mode 100644
index 0000000..57f0b6a
--- /dev/null
+++ b/tests/safe_mode/test.cfg
@@ -0,0 +1,8 @@
+[DEFAULT]
+safe_mode=escape
+
+[remove]
+safe_mode=remove
+
+[replace]
+safe_mode=replace
diff --git a/regression-tests.py b/tests/test_apis.py
index 7601061..3aaa2f9 100755..100644
--- a/regression-tests.py
+++ b/tests/test_apis.py
@@ -12,7 +12,7 @@ from doctest import DocTestSuite
import os
import markdown
-class TestMarkdown(unittest.TestCase):
+class TestMarkdownBasics(unittest.TestCase):
""" Tests basics of the Markdown class. """
def setUp(self):
@@ -212,23 +212,3 @@ class TestOrderedDict(unittest.TestCase):
[('first', 'This'), ('fourth', 'self'),
('third', 'a'), ('fifth', 'test')])
-def suite():
- """ Build a test suite of the above tests and extension doctests. """
- suite = unittest.TestSuite()
- suite.addTest(unittest.makeSuite(TestMarkdown))
- suite.addTest(unittest.makeSuite(TestBlockParser))
- suite.addTest(unittest.makeSuite(TestBlockParserState))
- suite.addTest(unittest.makeSuite(TestHtmlStash))
- suite.addTest(unittest.makeSuite(TestOrderedDict))
-
- for filename in os.listdir('markdown/extensions'):
- if filename.endswith('.py'):
- module = 'markdown.extensions.%s' % filename[:-3]
- try:
- suite.addTest(DocTestSuite(module))
- except: ValueError
- # No tests
- return suite
-
-if __name__ == '__main__':
- unittest.TextTestRunner(verbosity=2).run(suite())
diff --git a/tests/util.py b/tests/util.py
new file mode 100644
index 0000000..aae87be
--- /dev/null
+++ b/tests/util.py
@@ -0,0 +1,15 @@
+from ConfigParser import SafeConfigParser
+
+class MarkdownSyntaxError(Exception):
+ pass
+
+
+class CustomConfigParser(SafeConfigParser):
+ def get(self, section, option):
+ value = SafeConfigParser.get(self, section, option)
+ if option == 'extensions':
+ if len(value.strip()):
+ return value.split(',')
+ else:
+ return []
+ return value