diff options
Diffstat (limited to 'oldtests')
144 files changed, 5015 insertions, 0 deletions
diff --git a/oldtests/Blockquotes/Indents.html b/oldtests/Blockquotes/Indents.html new file mode 100644 index 0000000..fd98ee8 --- /dev/null +++ b/oldtests/Blockquotes/Indents.html @@ -0,0 +1,12 @@ +<blockquote> +<p>one +blockquote</p> +</blockquote> +<blockquote> +<blockquote> +<blockquote> +<p>triply nested +triply nested</p> +</blockquote> +</blockquote> +</blockquote> diff --git a/oldtests/Blockquotes/Indents.markdown b/oldtests/Blockquotes/Indents.markdown new file mode 100644 index 0000000..f9342ff --- /dev/null +++ b/oldtests/Blockquotes/Indents.markdown @@ -0,0 +1,5 @@ +> one + > blockquote + +>>> triply nested + > > > triply nested diff --git a/oldtests/Blockquotes/Nesting.html b/oldtests/Blockquotes/Nesting.html new file mode 100644 index 0000000..f40e999 --- /dev/null +++ b/oldtests/Blockquotes/Nesting.html @@ -0,0 +1,32 @@ +<p>These are all equivalent:</p> +<blockquote> +<blockquote> +<p>nested +blockquote</p> +</blockquote> +</blockquote> +<blockquote> +<blockquote> +<p>nested +blockquote</p> +</blockquote> +</blockquote> +<blockquote> +<blockquote> +<p>nested +blockquote</p> +</blockquote> +</blockquote> +<blockquote> +<blockquote> +<p>nested +blockquote</p> +</blockquote> +</blockquote> +<p>This is not:</p> +<blockquote> +<p>nested</p> +<blockquote> +<p>blockquote</p> +</blockquote> +</blockquote> diff --git a/oldtests/Blockquotes/Nesting.markdown b/oldtests/Blockquotes/Nesting.markdown new file mode 100644 index 0000000..3d67843 --- /dev/null +++ b/oldtests/Blockquotes/Nesting.markdown @@ -0,0 +1,22 @@ +These are all equivalent: + +> > nested +> > blockquote + + +>> nested +>> blockquote + + +> > nested +blockquote + + +> > nested +> blockquote + + +This is not: + +> nested +> > blockquote diff --git a/oldtests/Blockquotes/Separation.html b/oldtests/Blockquotes/Separation.html new file mode 100644 index 0000000..910d545 --- /dev/null +++ b/oldtests/Blockquotes/Separation.html @@ -0,0 +1,39 @@ +<p>One blockquote, two paragraphs:</p> +<blockquote> +<p>one</p> +<p>two</p> +</blockquote> +<p>Two blockquotes:</p> +<blockquote> +<p>one</p> +</blockquote> +<blockquote> +<p>two</p> +</blockquote> +<p>Nested blockquote, two paragraphs:</p> +<blockquote> +<blockquote> +<p>one</p> +<p>two</p> +</blockquote> +</blockquote> +<p>Nested blockquote, two blockquotes:</p> +<blockquote> +<blockquote> +<p>one</p> +</blockquote> +<blockquote> +<p>two</p> +</blockquote> +</blockquote> +<p>Two nested blockquotes:</p> +<blockquote> +<blockquote> +<p>one</p> +</blockquote> +</blockquote> +<blockquote> +<blockquote> +<p>two</p> +</blockquote> +</blockquote> diff --git a/oldtests/Blockquotes/Separation.markdown b/oldtests/Blockquotes/Separation.markdown new file mode 100644 index 0000000..823d865 --- /dev/null +++ b/oldtests/Blockquotes/Separation.markdown @@ -0,0 +1,29 @@ +One blockquote, two paragraphs: + +> one +> +> two + +Two blockquotes: + +> one + +> two + +Nested blockquote, two paragraphs: + +> > one +> > +> > two + +Nested blockquote, two blockquotes: + +> > one +> +> > two + +Two nested blockquotes: + +> > one + +> > two diff --git a/oldtests/Code/BlankLines.html b/oldtests/Code/BlankLines.html new file mode 100644 index 0000000..ae0abf7 --- /dev/null +++ b/oldtests/Code/BlankLines.html @@ -0,0 +1,33 @@ +<pre><code>foo + + + +bar +</code></pre> +<blockquote> +<pre><code>foo + + + +bar +</code></pre> +</blockquote> +<pre><code>foo + + + +bar +</code></pre> +<ol> +<li><p>One</p> +<pre><code>CodeA + +CodeB +</code></pre></li> +<li><p>Two</p> +<pre><code>CodeA +</code></pre></li> +</ol> +<ol> +<li>One</li> +</ol> diff --git a/oldtests/Code/BlankLines.markdown b/oldtests/Code/BlankLines.markdown new file mode 100644 index 0000000..b0d5a0c --- /dev/null +++ b/oldtests/Code/BlankLines.markdown @@ -0,0 +1,28 @@ + foo + + + + bar +> foo +> +> +> +> bar + foo + + + + bar + +1. One + + CodeA + + CodeB + +2. Two + + CodeA + + +1. One diff --git a/oldtests/Code/BlankLinesAtEnd.html b/oldtests/Code/BlankLinesAtEnd.html new file mode 100644 index 0000000..ac803d9 --- /dev/null +++ b/oldtests/Code/BlankLinesAtEnd.html @@ -0,0 +1,14 @@ +<ul> +<li><p>List</p> +<pre><code>code +</code></pre></li> +</ul> +<ul> +<li>one</li> +<li>two</li> +</ul> +<ul> +<li><p>one +not code</p></li> +<li><p>two</p></li> +</ul> diff --git a/oldtests/Code/BlankLinesAtEnd.markdown b/oldtests/Code/BlankLinesAtEnd.markdown new file mode 100644 index 0000000..55879ae --- /dev/null +++ b/oldtests/Code/BlankLinesAtEnd.markdown @@ -0,0 +1,14 @@ +* List + + code + + + * one + * two + + + +* one + not code + +* two diff --git a/oldtests/Code/FenceMatching.html b/oldtests/Code/FenceMatching.html new file mode 100644 index 0000000..4c7468e --- /dev/null +++ b/oldtests/Code/FenceMatching.html @@ -0,0 +1,8 @@ +<pre class="abc"><code>``` +</code></pre> +<pre class="blah"><code> +````` + +```` + +</code></pre> diff --git a/oldtests/Code/FenceMatching.markdown b/oldtests/Code/FenceMatching.markdown new file mode 100644 index 0000000..d86169a --- /dev/null +++ b/oldtests/Code/FenceMatching.markdown @@ -0,0 +1,10 @@ +````abc +``` +```` +``````blah + +````` + +```` + +``````````` diff --git a/oldtests/Code/FencedCodeBlocks.html b/oldtests/Code/FencedCodeBlocks.html new file mode 100644 index 0000000..4813d72 --- /dev/null +++ b/oldtests/Code/FencedCodeBlocks.html @@ -0,0 +1,24 @@ +<p>This is a fenced code block:</p> +<pre class="haskell"><code>pairs :: [(Int,Char)] +pairs = [(x,y) | x <- [0..10], y <- ['a'..'z']] +</code></pre> +<p>Here is one with tildes:</p> +<pre class="haskell"><code>pairs :: [(Int,Char)] +pairs = [(x,y) | x <- [0..10], y <- ['a'..'z']] +</code></pre> +<p>More metadata:</p> +<pre class="haskell"><code>pairs :: [(Int,Char)] +pairs = [(x,y) | x <- [0..10], y <- ['a'..'z']] +</code></pre> +<p>More backticks:</p> +<pre class="haskell"><code>pairs :: [(Int,Char)] +pairs = [(x,y) | x <- [0..10], y <- ['a'..'z']] + +backticks :: String +backticks = "`````" +</code></pre> +<p>Without an end:</p> +<pre><code>code with +no end + +</code></pre> diff --git a/oldtests/Code/FencedCodeBlocks.markdown b/oldtests/Code/FencedCodeBlocks.markdown new file mode 100644 index 0000000..6ccc6be --- /dev/null +++ b/oldtests/Code/FencedCodeBlocks.markdown @@ -0,0 +1,35 @@ +This is a fenced code block: +```haskell +pairs :: [(Int,Char)] +pairs = [(x,y) | x <- [0..10], y <- ['a'..'z']] +``` +Here is one with tildes: + +~~~ haskell +pairs :: [(Int,Char)] +pairs = [(x,y) | x <- [0..10], y <- ['a'..'z']] +~~~ + +More metadata: + +```haskell numberLines start=50 +pairs :: [(Int,Char)] +pairs = [(x,y) | x <- [0..10], y <- ['a'..'z']] +``` + +More backticks: + +```````` haskell +pairs :: [(Int,Char)] +pairs = [(x,y) | x <- [0..10], y <- ['a'..'z']] + +backticks :: String +backticks = "`````" +````````````` + +Without an end: + +``` +code with +no end + diff --git a/oldtests/Code/IndentedCodeBlocks.html b/oldtests/Code/IndentedCodeBlocks.html new file mode 100644 index 0000000..0b9b7e7 --- /dev/null +++ b/oldtests/Code/IndentedCodeBlocks.html @@ -0,0 +1,22 @@ +<p>Indented code with two space indent in first and last line:</p> +<pre><code> two spaces *hello* +{ more } + + and +</code></pre> +<p>Indented code requires a leading/trailing blank line: +quick-command --option "$*"</p> +<p>Indented code does not require a trailing blank line:</p> +<pre><code>code +</code></pre> +<p>and not code.</p> +<p>Code in blockquote:</p> +<blockquote> +<pre><code>code +</code></pre> +</blockquote> +<p>Code in list:</p> +<ol> +<li><pre><code>code +</code></pre></li> +</ol> diff --git a/oldtests/Code/IndentedCodeBlocks.markdown b/oldtests/Code/IndentedCodeBlocks.markdown new file mode 100644 index 0000000..2a99db0 --- /dev/null +++ b/oldtests/Code/IndentedCodeBlocks.markdown @@ -0,0 +1,22 @@ +Indented code with two space indent in first and last line: + + two spaces *hello* + { more } + + and + +Indented code requires a leading/trailing blank line: + quick-command --option "$*" + +Indented code does not require a trailing blank line: + + code +and not code. + +Code in blockquote: + +> code + +Code in list: + +1. code diff --git a/oldtests/Code/IndentedFences.html b/oldtests/Code/IndentedFences.html new file mode 100644 index 0000000..66e76da --- /dev/null +++ b/oldtests/Code/IndentedFences.html @@ -0,0 +1,20 @@ +<pre><code>a +</code></pre> +<pre><code>z +</code></pre> +<pre><code>a +a +a + a +</code></pre> +<ul> +<li><p>foo</p> +<pre><code> Hello + +World +</code></pre></li> +</ul> +<blockquote> +<pre><code>a +</code></pre> +</blockquote> diff --git a/oldtests/Code/IndentedFences.markdown b/oldtests/Code/IndentedFences.markdown new file mode 100644 index 0000000..098545f --- /dev/null +++ b/oldtests/Code/IndentedFences.markdown @@ -0,0 +1,26 @@ + ``` + a + ``` + + ``` +z +``` + + ``` +a + a + a + a + ``` + +* foo + + ``` + Hello + + World + ``` + +> ``` +>a +>``` diff --git a/oldtests/Code/IndentedInLists.html b/oldtests/Code/IndentedInLists.html new file mode 100644 index 0000000..76ed424 --- /dev/null +++ b/oldtests/Code/IndentedInLists.html @@ -0,0 +1,22 @@ +<ul> +<li><pre><code>code starts here +</code></pre></li> +</ul> +<ol> +<li><p>foo</p> +<pre><code>code starts here +</code></pre></li> +<li><p>foo</p> +<pre><code>code starts here +</code></pre></li> +</ol> +<ul> +<li><p>foo</p> +<pre><code>code starts here +</code></pre> +<ul> +<li><p>foo</p> +<pre><code>code starts here +</code></pre></li> +</ul></li> +</ul> diff --git a/oldtests/Code/IndentedInLists.markdown b/oldtests/Code/IndentedInLists.markdown new file mode 100644 index 0000000..54e1af1 --- /dev/null +++ b/oldtests/Code/IndentedInLists.markdown @@ -0,0 +1,17 @@ +- code starts here + +1. foo + + code starts here + +2. foo + + code starts here + +- foo + + code starts here + + - foo + + code starts here diff --git a/oldtests/Code/Inline.html b/oldtests/Code/Inline.html new file mode 100644 index 0000000..9c52790 --- /dev/null +++ b/oldtests/Code/Inline.html @@ -0,0 +1,13 @@ +<p>All of these are equivalent:</p> +<ul> +<li><code>*hi*</code></li> +<li><code>*hi*</code></li> +<li><code>*hi*</code></li> +<li><code>*hi*</code></li> +<li><code>*hi*</code></li> +</ul> +<p>Backticks in code spans:</p> +<ul> +<li><code>``code``</code></li> +<li><code>``code``</code></li> +</ul> diff --git a/oldtests/Code/Inline.markdown b/oldtests/Code/Inline.markdown new file mode 100644 index 0000000..38e5b0c --- /dev/null +++ b/oldtests/Code/Inline.markdown @@ -0,0 +1,13 @@ +All of these are equivalent: + +- `*hi*` +- ` *hi* ` +- ``*hi* `` +- ````*hi*```` +- `*hi* + ` + +Backticks in code spans: + +- ``` ``code`` ``` +- ` ``code`` ` diff --git a/oldtests/Code/ListBreakAfter.html b/oldtests/Code/ListBreakAfter.html new file mode 100644 index 0000000..29d6d5e --- /dev/null +++ b/oldtests/Code/ListBreakAfter.html @@ -0,0 +1,30 @@ +<ul> +<li><p>foo</p> +<ul> +<li><p>bar</p> +<pre><code>code1 +code2 +</code></pre> +<p>code?</p></li> +</ul></li> +<li><p>foo</p> +<ul> +<li><p>bar</p> +<pre><code>code1 +code2 +</code></pre></li> +</ul></li> +</ul> +<pre><code>code? +</code></pre> +<ul> +<li>foo +<ul> +<li><p>bar</p> +<pre><code>code1 +code2 +</code></pre></li> +</ul></li> +</ul> +<pre><code>code? +</code></pre> diff --git a/oldtests/Code/ListBreakAfter.markdown b/oldtests/Code/ListBreakAfter.markdown new file mode 100644 index 0000000..4fa79f1 --- /dev/null +++ b/oldtests/Code/ListBreakAfter.markdown @@ -0,0 +1,26 @@ +* foo + * bar + + code1 + code2 + + code? + +* foo + * bar + + code1 + code2 + + + code? + +* foo + * bar + + code1 + code2 + + + + code? diff --git a/oldtests/Code/WhiteLines.html b/oldtests/Code/WhiteLines.html new file mode 100644 index 0000000..7fa137f --- /dev/null +++ b/oldtests/Code/WhiteLines.html @@ -0,0 +1,7 @@ +<pre><code>ABC + + + +DEF +</code></pre> +<p>GHI</p> diff --git a/oldtests/Code/WhiteLines.markdown b/oldtests/Code/WhiteLines.markdown new file mode 100644 index 0000000..ea17af7 --- /dev/null +++ b/oldtests/Code/WhiteLines.markdown @@ -0,0 +1,9 @@ + ABC + + + + DEF + + + +GHI diff --git a/oldtests/Emphasis/Escapes.html b/oldtests/Emphasis/Escapes.html new file mode 100644 index 0000000..17c9e2d --- /dev/null +++ b/oldtests/Emphasis/Escapes.html @@ -0,0 +1 @@ +<p><em>hi* there</em></p> diff --git a/oldtests/Emphasis/Escapes.markdown b/oldtests/Emphasis/Escapes.markdown new file mode 100644 index 0000000..4f14698 --- /dev/null +++ b/oldtests/Emphasis/Escapes.markdown @@ -0,0 +1 @@ +*hi\* there*
\ No newline at end of file diff --git a/oldtests/Emphasis/NestedEmphAndStrong.html b/oldtests/Emphasis/NestedEmphAndStrong.html new file mode 100644 index 0000000..b41b527 --- /dev/null +++ b/oldtests/Emphasis/NestedEmphAndStrong.html @@ -0,0 +1,66 @@ +<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>**test <em>test</em>* test*</li> +<li>__test␣<em>test</em>_␣test_</li> +<li><em>test <em>test</em> test</em></li> +<li><em>test <em>test</em> test</em></li> +<li><strong>test <strong>test</strong> test</strong></li> +<li><strong>test <strong>test</strong> test</strong></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> +<li>my_precious_file.txt</li> +</ol> +<p>Tricky Cases:</p> +<ol> +<li>E**. <strong>Test</strong> TestTestTest</li> +<li>E**. <strong>Test</strong> Test Test Test</li> +</ol> +<p>Overlong emphasis:</p> +<p>Name: ____________<br /> +Organization: ____<br /> +Region/Country: __</p> +<p>_____Cut here_____</p> +<p>____Cut here____</p> diff --git a/oldtests/Emphasis/NestedEmphAndStrong.markdown b/oldtests/Emphasis/NestedEmphAndStrong.markdown new file mode 100644 index 0000000..ec7da25 --- /dev/null +++ b/oldtests/Emphasis/NestedEmphAndStrong.markdown @@ -0,0 +1,69 @@ +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 +7. my_precious_file.txt + +Tricky Cases: + +1. E**. **Test** TestTestTest +2. E**. **Test** Test Test Test + +Overlong emphasis: + +Name: ____________ +Organization: ____ +Region/Country: __ + +_____Cut here_____ + +____Cut here____ + diff --git a/oldtests/Emphasis/Pathological.html b/oldtests/Emphasis/Pathological.html new file mode 100644 index 0000000..37eb9fa --- /dev/null +++ b/oldtests/Emphasis/Pathological.html @@ -0,0 +1,24 @@ +<p>This input can take a long time to parse in some implementations.</p> +<p>*a +*a +*a +*a +*a +*a +*a +*a +*a +*a +*a +*a +*a +*a +*a +*a +*a +*a +*a +*a +*a +aaaaa</p> +<p><em>a</em><em>a</em>a<strong>a<em>a</em><em>a</em>a</strong>a<em>a</em><em>a</em>a<strong>a<em>a</em><em>a</em>a</strong>a<em>a</em><em>a</em>a<strong>a<em>a</em><em>a</em>a</strong>a<em>a</em><em>a</em>a<strong>a<em>a</em><em>a</em>a</strong>a<em>a</em><em>a</em>a<strong>a<em>a</em><em>a</em>a</strong>a<em>a</em><em>a</em>a<strong>a<em>a</em><em>a</em>a</strong>a<em>a</em><em>a</em>a<strong>a<em>a</em><em>a</em>a</strong>a<em>a</em><em>a</em>a<strong>a<em>a</em><em>a</em>a</strong>a<em>a</em><em>a</em>a<strong>a<em>a</em><em>a</em>a</strong>a<em>a</em><em>a</em>a<strong>a<em>a</em><em>a</em>a</strong>a<em>a</em><em>a</em>a<strong>a<em>a</em><em>a</em>a</strong>a<em>a</em><em>a</em>a<strong>a<em>a</em><em>a</em>a</strong>a<em>a</em><em>a</em>a<strong>a<em>a</em><em>a</em>a</strong>a<em>a</em><em>a</em>a<strong>a<em>a</em><em>a</em>a</strong>a<em>a</em><em>a</em>a<strong>a<em>a</em><em>a</em>a</strong>a<em>a</em><em>a</em>a<strong>a<em>a</em><em>a</em>a</strong>a<em>a</em><em>a</em>a<strong>a<em>a</em><em>a</em>a</strong>a<em>a</em><em>a</em>a<strong>a<em>a</em><em>a</em>a</strong>a<em>a</em><em>a</em>a<strong>a<em>a</em><em>a</em>a</strong>a<em>a</em><em>a</em>a<strong>a<em>a</em><em>a</em>a</strong>a<em>a</em><em>a</em>a<strong>a<em>a</em><em>a</em>a</strong>a<em>a</em><em>a</em>a<strong>a<em>a</em><em>a</em>a</strong>a<em>a</em><em>a</em>a<strong>a<em>a</em><em>a</em>a</strong>a<em>a</em><em>a</em>a<strong>a<em>a</em><em>a</em>a</strong>a<em>a</em><em>a</em>a<strong>a<em>a</em><em>a</em>a</strong>a<em>a</em><em>a</em>a<strong>a<em>a</em><em>a</em>a</strong>a<em>a</em><em>a</em>a<strong>a<em>a</em><em>a</em>a</strong>a<em>a</em><em>a</em>a**</p> diff --git a/oldtests/Emphasis/Pathological.markdown b/oldtests/Emphasis/Pathological.markdown new file mode 100644 index 0000000..5deb95e --- /dev/null +++ b/oldtests/Emphasis/Pathological.markdown @@ -0,0 +1,26 @@ +This input can take a long time to parse in some implementations. + +*a +*a +*a +*a +*a +*a +*a +*a +*a +*a +*a +*a +*a +*a +*a +*a +*a +*a +*a +*a +*a +aaaaa + +*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**a*a** diff --git a/oldtests/Emphasis/Punctuation.html b/oldtests/Emphasis/Punctuation.html new file mode 100644 index 0000000..6061b81 --- /dev/null +++ b/oldtests/Emphasis/Punctuation.html @@ -0,0 +1,10 @@ +<p>Here is a _ that is <em>cool</em>.</p> +<p><em>Foo.</em></p> +<p><strong>Foo.</strong></p> +<p><strong><em>Foo.</em></strong></p> +<p><em>Foo</em>.</p> +<p><strong>Foo</strong>.</p> +<p><strong><em>Foo</em></strong>.</p> +<p><em>Foo</em>. <em>Foo</em>? <em>Foo</em>! <em>Foo</em>: <em>Foo</em>; (<em>Foo</em>)</p> +<p><strong>Foo</strong>. <strong>Foo</strong>? <strong>Foo</strong>! <strong>Foo</strong>: <strong>Foo</strong>; (<strong>Foo</strong>)</p> +<p><strong><em>Foo</em></strong>. <strong><em>Foo</em></strong>? <strong><em>Foo</em></strong>! <strong><em>Foo</em></strong>: <strong><em>Foo</em></strong>; (<strong><em>Foo</em></strong>)</p> diff --git a/oldtests/Emphasis/Punctuation.markdown b/oldtests/Emphasis/Punctuation.markdown new file mode 100644 index 0000000..e3f23b8 --- /dev/null +++ b/oldtests/Emphasis/Punctuation.markdown @@ -0,0 +1,19 @@ +Here is a _ that is _cool_. + +_Foo._ + +__Foo.__ + +___Foo.___ + +_Foo_. + +__Foo__. + +___Foo___. + +_Foo_. _Foo_? _Foo_! _Foo_: _Foo_; (_Foo_) + +__Foo__. __Foo__? __Foo__! __Foo__: __Foo__; (__Foo__) + +___Foo___. ___Foo___? ___Foo___! ___Foo___: ___Foo___; (___Foo___) diff --git a/oldtests/HTML/Blocks.html b/oldtests/HTML/Blocks.html new file mode 100644 index 0000000..dc80335 --- /dev/null +++ b/oldtests/HTML/Blocks.html @@ -0,0 +1,18 @@ +<div> + <div> + *raw html* + </div> +</div> +<div> +<div> +<p><em>this is markdown</em></p> +</div> +</div> +<!-- comment +here --> +<!-- +<p><em>commented out markdown</em></p> +--> +<div> +* raw html with trailing space +</div> diff --git a/oldtests/HTML/Blocks.markdown b/oldtests/HTML/Blocks.markdown new file mode 100644 index 0000000..a83fa66 --- /dev/null +++ b/oldtests/HTML/Blocks.markdown @@ -0,0 +1,26 @@ +<div> + <div> + *raw html* + </div> +</div> + +<div> +<div> + +*this is markdown* + +</div> +</div> + +<!-- comment +here --> + +<!-- + +*commented out markdown* + +--> + +<div> +* raw html with trailing space +</div> diff --git a/oldtests/HTML/Inline.html b/oldtests/HTML/Inline.html new file mode 100644 index 0000000..94d40ac --- /dev/null +++ b/oldtests/HTML/Inline.html @@ -0,0 +1,8 @@ +<p><span>hi</span> +<span><code>hi</code></span> +<span class="foo bar" +title='whatever' blue=yes/> +Hello <!-- this +is a comment --> there. +A line<br />break. +<not a tag></p> diff --git a/oldtests/HTML/Inline.markdown b/oldtests/HTML/Inline.markdown new file mode 100644 index 0000000..2259421 --- /dev/null +++ b/oldtests/HTML/Inline.markdown @@ -0,0 +1,8 @@ +<span>hi</span> +<span>`hi`</span> +<span class="foo bar" +title='whatever' blue=yes/> +Hello <!-- this +is a comment --> there. +A line<br />break. +<not a tag> diff --git a/oldtests/HTML/UppercaseTags.html b/oldtests/HTML/UppercaseTags.html new file mode 100644 index 0000000..8d2d828 --- /dev/null +++ b/oldtests/HTML/UppercaseTags.html @@ -0,0 +1,4 @@ +<DIV> +this is a block +</DIV> +<p>Here is some <I>inline</I> html.</p> diff --git a/oldtests/HTML/UppercaseTags.markdown b/oldtests/HTML/UppercaseTags.markdown new file mode 100644 index 0000000..b476ffb --- /dev/null +++ b/oldtests/HTML/UppercaseTags.markdown @@ -0,0 +1,5 @@ +<DIV> +this is a block +</DIV> + +Here is some <I>inline</I> html.
\ No newline at end of file diff --git a/oldtests/Headers/ATX.html b/oldtests/Headers/ATX.html new file mode 100644 index 0000000..f375b98 --- /dev/null +++ b/oldtests/Headers/ATX.html @@ -0,0 +1,14 @@ +<h1>One</h1> +<h2>Two</h2> +<h3>Three</h3> +<h4>Four</h4> +<h5>Five</h5> +<h6>Six</h6> +<p>####### Seven</p> +<h3>Three with</h3> +<h2>Spacing doesn't matter</h2> +<h2>Escaped final #</h2> +<p>## Not a header</p> +<p>#5 not a header</p> +<h2></h2> +<p>(empty header)</p> diff --git a/oldtests/Headers/ATX.markdown b/oldtests/Headers/ATX.markdown new file mode 100644 index 0000000..f687aa5 --- /dev/null +++ b/oldtests/Headers/ATX.markdown @@ -0,0 +1,20 @@ +# One +## Two +### Three +#### Four +##### Five + +###### Six + +####### Seven + +### Three with ### +## Spacing doesn't matter ## +## Escaped final \## + +\## Not a header + +#5 not a header + +## +(empty header) diff --git a/oldtests/Headers/Setext.html b/oldtests/Headers/Setext.html new file mode 100644 index 0000000..787fb02 --- /dev/null +++ b/oldtests/Headers/Setext.html @@ -0,0 +1,9 @@ +<h1>Level one</h1> +<h2>Two</h2> +<p>In a paragraph</p> +<h2>Level two</h2> +<p>more text</p> +<p>====== +no empty headers</p> +<p>not a header</p> +<hr /> diff --git a/oldtests/Headers/Setext.markdown b/oldtests/Headers/Setext.markdown new file mode 100644 index 0000000..da0c7e2 --- /dev/null +++ b/oldtests/Headers/Setext.markdown @@ -0,0 +1,17 @@ +Level one +========= + +Two +--- + +In a paragraph + +Level two +--------- +more text + +====== +no empty headers + +not a header +------------ ----- diff --git a/oldtests/Links/AngleBrackets.html b/oldtests/Links/AngleBrackets.html new file mode 100644 index 0000000..21ac00d --- /dev/null +++ b/oldtests/Links/AngleBrackets.html @@ -0,0 +1,3 @@ +<p><a href="?}]*+|&)">silly URL with angle brackets</a>.</p> +<p><a href="url://with spaces" title="title">link</a>.</p> +<p><a href="url with spaces" title="title">link</a>.</p> diff --git a/oldtests/Links/AngleBrackets.markdown b/oldtests/Links/AngleBrackets.markdown new file mode 100644 index 0000000..c2e06ff --- /dev/null +++ b/oldtests/Links/AngleBrackets.markdown @@ -0,0 +1,7 @@ +[silly URL with angle brackets](<?}]*+|&)>). + +[link](<url://with spaces> "title"). + +[link][]. + +[link]: <url with spaces> "title" diff --git a/oldtests/Links/AutoLinks.html b/oldtests/Links/AutoLinks.html new file mode 100644 index 0000000..092353f --- /dev/null +++ b/oldtests/Links/AutoLinks.html @@ -0,0 +1,7 @@ +<p><a href="http://google.com?query=blah&time=15">http://google.com?query=blah&time=15</a> +<a href="mailto:someone.else@somedomain.com">someone.else@somedomain.com</a> +<a href="ftp://old.ftp.server.edu">ftp://old.ftp.server.edu</a> +<a href="git://some.git.repo/project.git">git://some.git.repo/project.git</a> +<not autolink> +<http://not.an autolink> +<relative/not/autolink></p> diff --git a/oldtests/Links/AutoLinks.markdown b/oldtests/Links/AutoLinks.markdown new file mode 100644 index 0000000..bf95b8d --- /dev/null +++ b/oldtests/Links/AutoLinks.markdown @@ -0,0 +1,7 @@ +<http://google.com?query=blah&time=15> +<someone.else@somedomain.com> +<ftp://old.ftp.server.edu> +<git://some.git.repo/project.git> +<not autolink> +<http://not.an autolink> +<relative/not/autolink> diff --git a/oldtests/Links/BackticksInLinks.html b/oldtests/Links/BackticksInLinks.html new file mode 100644 index 0000000..ff70383 --- /dev/null +++ b/oldtests/Links/BackticksInLinks.html @@ -0,0 +1 @@ +<p><a href="/url">the right bracket character (<code>]</code>)</a></p> diff --git a/oldtests/Links/BackticksInLinks.markdown b/oldtests/Links/BackticksInLinks.markdown new file mode 100644 index 0000000..539fd52 --- /dev/null +++ b/oldtests/Links/BackticksInLinks.markdown @@ -0,0 +1 @@ +[the right bracket character (`]`)](/url) diff --git a/oldtests/Links/CaseInsensitiveReferences.html b/oldtests/Links/CaseInsensitiveReferences.html new file mode 100644 index 0000000..afe4557 --- /dev/null +++ b/oldtests/Links/CaseInsensitiveReferences.html @@ -0,0 +1 @@ +<p><a href="/url">Толпой</a> is a Russian word.</p> diff --git a/oldtests/Links/CaseInsensitiveReferences.markdown b/oldtests/Links/CaseInsensitiveReferences.markdown new file mode 100644 index 0000000..f9653b9 --- /dev/null +++ b/oldtests/Links/CaseInsensitiveReferences.markdown @@ -0,0 +1,3 @@ +[Толпой] is a Russian word. + +[ТОЛПОЙ]: /url diff --git a/oldtests/Links/Entities.html b/oldtests/Links/Entities.html new file mode 100644 index 0000000..252dadb --- /dev/null +++ b/oldtests/Links/Entities.html @@ -0,0 +1,2 @@ +<p><a href="http://göögle.com">http://göögle.com</a></p> +<p><a href="/url" title="göögle & yahoo">hi</a></p> diff --git a/oldtests/Links/Entities.markdown b/oldtests/Links/Entities.markdown new file mode 100644 index 0000000..d81ee36 --- /dev/null +++ b/oldtests/Links/Entities.markdown @@ -0,0 +1,3 @@ +<http://göögle.com> + +[hi](/url "göögle & yahoo") diff --git a/oldtests/Links/InlineLinks.html b/oldtests/Links/InlineLinks.html new file mode 100644 index 0000000..ae33f33 --- /dev/null +++ b/oldtests/Links/InlineLinks.html @@ -0,0 +1,10 @@ +<ol> +<li><a href="/url">link</a></li> +<li><a href="/url" title="title">link</a></li> +<li><a href="/url" title="title">link</a></li> +<li><a href="/url with spaces" title="title +with linebreak">link <em>with +linebreak</em></a>.</li> +<li><a href="/url(withparens)" title="and single quoted title">link</a></li> +<li>[not a link] (/url)</li> +</ol> diff --git a/oldtests/Links/InlineLinks.markdown b/oldtests/Links/InlineLinks.markdown new file mode 100644 index 0000000..a822c4d --- /dev/null +++ b/oldtests/Links/InlineLinks.markdown @@ -0,0 +1,9 @@ +1. [link](/url) +2. [link](/url "title") +3. [link](/url + "title") +4. [link *with +linebreak*](</url with spaces> "title +with linebreak"). +5. [link](/url(withparens) 'and single quoted title') +6. [not a link] (/url) diff --git a/oldtests/Links/ParensInURLs.html b/oldtests/Links/ParensInURLs.html new file mode 100644 index 0000000..9cd6de7 --- /dev/null +++ b/oldtests/Links/ParensInURLs.html @@ -0,0 +1,6 @@ +<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> diff --git a/oldtests/Links/ParensInURLs.markdown b/oldtests/Links/ParensInURLs.markdown new file mode 100644 index 0000000..bb7be4f --- /dev/null +++ b/oldtests/Links/ParensInURLs.markdown @@ -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/oldtests/Links/ReferenceLinks.html b/oldtests/Links/ReferenceLinks.html new file mode 100644 index 0000000..397cdb2 --- /dev/null +++ b/oldtests/Links/ReferenceLinks.html @@ -0,0 +1,7 @@ +<ol> +<li><p><a href="/url" title="even in a list item">Link references</a> can be defined anywhere.</p></li> +</ol> +<blockquote> +<p><a href="/foo" title="can break +lines">another</a> one</p> +</blockquote> diff --git a/oldtests/Links/ReferenceLinks.markdown b/oldtests/Links/ReferenceLinks.markdown new file mode 100644 index 0000000..ebcf5a9 --- /dev/null +++ b/oldtests/Links/ReferenceLinks.markdown @@ -0,0 +1,10 @@ +1. [Link references] can be defined anywhere. + + [Link references]: /url + (even in a list item) + +> [another] one +> +> [another]: +> /foo "can break +> lines" diff --git a/oldtests/Lists/CodeBlocksInLists.html b/oldtests/Lists/CodeBlocksInLists.html new file mode 100644 index 0000000..fcd3e2a --- /dev/null +++ b/oldtests/Lists/CodeBlocksInLists.html @@ -0,0 +1,14 @@ +<ol> +<li><p>list item +code</p></li> +<li><p>list item</p> +<pre><code>code +</code></pre></li> +<li><pre><code>code +</code></pre></li> +<li><pre><code>code +</code></pre></li> +<li><pre><code>code +code +</code></pre></li> +</ol> diff --git a/oldtests/Lists/CodeBlocksInLists.markdown b/oldtests/Lists/CodeBlocksInLists.markdown new file mode 100644 index 0000000..7730808 --- /dev/null +++ b/oldtests/Lists/CodeBlocksInLists.markdown @@ -0,0 +1,18 @@ +1. list item + code + +2. list item + ~~~ + code + ~~~ + +3. ~~~ + code + ~~~ + +4. ~~~ + code + ~~~ + +5. code + code diff --git a/oldtests/Lists/ConsecutiveLists.html b/oldtests/Lists/ConsecutiveLists.html new file mode 100644 index 0000000..f8f9098 --- /dev/null +++ b/oldtests/Lists/ConsecutiveLists.html @@ -0,0 +1,20 @@ +<ul> +<li>one</li> +<li>one</li> +</ul> +<ul> +<li>two</li> +<li>two</li> +</ul> +<ul> +<li>three</li> +<li>three</li> +</ul> +<ol> +<li>four</li> +<li>four</li> +</ol> +<ol> +<li>five</li> +<li>five</li> +</ol> diff --git a/oldtests/Lists/ConsecutiveLists.markdown b/oldtests/Lists/ConsecutiveLists.markdown new file mode 100644 index 0000000..c4faa54 --- /dev/null +++ b/oldtests/Lists/ConsecutiveLists.markdown @@ -0,0 +1,10 @@ +* one +* one ++ two ++ two +- three +- three +1. four +1. four +1) five +1) five diff --git a/oldtests/Lists/EmptyListItem.html b/oldtests/Lists/EmptyListItem.html new file mode 100644 index 0000000..2c23fe1 --- /dev/null +++ b/oldtests/Lists/EmptyListItem.html @@ -0,0 +1,10 @@ +<ul> +<li>one</li> +<li></li> +<li>three</li> +</ul> +<ol> +<li>one</li> +<li></li> +<li>three</li> +</ol> diff --git a/oldtests/Lists/EmptyListItem.markdown b/oldtests/Lists/EmptyListItem.markdown new file mode 100644 index 0000000..d30cbc3 --- /dev/null +++ b/oldtests/Lists/EmptyListItem.markdown @@ -0,0 +1,7 @@ +- one +- +- three + +1. one +2. +3. three diff --git a/oldtests/Lists/InBlockquote.html b/oldtests/Lists/InBlockquote.html new file mode 100644 index 0000000..da233e8 --- /dev/null +++ b/oldtests/Lists/InBlockquote.html @@ -0,0 +1,22 @@ +<blockquote> +<ul> +<li>tight</li> +<li>tight</li> +</ul> +</blockquote> +<blockquote> +<ul> +<li><p>loose</p></li> +<li><p>loose</p></li> +</ul> +</blockquote> +<blockquote> +<ul> +<li>one-item list</li> +</ul> +</blockquote> +<blockquote> +<ul> +<li>one-item list</li> +</ul> +</blockquote> diff --git a/oldtests/Lists/InBlockquote.markdown b/oldtests/Lists/InBlockquote.markdown new file mode 100644 index 0000000..511563b --- /dev/null +++ b/oldtests/Lists/InBlockquote.markdown @@ -0,0 +1,12 @@ +> - tight +> - tight + + +> - loose +> +> - loose + + +> - one-item list + +> - one-item list diff --git a/oldtests/Lists/Indents.html b/oldtests/Lists/Indents.html new file mode 100644 index 0000000..a11a5a6 --- /dev/null +++ b/oldtests/Lists/Indents.html @@ -0,0 +1,22 @@ +<blockquote> +<ul> +<li><p>foo</p> +<p>bar</p></li> +</ul> +</blockquote> +<ul> +<li>one</li> +<li>two</li> +</ul> +<ul> +<li>one</li> +<li>two</li> +<li>three</li> +</ul> +<ul> +<li>one +<ul> +<li>two</li> +</ul></li> +<li>three</li> +</ul> diff --git a/oldtests/Lists/Indents.markdown b/oldtests/Lists/Indents.markdown new file mode 100644 index 0000000..293d112 --- /dev/null +++ b/oldtests/Lists/Indents.markdown @@ -0,0 +1,17 @@ + > * foo +> +> bar + + + - one + - two + + +- one + - two +- three + + +- one + - two +- three diff --git a/oldtests/Lists/ListsAndHRs.html b/oldtests/Lists/ListsAndHRs.html new file mode 100644 index 0000000..40826f7 --- /dev/null +++ b/oldtests/Lists/ListsAndHRs.html @@ -0,0 +1,7 @@ +<ul> +<li>item 1 +<ul> +<li>item 2</li> +</ul></li> +</ul> +<hr /> diff --git a/oldtests/Lists/ListsAndHRs.markdown b/oldtests/Lists/ListsAndHRs.markdown new file mode 100644 index 0000000..19c07e7 --- /dev/null +++ b/oldtests/Lists/ListsAndHRs.markdown @@ -0,0 +1,3 @@ +* item 1 + * item 2 +* * * * * diff --git a/oldtests/Lists/ListsAndSetextHeaders.html b/oldtests/Lists/ListsAndSetextHeaders.html new file mode 100644 index 0000000..c6af9eb --- /dev/null +++ b/oldtests/Lists/ListsAndSetextHeaders.html @@ -0,0 +1,6 @@ +<ol> +<li>item</li> +<li>item +Not header</li> +</ol> +<hr /> diff --git a/oldtests/Lists/ListsAndSetextHeaders.markdown b/oldtests/Lists/ListsAndSetextHeaders.markdown new file mode 100644 index 0000000..acfa655 --- /dev/null +++ b/oldtests/Lists/ListsAndSetextHeaders.markdown @@ -0,0 +1,4 @@ +1. item +2. item +Not header +---------- diff --git a/oldtests/Lists/MultipleBlankLines.html b/oldtests/Lists/MultipleBlankLines.html new file mode 100644 index 0000000..d894db1 --- /dev/null +++ b/oldtests/Lists/MultipleBlankLines.html @@ -0,0 +1,56 @@ +<ol> +<li><p>First Item</p> +<ul> +<li><p>one</p> +<ul> +<li>two</li> +</ul></li> +<li><p>one</p> +<ul> +<li>two</li> +</ul></li> +</ul></li> +<li><p>Second Item</p> +<ul> +<li>one +<ul> +<li>two</li> +</ul></li> +</ul></li> +</ol> +<ul> +<li>one +<ul> +<li>two</li> +</ul></li> +</ul> +<ol> +<li><p>Third Item</p> +<ul> +<li>one +<ul> +<li>two</li> +</ul></li> +</ul></li> +</ol> +<ul> +<li>one +<ul> +<li>two</li> +</ul></li> +</ul> +<ol> +<li><p>Fourth Item</p> +<ul> +<li>one +<ul> +<li>two</li> +</ul></li> +</ul></li> +</ol> +<ul> +<li>one +<ul> +<li>two</li> +</ul></li> +</ul> diff --git a/oldtests/Lists/MultipleBlankLines.markdown b/oldtests/Lists/MultipleBlankLines.markdown new file mode 100644 index 0000000..e24a4f2 --- /dev/null +++ b/oldtests/Lists/MultipleBlankLines.markdown @@ -0,0 +1,37 @@ +1. First Item + + * one + * two + + * one + * two + +1. Second Item + + * one + * two + + + * one + * two + +1. Third Item + + * one + * two + + + + * one + * two + +1. Fourth Item + + * one + * two + + + + + * one + * two diff --git a/oldtests/Lists/Start.html b/oldtests/Lists/Start.html new file mode 100644 index 0000000..46e0550 --- /dev/null +++ b/oldtests/Lists/Start.html @@ -0,0 +1,11 @@ +<ol start="4"> +<li>this list starts with 4.</li> +<li>and continues</li> +<li>the continuation number is irrelevant.</li> +</ol> +<ol start="2001"> +<li>a space odyssey</li> +</ol> +<ol> +<li>standard lists get no start attribute</li> +</ol> diff --git a/oldtests/Lists/Start.markdown b/oldtests/Lists/Start.markdown new file mode 100644 index 0000000..175226f --- /dev/null +++ b/oldtests/Lists/Start.markdown @@ -0,0 +1,7 @@ +4. this list starts with 4. +5. and continues +1. the continuation number is irrelevant. + +2001) a space odyssey + +1. standard lists get no start attribute diff --git a/oldtests/Lists/Sublists.html b/oldtests/Lists/Sublists.html new file mode 100644 index 0000000..af62915 --- /dev/null +++ b/oldtests/Lists/Sublists.html @@ -0,0 +1,49 @@ +<p>Four levels:</p> +<ul> +<li>one +<ul> +<li>two +<ul> +<li>three +<ul> +<li>four</li> +</ul></li> +</ul></li> +</ul></li> +</ul> +<ol> +<li>one +<ol> +<li>two +<ol> +<li>three +<ol> +<li>four</li> +</ol></li> +</ol></li> +</ol></li> +</ol> +<ol> +<li>one +<ul> +<li>two +<ol> +<li>three +<ul> +<li>four</li> +</ul></li> +</ol></li> +</ul></li> +</ol> +<ul> +<li>one +<ul> +<li>two +<ol> +<li>three +<ol> +<li>four</li> +</ol></li> +</ol></li> +</ul></li> +</ul> diff --git a/oldtests/Lists/Sublists.markdown b/oldtests/Lists/Sublists.markdown new file mode 100644 index 0000000..9eced9e --- /dev/null +++ b/oldtests/Lists/Sublists.markdown @@ -0,0 +1,24 @@ +Four levels: + +- one + - two + - three + - four + + +1. one + 1. two + 1. three + 1. four + + +1) one + - two + 1) three + - four + + +- one + - two + 1. three + 1) four diff --git a/oldtests/Lists/TightAndLoose.html b/oldtests/Lists/TightAndLoose.html new file mode 100644 index 0000000..7792ebb --- /dev/null +++ b/oldtests/Lists/TightAndLoose.html @@ -0,0 +1,49 @@ +<ol> +<li>tight</li> +</ol> +<ul> +<li>tight</li> +<li>list</li> +</ul> +<ul> +<li><p>loose</p></li> +<li><p>list</p></li> +</ul> +<ol> +<li>tight</li> +<li>list</li> +</ol> +<ol> +<li><p>loose</p></li> +<li><p>list</p></li> +</ol> +<ol> +<li><p>loose</p> +<ul> +<li>sublist</li> +</ul></li> +</ol> +<ol> +<li>tight +<ul> +<li>sublist</li> +</ul></li> +</ol> +<ul> +<li>tight +<blockquote> +<p>blockquote +and</p> +</blockquote> +<pre><code>code +</code></pre></li> +<li>tight</li> +</ul> +<ul> +<li>tight +<ul> +<li><p>with loose</p></li> +<li><p>sublist</p></li> +</ul></li> +<li>tight</li> +</ul> diff --git a/oldtests/Lists/TightAndLoose.markdown b/oldtests/Lists/TightAndLoose.markdown new file mode 100644 index 0000000..263a34c --- /dev/null +++ b/oldtests/Lists/TightAndLoose.markdown @@ -0,0 +1,45 @@ +1. tight + + +- tight +- list + + +- loose + +- list + + +1. tight +2. list + + +1. loose + +2. list + + +1. loose + + - sublist + + + +1. tight + - sublist + + +- tight + > blockquote + and + ``` + code + ``` +- tight + + +- tight + - with loose + + - sublist +- tight diff --git a/oldtests/Lists/TightLooseBlockquote.html b/oldtests/Lists/TightLooseBlockquote.html new file mode 100644 index 0000000..7e78214 --- /dev/null +++ b/oldtests/Lists/TightLooseBlockquote.html @@ -0,0 +1,32 @@ +<ul> +<li>tight I +<blockquote> +<p>bq</p> +</blockquote></li> +<li>tight I</li> +</ul> +<ul> +<li>tight II +<blockquote> +<p>bq</p> +</blockquote> +foo</li> +<li>tight II</li> +</ul> +<ol> +<li>Blank lines in bq don't break list +<blockquote> +<p>bq</p> +</blockquote></li> +<li>Should say (2) in output</li> +</ol> +<ul> +<li>Blank lines in bq don't break LI +<ul> +<li>item A +<blockquote> +<p>bq</p> +</blockquote></li> +<li>item B</li> +</ul></li> +</ul> diff --git a/oldtests/Lists/TightLooseBlockquote.markdown b/oldtests/Lists/TightLooseBlockquote.markdown new file mode 100644 index 0000000..08200cc --- /dev/null +++ b/oldtests/Lists/TightLooseBlockquote.markdown @@ -0,0 +1,25 @@ +* tight I + > bq + > +* tight I + + +* tight II + > bq + > + foo +* tight II + +1. Blank lines in bq don't break list + > bq + > + > +1. Should say (2) in output + +* Blank lines in bq don't break LI + * item A + > bq + > + > + * item B +
\ No newline at end of file diff --git a/oldtests/Lists/TightLooseMore.html b/oldtests/Lists/TightLooseMore.html new file mode 100644 index 0000000..f26f457 --- /dev/null +++ b/oldtests/Lists/TightLooseMore.html @@ -0,0 +1,7 @@ +<ul> +<li><p>foo</p> +<ul> +<li>bar</li> +</ul> +<p>blah</p></li> +</ul> diff --git a/oldtests/Lists/TightLooseMore.markdown b/oldtests/Lists/TightLooseMore.markdown new file mode 100644 index 0000000..7ace63f --- /dev/null +++ b/oldtests/Lists/TightLooseMore.markdown @@ -0,0 +1,4 @@ +* foo + * bar + + blah
\ No newline at end of file diff --git a/oldtests/Lists/TwoBlankLinesEndList.html b/oldtests/Lists/TwoBlankLinesEndList.html new file mode 100644 index 0000000..629add1 --- /dev/null +++ b/oldtests/Lists/TwoBlankLinesEndList.html @@ -0,0 +1,21 @@ +<ol> +<li><p>one</p></li> +<li><p>two</p></li> +</ol> +<ol> +<li>new list</li> +</ol> +<blockquote> +<ul> +<li><p>one</p></li> +<li><p>two</p></li> +</ul> +<ul> +<li>new list</li> +</ul> +</blockquote> +<ol> +<li>one</li> +</ol> +<pre><code>code +</code></pre> diff --git a/oldtests/Lists/TwoBlankLinesEndList.markdown b/oldtests/Lists/TwoBlankLinesEndList.markdown new file mode 100644 index 0000000..2984a19 --- /dev/null +++ b/oldtests/Lists/TwoBlankLinesEndList.markdown @@ -0,0 +1,20 @@ +1. one + +2. two + + +1. new list + + +> - one +> +> - two +> +> +> - new list + + +1. one + + + code diff --git a/oldtests/Makefile b/oldtests/Makefile new file mode 100644 index 0000000..c8a30bd --- /dev/null +++ b/oldtests/Makefile @@ -0,0 +1,55 @@ +SHELL=/bin/bash +TESTDIR ?= * +PATT ?= . +TESTS=$(shell ls $(TESTDIR)/*.markdown | grep $(PATT)) +DIFFS=$(patsubst %.markdown,%.diff,$(TESTS)) +PROG ?= ../stmd +FILTER ?= perl -pe 's/ /␣/g' +TIDYCMD ?= tidy -asxhtml -utf8 --show-body-only yes --show-warnings no -quiet +DETAILS ?= 1 + +# Check to see if echo supports -e option to allow backslash escapes +ifeq ($(shell echo -e),-e) +ECHO=echo +else +ECHO=echo -e +endif + +all: $(DIFFS) + PASS=0;TESTS=0; \ + for f in $(DIFFS); do \ + let TESTS=TESTS+1; \ + [ -s $$f ] || let PASS=PASS+1; \ + done; \ + $(ECHO) "\033[1m$$PASS of $$TESTS tests passed.\033[0m"; \ + if [ $$TESTS -eq $$PASS ]; then exit 0; else exit 1; fi + +%.actual.html: %.markdown +ifeq ($(TIDY),1) + -cat $< | $(PROG) | $(TIDYCMD) > $@ +else + -cat $< | $(PROG) > $@ +endif + +%.expected.html: %.html +ifeq ($(TIDY),1) + -$(TIDYCMD) $< > $@ +else + cp $< $@ +endif + +%.diff: %.expected.html %.actual.html + diff --unified=1 <(cat $(word 1,$^) | $(FILTER)) <(cat $(word 2,$^) | $(FILTER)) > $@ ; \ + if [ -s $@ ]; then \ + $(ECHO) "\033[1;31m✘ $(patsubst %.diff,%,$@)\033[0m"; \ + if [ $(DETAILS) == "1" ]; then \ + $(ECHO) "\033[0;36m" ; cat $@; $(ECHO) "\033[0m"; \ + fi \ + else \ + $(ECHO) "\033[1;32m✓ $(patsubst %.diff,%,$@)\033[0m"; \ + fi + +.PHONY: all clean + +clean: + -@rm */*.{diff,actual.html,expected.html} diff --git a/oldtests/Misc/BackslashEscapes.html b/oldtests/Misc/BackslashEscapes.html new file mode 100644 index 0000000..3eb2aed --- /dev/null +++ b/oldtests/Misc/BackslashEscapes.html @@ -0,0 +1,14 @@ +<p>*not emphasized* +\<em>emphasis</em> +**not bold** +<br/> not a tag +[link](/foo) not a link +<a href="/foo)" title="title"">link</a> +`not code`</p> +<p>1. not a list item</p> +<p>* not a list.</p> +<p># Not a header</p> +<p>[foo]: /url "not a reference"</p> +<p>$ ^ ; can be escaped. +\a \b \T cannot. +unicode letters and symbols cannot: \π \‥.</p> diff --git a/oldtests/Misc/BackslashEscapes.markdown b/oldtests/Misc/BackslashEscapes.markdown new file mode 100644 index 0000000..23496dc --- /dev/null +++ b/oldtests/Misc/BackslashEscapes.markdown @@ -0,0 +1,19 @@ +\*not emphasized* +\\*emphasis* +\*\*not bold** +\<br/> not a tag +\[link](/foo) not a link +[link](/foo\) "title\"") +\`not code` + +1\. not a list item + +\* not a list. + +\# Not a header + +\[foo]: /url "not a reference" + +\$ \^ \; can be escaped. +\a \b \T cannot. +unicode letters and symbols cannot: \π \‥. diff --git a/oldtests/Misc/Laziness.html b/oldtests/Misc/Laziness.html new file mode 100644 index 0000000..e130eb5 --- /dev/null +++ b/oldtests/Misc/Laziness.html @@ -0,0 +1,22 @@ +<blockquote> +<ol> +<li>one +two</li> +</ol> +</blockquote> +<p>Laziness only affects paragraph continuations:</p> +<blockquote> +<pre><code>code +</code></pre> +</blockquote> +<pre><code>not same code block +</code></pre> +<ol> +<li>hello</li> +</ol> +<hr /> +<blockquote> +<pre><code></code></pre> +</blockquote> +<p>code</p> +<pre><code></code></pre> diff --git a/oldtests/Misc/Laziness.markdown b/oldtests/Misc/Laziness.markdown new file mode 100644 index 0000000..2c32870 --- /dev/null +++ b/oldtests/Misc/Laziness.markdown @@ -0,0 +1,14 @@ +> 1. one +> two + +Laziness only affects paragraph continuations: + +> code + not same code block + +1. hello +----- + +> ``` +code +``` diff --git a/oldtests/Misc/LineBreaks.html b/oldtests/Misc/LineBreaks.html new file mode 100644 index 0000000..2d85e85 --- /dev/null +++ b/oldtests/Misc/LineBreaks.html @@ -0,0 +1,11 @@ +<p>Two spaces<br /> +break a line. Or more than two<br /> +and spaces in the following line are absorbed.</p> +<p>You can also break lines with<br /> +a backslash.</p> +<p>Two spaces at the end of a paragraph are +not a line break.</p> +<p>A backslash at the end of a paragraph is +not a line break.\</p> +<h2>Similarly with setext headers</h2> +<h2>And with backslashes\</h2> diff --git a/oldtests/Misc/LineBreaks.markdown b/oldtests/Misc/LineBreaks.markdown new file mode 100644 index 0000000..3632dcb --- /dev/null +++ b/oldtests/Misc/LineBreaks.markdown @@ -0,0 +1,18 @@ +Two spaces +break a line. Or more than two + and spaces in the following line are absorbed. + +You can also break lines with\ +a backslash. + +Two spaces at the end of a paragraph are +not a line break. + +A backslash at the end of a paragraph is +not a line break.\ + +Similarly with setext headers +------------------------------- + +And with backslashes\ +--------------------- diff --git a/oldtests/Misc/Transitions.html b/oldtests/Misc/Transitions.html new file mode 100644 index 0000000..fceff9f --- /dev/null +++ b/oldtests/Misc/Transitions.html @@ -0,0 +1,26 @@ +<blockquote> +<p>blockquote</p> +<blockquote> +<p>blockquote</p> +</blockquote> +</blockquote> +<ol> +<li>list</li> +<li>list +<ul> +<li>sublist</li> +</ul></li> +</ol> +<hr /> +<p>paragraph</p> +<h2>header</h2> +<h3>header</h3> +<pre><code>code +</code></pre> +<pre><code>code +</code></pre> +<div> + <div> +# not a header + </div> +</div> diff --git a/oldtests/Misc/Transitions.markdown b/oldtests/Misc/Transitions.markdown new file mode 100644 index 0000000..5f3a9d3 --- /dev/null +++ b/oldtests/Misc/Transitions.markdown @@ -0,0 +1,20 @@ +> blockquote +> > blockquote +1. list +2. list + - sublist +* * * * * +paragraph + +header +------ +### header + code +``` +code +``` +<div> + <div> +# not a header + </div> +</div> diff --git a/oldtests/Original/Amps_and_angle_encoding.html b/oldtests/Original/Amps_and_angle_encoding.html new file mode 100644 index 0000000..fc1b2c3 --- /dev/null +++ b/oldtests/Original/Amps_and_angle_encoding.html @@ -0,0 +1,9 @@ +<p>AT&T has an ampersand in their name.</p> +<p>AT&T is another way to write it.</p> +<p>This & that.</p> +<p>4 < 5.</p> +<p>6 > 5.</p> +<p>Here's a <a href="http://example.com/?foo=1&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&T">AT&T</a>.</p> +<p>Here's an inline <a href="/script?foo=1&bar=2">link</a>.</p> +<p>Here's an inline <a href="/script?foo=1&bar=2">link</a>.</p> diff --git a/oldtests/Original/Amps_and_angle_encoding.markdown b/oldtests/Original/Amps_and_angle_encoding.markdown new file mode 100644 index 0000000..0e9527f --- /dev/null +++ b/oldtests/Original/Amps_and_angle_encoding.markdown @@ -0,0 +1,21 @@ +AT&T has an ampersand in their name. + +AT&T is another way to write it. + +This & that. + +4 < 5. + +6 > 5. + +Here's a [link] [1] with an ampersand in the URL. + +Here's a link with an amersand in the link text: [AT&T] [2]. + +Here's an inline [link](/script?foo=1&bar=2). + +Here's an inline [link](</script?foo=1&bar=2>). + + +[1]: http://example.com/?foo=1&bar=2 +[2]: http://att.com/ "AT&T"
\ No newline at end of file diff --git a/oldtests/Original/Auto_links.html b/oldtests/Original/Auto_links.html new file mode 100644 index 0000000..f517fe6 --- /dev/null +++ b/oldtests/Original/Auto_links.html @@ -0,0 +1,13 @@ +<p>Link: <a href="http://example.com/">http://example.com/</a>.</p> +<p>With an ampersand: <a href="http://example.com/?foo=1&bar=2">http://example.com/?foo=1&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><http://example.com/></code></p> +<pre><code>or here: <http://example.com/> +</code></pre> diff --git a/oldtests/Original/Auto_links.markdown b/oldtests/Original/Auto_links.markdown new file mode 100644 index 0000000..abbc488 --- /dev/null +++ b/oldtests/Original/Auto_links.markdown @@ -0,0 +1,13 @@ +Link: <http://example.com/>. + +With an ampersand: <http://example.com/?foo=1&bar=2> + +* In a list? +* <http://example.com/> +* It should. + +> Blockquoted: <http://example.com/> + +Auto-links should not occur here: `<http://example.com/>` + + or here: <http://example.com/>
\ No newline at end of file diff --git a/oldtests/Original/Backslash_escapes.html b/oldtests/Original/Backslash_escapes.html new file mode 100644 index 0000000..9a83379 --- /dev/null +++ b/oldtests/Original/Backslash_escapes.html @@ -0,0 +1,75 @@ +<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: ></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: \> + +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>\></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> +<p>These should get escaped, even though they're matching pairs for +other Markdown constructs:</p> +<p>*asterisks*</p> +<p>_underscores_</p> +<p>`backticks`</p> +<p>This is a code span with a literal backslash-backtick sequence: <code>\`</code></p> +<p>This is a tag with unescaped backticks <span attr='`ticks`'>bar</span>.</p> +<p>This is a tag with backslashes <span attr='\\backslashes\\'>bar</span>.</p> diff --git a/oldtests/Original/Backslash_escapes.markdown b/oldtests/Original/Backslash_escapes.markdown new file mode 100644 index 0000000..5b014cb --- /dev/null +++ b/oldtests/Original/Backslash_escapes.markdown @@ -0,0 +1,120 @@ +These should all get escaped: + +Backslash: \\ + +Backtick: \` + +Asterisk: \* + +Underscore: \_ + +Left brace: \{ + +Right brace: \} + +Left bracket: \[ + +Right bracket: \] + +Left paren: \( + +Right paren: \) + +Greater-than: \> + +Hash: \# + +Period: \. + +Bang: \! + +Plus: \+ + +Minus: \- + + + +These should not, because they occur within a code block: + + Backslash: \\ + + Backtick: \` + + Asterisk: \* + + Underscore: \_ + + Left brace: \{ + + Right brace: \} + + Left bracket: \[ + + Right bracket: \] + + Left paren: \( + + Right paren: \) + + Greater-than: \> + + Hash: \# + + Period: \. + + Bang: \! + + Plus: \+ + + Minus: \- + + +Nor should these, which occur in code spans: + +Backslash: `\\` + +Backtick: `` \` `` + +Asterisk: `\*` + +Underscore: `\_` + +Left brace: `\{` + +Right brace: `\}` + +Left bracket: `\[` + +Right bracket: `\]` + +Left paren: `\(` + +Right paren: `\)` + +Greater-than: `\>` + +Hash: `\#` + +Period: `\.` + +Bang: `\!` + +Plus: `\+` + +Minus: `\-` + + +These should get escaped, even though they're matching pairs for +other Markdown constructs: + +\*asterisks\* + +\_underscores\_ + +\`backticks\` + +This is a code span with a literal backslash-backtick sequence: `` \` `` + +This is a tag with unescaped backticks <span attr='`ticks`'>bar</span>. + +This is a tag with backslashes <span attr='\\backslashes\\'>bar</span>. diff --git a/oldtests/Original/Blockquotes_with_code_blocks.html b/oldtests/Original/Blockquotes_with_code_blocks.html new file mode 100644 index 0000000..fd1cb1b --- /dev/null +++ b/oldtests/Original/Blockquotes_with_code_blocks.html @@ -0,0 +1,12 @@ +<blockquote> +<p>Example:</p> +<pre><code>sub status { + print "working"; +} +</code></pre> +<p>Or:</p> +<pre><code>sub status { + return "working"; +} +</code></pre> +</blockquote> diff --git a/oldtests/Original/Blockquotes_with_code_blocks.markdown b/oldtests/Original/Blockquotes_with_code_blocks.markdown new file mode 100644 index 0000000..c31d171 --- /dev/null +++ b/oldtests/Original/Blockquotes_with_code_blocks.markdown @@ -0,0 +1,11 @@ +> Example: +> +> sub status { +> print "working"; +> } +> +> Or: +> +> sub status { +> return "working"; +> } diff --git a/oldtests/Original/Code_Blocks.html b/oldtests/Original/Code_Blocks.html new file mode 100644 index 0000000..7d89615 --- /dev/null +++ b/oldtests/Original/Code_Blocks.html @@ -0,0 +1,12 @@ +<pre><code>code block on the first line +</code></pre> +<p>Regular text.</p> +<pre><code>code block indented by spaces +</code></pre> +<p>Regular text.</p> +<pre><code>the lines in this block +all contain trailing spaces +</code></pre> +<p>Regular Text.</p> +<pre><code>code block on the last line +</code></pre> diff --git a/oldtests/Original/Code_Blocks.markdown b/oldtests/Original/Code_Blocks.markdown new file mode 100644 index 0000000..b54b092 --- /dev/null +++ b/oldtests/Original/Code_Blocks.markdown @@ -0,0 +1,14 @@ + code block on the first line + +Regular text. + + code block indented by spaces + +Regular text. + + the lines in this block + all contain trailing spaces + +Regular Text. + + code block on the last line
\ No newline at end of file diff --git a/oldtests/Original/Code_Spans.html b/oldtests/Original/Code_Spans.html new file mode 100644 index 0000000..27acea1 --- /dev/null +++ b/oldtests/Original/Code_Spans.html @@ -0,0 +1,3 @@ +<p><code><test a="</code> content of attribute <code>"></code></p> +<p>Fix for backticks within HTML tag: <span attr='`ticks`'>like this</span></p> +<p>Here's how you put <code>`backticks`</code> in a code span.</p> diff --git a/oldtests/Original/Code_Spans.markdown b/oldtests/Original/Code_Spans.markdown new file mode 100644 index 0000000..5c229c7 --- /dev/null +++ b/oldtests/Original/Code_Spans.markdown @@ -0,0 +1,5 @@ +`<test a="` content of attribute `">` + +Fix for backticks within HTML tag: <span attr='`ticks`'>like this</span> + +Here's how you put `` `backticks` `` in a code span.
\ No newline at end of file diff --git a/oldtests/Original/Horizontal_rules.html b/oldtests/Original/Horizontal_rules.html new file mode 100644 index 0000000..a89efdb --- /dev/null +++ b/oldtests/Original/Horizontal_rules.html @@ -0,0 +1,39 @@ +<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> diff --git a/oldtests/Original/Horizontal_rules.markdown b/oldtests/Original/Horizontal_rules.markdown new file mode 100644 index 0000000..1594bda --- /dev/null +++ b/oldtests/Original/Horizontal_rules.markdown @@ -0,0 +1,67 @@ +Dashes: + +--- + + --- + + --- + + --- + + --- + +- - - + + - - - + + - - - + + - - - + + - - - + + +Asterisks: + +*** + + *** + + *** + + *** + + *** + +* * * + + * * * + + * * * + + * * * + + * * * + + +Underscores: + +___ + + ___ + + ___ + + ___ + + ___ + +_ _ _ + + _ _ _ + + _ _ _ + + _ _ _ + + _ _ _ diff --git a/oldtests/Original/Images.html b/oldtests/Original/Images.html new file mode 100644 index 0000000..bd5a7e0 --- /dev/null +++ b/oldtests/Original/Images.html @@ -0,0 +1,11 @@ +<p><img src="/path/to/img.jpg" alt="Alt text" /></p> +<p><img src="/path/to/img.jpg" alt="Alt text" title="Optional title" /></p> +<p>Inline within a paragraph: <a href="/url/">alt text</a>.</p> +<p><img src="/url/" alt="alt text" title="title preceded by two spaces" /></p> +<p><img src="/url/" alt="alt text" title="title has spaces afterward" /></p> +<p><img src="/url/" alt="alt text" /></p> +<p><img src="/url/" alt="alt text" title="with a title" />.</p> +<p><img src="" alt="Empty" /></p> +<p><img src="http://example.com/(parens).jpg" alt="this is a stupid URL" /></p> +<p><img src="/url/" alt="alt text" /></p> +<p><img src="/url/" alt="alt text" title="Title here" /></p> diff --git a/oldtests/Original/Images.markdown b/oldtests/Original/Images.markdown new file mode 100644 index 0000000..5707590 --- /dev/null +++ b/oldtests/Original/Images.markdown @@ -0,0 +1,26 @@ +![Alt text](/path/to/img.jpg) + +![Alt text](/path/to/img.jpg "Optional title") + +Inline within a paragraph: [alt text](/url/). + +![alt text](/url/ "title preceded by two spaces") + +![alt text](/url/ "title has spaces afterward" ) + +![alt text](</url/>) + +![alt text](</url/> "with a title"). + +![Empty]() + +![this is a stupid URL](http://example.com/(parens).jpg) + + +![alt text][foo] + + [foo]: /url/ + +![alt text][bar] + + [bar]: /url/ "Title here"
\ No newline at end of file diff --git a/oldtests/Original/Inline_HTML_Advanced.html b/oldtests/Original/Inline_HTML_Advanced.html new file mode 100644 index 0000000..631c135 --- /dev/null +++ b/oldtests/Original/Inline_HTML_Advanced.html @@ -0,0 +1,23 @@ +<p>Simple block on one line:</p> +<div>foo</div> +<p>And nested without indentation:</p> +<div> +<div> +<div> +foo +</div> +<div style=">"/> +</div> +<div>bar</div> +</div> +<p>And with attributes:</p> +<div> + <div id="foo"> + </div> +</div> +<p>This was broken in 1.0.2b7:</p> +<div class="inlinepage"> +<div class="toggleableend"> +foo +</div> +</div> diff --git a/oldtests/Original/Inline_HTML_Advanced.markdown b/oldtests/Original/Inline_HTML_Advanced.markdown new file mode 100644 index 0000000..3633f81 --- /dev/null +++ b/oldtests/Original/Inline_HTML_Advanced.markdown @@ -0,0 +1,30 @@ +Simple block on one line: + +<div>foo</div> + +And nested without indentation: + +<div> +<div> +<div> +foo +</div> +<div style=">"/> +</div> +<div>bar</div> +</div> + +And with attributes: + +<div> + <div id="foo"> + </div> +</div> + +This was broken in 1.0.2b7: + +<div class="inlinepage"> +<div class="toggleableend"> +foo +</div> +</div> diff --git a/oldtests/Original/Inline_HTML_Simple.html b/oldtests/Original/Inline_HTML_Simple.html new file mode 100644 index 0000000..923a18c --- /dev/null +++ b/oldtests/Original/Inline_HTML_Simple.html @@ -0,0 +1,45 @@ +<p>Here's a simple block:</p> +<div> + foo +</div> +<p>This should be a code block, though:</p> +<pre><code><div> + foo +</div> +</code></pre> +<p>As should this:</p> +<pre><code><div>foo</div> +</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><!-- Comment --> +</code></pre> +<p>Just plain comment, with trailing spaces on the line:</p> +<!-- foo --> +<p>Code:</p> +<pre><code><hr /> +</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" > diff --git a/oldtests/Original/Inline_HTML_Simple.markdown b/oldtests/Original/Inline_HTML_Simple.markdown new file mode 100644 index 0000000..14aa2dc --- /dev/null +++ b/oldtests/Original/Inline_HTML_Simple.markdown @@ -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/oldtests/Original/Inline_HTML_comments.html b/oldtests/Original/Inline_HTML_comments.html new file mode 100644 index 0000000..ebc4818 --- /dev/null +++ b/oldtests/Original/Inline_HTML_comments.html @@ -0,0 +1,8 @@ +<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> diff --git a/oldtests/Original/Inline_HTML_comments.markdown b/oldtests/Original/Inline_HTML_comments.markdown new file mode 100644 index 0000000..41d830d --- /dev/null +++ b/oldtests/Original/Inline_HTML_comments.markdown @@ -0,0 +1,13 @@ +Paragraph one. + +<!-- This is a simple comment --> + +<!-- + This is another comment. +--> + +Paragraph two. + +<!-- one comment block -- -- with two comments --> + +The end. diff --git a/oldtests/Original/Links_inline_style.html b/oldtests/Original/Links_inline_style.html new file mode 100644 index 0000000..feb4637 --- /dev/null +++ b/oldtests/Original/Links_inline_style.html @@ -0,0 +1,12 @@ +<p>Just a <a href="/url/">URL</a>.</p> +<p><a href="/url/" title="title">URL and title</a>.</p> +<p><a href="/url/" title="title preceded by two spaces">URL and title</a>.</p> +<p><a href="/url/" title="title preceded by a tab">URL and title</a>.</p> +<p><a href="/url/" title="title has spaces afterward">URL and title</a>.</p> +<p><a href="/url/">URL wrapped in angle brackets</a>.</p> +<p><a href="/url/" title="Here's the title">URL w/ angle brackets + title</a>.</p> +<p><a href="">Empty</a>.</p> +<p><a href="http://en.wikipedia.org/wiki/WIMP_(computing)">With parens in the URL</a></p> +<p>(With outer parens and <a href="/foo(bar)">parens in url</a>)</p> +<p><a href="/foo(bar)" title="and a title">With parens in the URL</a></p> +<p>(With outer parens and <a href="/foo(bar)" title="and a title">parens in url</a>)</p> diff --git a/oldtests/Original/Links_inline_style.markdown b/oldtests/Original/Links_inline_style.markdown new file mode 100644 index 0000000..aba9658 --- /dev/null +++ b/oldtests/Original/Links_inline_style.markdown @@ -0,0 +1,24 @@ +Just a [URL](/url/). + +[URL and title](/url/ "title"). + +[URL and title](/url/ "title preceded by two spaces"). + +[URL and title](/url/ "title preceded by a tab"). + +[URL and title](/url/ "title has spaces afterward" ). + +[URL wrapped in angle brackets](</url/>). + +[URL w/ angle brackets + title](</url/> "Here's the title"). + +[Empty](). + +[With parens in the URL](http://en.wikipedia.org/wiki/WIMP_(computing)) + +(With outer parens and [parens in url](/foo(bar))) + + +[With parens in the URL](/foo(bar) "and a title") + +(With outer parens and [parens in url](/foo(bar) "and a title")) diff --git a/oldtests/Original/Links_reference_style.html b/oldtests/Original/Links_reference_style.html new file mode 100644 index 0000000..6d78b96 --- /dev/null +++ b/oldtests/Original/Links_reference_style.html @@ -0,0 +1,28 @@ +<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> +<hr /> +<p><a href="foo">this</a> should work</p> +<p>So should <a href="foo">this</a>.</p> +<p>And <a href="foo">this</a>.</p> +<p>And <a href="foo">this</a>.</p> +<p>And <a href="foo">this</a>.</p> +<p>But not [that] [].</p> +<p>Nor [that][].</p> +<p>Nor [that].</p> +<p>[Something in brackets like <a href="foo">this</a> should work]</p> +<p>[Same with <a href="foo">this</a>.]</p> +<p>In this case, <a href="/somethingelse/">this</a> points to something else.</p> +<p>Backslashing should suppress [this] and [this].</p> +<hr /> +<p>Here's one where the <a href="/url/">link +breaks</a> across lines.</p> +<p>Here's another where the <a href="/url/">link +breaks</a> across lines, but with a line-ending space.</p> diff --git a/oldtests/Original/Links_reference_style.markdown b/oldtests/Original/Links_reference_style.markdown new file mode 100644 index 0000000..341ec88 --- /dev/null +++ b/oldtests/Original/Links_reference_style.markdown @@ -0,0 +1,71 @@ +Foo [bar] [1]. + +Foo [bar][1]. + +Foo [bar] +[1]. + +[1]: /url/ "Title" + + +With [embedded [brackets]] [b]. + + +Indented [once][]. + +Indented [twice][]. + +Indented [thrice][]. + +Indented [four][] times. + + [once]: /url + + [twice]: /url + + [thrice]: /url + + [four]: /url + + +[b]: /url/ + +* * * + +[this] [this] should work + +So should [this][this]. + +And [this] []. + +And [this][]. + +And [this]. + +But not [that] []. + +Nor [that][]. + +Nor [that]. + +[Something in brackets like [this][] should work] + +[Same with [this].] + +In this case, [this](/somethingelse/) points to something else. + +Backslashing should suppress \[this] and [this\]. + +[this]: foo + + +* * * + +Here's one where the [link +breaks] across lines. + +Here's another where the [link +breaks] across lines, but with a line-ending space. + + +[link breaks]: /url/ diff --git a/oldtests/Original/Links_shortcut_references.html b/oldtests/Original/Links_shortcut_references.html new file mode 100644 index 0000000..8163ade --- /dev/null +++ b/oldtests/Original/Links_shortcut_references.html @@ -0,0 +1,6 @@ +<p>This is the <a href="/simple">simple case</a>.</p> +<p>This one has a <a href="/foo">line +break</a>.</p> +<p>This one has a <a href="/foo">line +break</a> with a line-ending space.</p> +<p><a href="/that">this</a> and the <a href="/other">other</a></p> diff --git a/oldtests/Original/Links_shortcut_references.markdown b/oldtests/Original/Links_shortcut_references.markdown new file mode 100644 index 0000000..8c44c98 --- /dev/null +++ b/oldtests/Original/Links_shortcut_references.markdown @@ -0,0 +1,20 @@ +This is the [simple case]. + +[simple case]: /simple + + + +This one has a [line +break]. + +This one has a [line +break] with a line-ending space. + +[line break]: /foo + + +[this] [that] and the [other] + +[this]: /this +[that]: /that +[other]: /other diff --git a/oldtests/Original/Literal_quotes_in_titles.html b/oldtests/Original/Literal_quotes_in_titles.html new file mode 100644 index 0000000..62e8641 --- /dev/null +++ b/oldtests/Original/Literal_quotes_in_titles.html @@ -0,0 +1,2 @@ +<p>Foo <a href="/url/" title="Title with "quotes" inside">bar</a>.</p> +<p>Foo <a href="/url/" title="Title with "quotes" inside">bar</a>.</p> diff --git a/oldtests/Original/Literal_quotes_in_titles.markdown b/oldtests/Original/Literal_quotes_in_titles.markdown new file mode 100644 index 0000000..29d0e42 --- /dev/null +++ b/oldtests/Original/Literal_quotes_in_titles.markdown @@ -0,0 +1,7 @@ +Foo [bar][]. + +Foo [bar](/url/ "Title with "quotes" inside"). + + + [bar]: /url/ "Title with "quotes" inside" + diff --git a/oldtests/Original/Markdown_Documentation_Basics.html b/oldtests/Original/Markdown_Documentation_Basics.html new file mode 100644 index 0000000..0dee67f --- /dev/null +++ b/oldtests/Original/Markdown_Documentation_Basics.html @@ -0,0 +1,242 @@ +<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><h1></code> and <code><h2></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>></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 + +> This is a blockquote. +> +> This is the second paragraph in the blockquote. +> +> ## This is an H2 in a blockquote +</code></pre> +<p>Output:</p> +<pre><code><h1>A First Level Header</h1> + +<h2>A Second Level Header</h2> + +<p>Now is the time for all good men to come to +the aid of their country. This is just a +regular paragraph.</p> + +<p>The quick brown fox jumped over the lazy +dog's back.</p> + +<h3>Header 3</h3> + +<blockquote> + <p>This is a blockquote.</p> + + <p>This is the second paragraph in the blockquote.</p> + + <h2>This is an H2 in a blockquote</h2> +</blockquote> +</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><p>Some of these words <em>are emphasized</em>. +Some of these words <em>are emphasized also</em>.</p> + +<p>Use two asterisks for <strong>strong emphasis</strong>. +Or, if you prefer, <strong>use two underscores instead</strong>.</p> +</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><ul> +<li>Candy.</li> +<li>Gum.</li> +<li>Booze.</li> +</ul> +</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><ol> +<li>Red</li> +<li>Green</li> +<li>Blue</li> +</ol> +</code></pre> +<p>If you put blank lines between items, you'll get <code><p></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><ul> +<li><p>A list item.</p> +<p>With multiple paragraphs.</p></li> +<li><p>Another item in the list.</p></li> +</ul> +</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><p>This is an <a href="http://example.com/"> +example link</a>.</p> +</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><p>This is an <a href="http://example.com/" title="With a Title"> +example link</a>.</p> +</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><p>I get 10 times more traffic from <a href="http://google.com/" +title="Google">Google</a> than from <a href="http://search.yahoo.com/" +title="Yahoo Search">Yahoo</a> or <a href="http://search.msn.com/" +title="MSN Search">MSN</a>.</p> +</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><p>I start my morning with a cup of coffee and +<a href="http://www.nytimes.com/">The New York Times</a>.</p> +</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><img src="/path/to/img.jpg" alt="alt text" title="Title" /> +</code></pre> +<h3>Code</h3> +<p>In a regular paragraph, you can create code span by wrapping text in +backtick quotes. Any ampersands (<code>&</code>) and angle brackets (<code><</code> or +<code>></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 `<blink>` tags. + +I wish SmartyPants used named entities like `&mdash;` +instead of decimal-encoded entites like `&#8212;`. +</code></pre> +<p>Output:</p> +<pre><code><p>I strongly recommend against using any +<code>&lt;blink&gt;</code> tags.</p> + +<p>I wish SmartyPants used named entities like +<code>&amp;mdash;</code> instead of decimal-encoded +entites like <code>&amp;#8212;</code>.</p> +</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>&</code>, <code><</code>, +and <code>></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: + + <blockquote> + <p>For example.</p> + </blockquote> +</code></pre> +<p>Output:</p> +<pre><code><p>If you want your page to validate under XHTML 1.0 Strict, +you've got to put paragraph tags in your blockquotes:</p> + +<pre><code>&lt;blockquote&gt; + &lt;p&gt;For example.&lt;/p&gt; +&lt;/blockquote&gt; +</code></pre> +</code></pre> diff --git a/oldtests/Original/Markdown_Documentation_Basics.markdown b/oldtests/Original/Markdown_Documentation_Basics.markdown new file mode 100644 index 0000000..24eba65 --- /dev/null +++ b/oldtests/Original/Markdown_Documentation_Basics.markdown @@ -0,0 +1,306 @@ +Markdown: Basics +================ + +<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> + + +Getting the Gist of Markdown's Formatting Syntax +------------------------------------------------ + +This page offers a brief overview of what it's like to use Markdown. +The [syntax page] [s] 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. + +It's also helpful to simply try Markdown out; the [Dingus] [d] is a +web application that allows you type your own Markdown-formatted text +and translate it to XHTML. + +**Note:** This document is itself written using Markdown; you +can [see the source for it by adding '.text' to the URL] [src]. + + [s]: /projects/markdown/syntax "Markdown Syntax" + [d]: /projects/markdown/dingus "Markdown Dingus" + [src]: /projects/markdown/basics.text + + +## Paragraphs, Headers, Blockquotes ## + +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. + +Markdown offers two styles of headers: *Setext* and *atx*. +Setext-style headers for `<h1>` and `<h2>` are created by +"underlining" with equal signs (`=`) and hyphens (`-`), respectively. +To create an atx-style header, you put 1-6 hash marks (`#`) at the +beginning of the line -- the number of hashes equals the resulting +HTML header level. + +Blockquotes are indicated using email-style '`>`' angle brackets. + +Markdown: + + 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 + + > This is a blockquote. + > + > This is the second paragraph in the blockquote. + > + > ## This is an H2 in a blockquote + + +Output: + + <h1>A First Level Header</h1> + + <h2>A Second Level Header</h2> + + <p>Now is the time for all good men to come to + the aid of their country. This is just a + regular paragraph.</p> + + <p>The quick brown fox jumped over the lazy + dog's back.</p> + + <h3>Header 3</h3> + + <blockquote> + <p>This is a blockquote.</p> + + <p>This is the second paragraph in the blockquote.</p> + + <h2>This is an H2 in a blockquote</h2> + </blockquote> + + + +### Phrase Emphasis ### + +Markdown uses asterisks and underscores to indicate spans of emphasis. + +Markdown: + + 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__. + +Output: + + <p>Some of these words <em>are emphasized</em>. + Some of these words <em>are emphasized also</em>.</p> + + <p>Use two asterisks for <strong>strong emphasis</strong>. + Or, if you prefer, <strong>use two underscores instead</strong>.</p> + + + +## Lists ## + +Unordered (bulleted) lists use asterisks, pluses, and hyphens (`*`, +`+`, and `-`) as list markers. These three markers are +interchangable; this: + + * Candy. + * Gum. + * Booze. + +this: + + + Candy. + + Gum. + + Booze. + +and this: + + - Candy. + - Gum. + - Booze. + +all produce the same output: + + <ul> + <li>Candy.</li> + <li>Gum.</li> + <li>Booze.</li> + </ul> + +Ordered (numbered) lists use regular numbers, followed by periods, as +list markers: + + 1. Red + 2. Green + 3. Blue + +Output: + + <ol> + <li>Red</li> + <li>Green</li> + <li>Blue</li> + </ol> + +If you put blank lines between items, you'll get `<p>` tags for the +list item text. You can create multi-paragraph list items by indenting +the paragraphs by 4 spaces or 1 tab: + + * A list item. + + With multiple paragraphs. + + * Another item in the list. + +Output: + + <ul> + <li><p>A list item.</p> + <p>With multiple paragraphs.</p></li> + <li><p>Another item in the list.</p></li> + </ul> + + + +### Links ### + +Markdown supports two styles for creating links: *inline* and +*reference*. With both styles, you use square brackets to delimit the +text you want to turn into a link. + +Inline-style links use parentheses immediately after the link text. +For example: + + This is an [example link](http://example.com/). + +Output: + + <p>This is an <a href="http://example.com/"> + example link</a>.</p> + +Optionally, you may include a title attribute in the parentheses: + + This is an [example link](http://example.com/ "With a Title"). + +Output: + + <p>This is an <a href="http://example.com/" title="With a Title"> + example link</a>.</p> + +Reference-style links allow you to refer to your links by names, which +you define elsewhere in your document: + + 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" + +Output: + + <p>I get 10 times more traffic from <a href="http://google.com/" + title="Google">Google</a> than from <a href="http://search.yahoo.com/" + title="Yahoo Search">Yahoo</a> or <a href="http://search.msn.com/" + title="MSN Search">MSN</a>.</p> + +The title attribute is optional. Link names may contain letters, +numbers and spaces, but are *not* case sensitive: + + I start my morning with a cup of coffee and + [The New York Times][NY Times]. + + [ny times]: http://www.nytimes.com/ + +Output: + + <p>I start my morning with a cup of coffee and + <a href="http://www.nytimes.com/">The New York Times</a>.</p> + + +### Images ### + +Image syntax is very much like link syntax. + +Inline (titles are optional): + + ![alt text](/path/to/img.jpg "Title") + +Reference-style: + + ![alt text][id] + + [id]: /path/to/img.jpg "Title" + +Both of the above examples produce the same output: + + <img src="/path/to/img.jpg" alt="alt text" title="Title" /> + + + +### Code ### + +In a regular paragraph, you can create code span by wrapping text in +backtick quotes. Any ampersands (`&`) and angle brackets (`<` or +`>`) will automatically be translated into HTML entities. This makes +it easy to use Markdown to write about HTML example code: + + I strongly recommend against using any `<blink>` tags. + + I wish SmartyPants used named entities like `—` + instead of decimal-encoded entites like `—`. + +Output: + + <p>I strongly recommend against using any + <code><blink></code> tags.</p> + + <p>I wish SmartyPants used named entities like + <code>&mdash;</code> instead of decimal-encoded + entites like <code>&#8212;</code>.</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, `&`, `<`, +and `>` characters will be escaped automatically. + +Markdown: + + If you want your page to validate under XHTML 1.0 Strict, + you've got to put paragraph tags in your blockquotes: + + <blockquote> + <p>For example.</p> + </blockquote> + +Output: + + <p>If you want your page to validate under XHTML 1.0 Strict, + you've got to put paragraph tags in your blockquotes:</p> + + <pre><code><blockquote> + <p>For example.</p> + </blockquote> + </code></pre> diff --git a/oldtests/Original/Markdown_Documentation_Syntax.html b/oldtests/Original/Markdown_Documentation_Syntax.html new file mode 100644 index 0000000..f379dcf --- /dev/null +++ b/oldtests/Original/Markdown_Documentation_Syntax.html @@ -0,0 +1,708 @@ +<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><div></code>, +<code><table></code>, <code><pre></code>, <code><p></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><p></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. + +<table> + <tr> + <td>Foo</td> + </tr> +</table> + +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><span></code>, <code><cite></code>, or <code><del></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><a></code> or <code><img></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><</code> +and <code>&</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>&lt;</code>, and +<code>&amp;</code>.</p> +<p>Ampersands in particular are bedeviling for web writers. If you want to +write about 'AT&T', you need to write '<code>AT&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&q=larry+bird +</code></pre> +<p>you need to encode the URL as:</p> +<pre><code>http://images.google.com/images?num=30&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;</code>.</p> +<p>So, if you want to include a copyright symbol in your article, you can write:</p> +<pre><code>&copy; +</code></pre> +<p>and Markdown will leave it alone. But if you write:</p> +<pre><code>AT&T +</code></pre> +<p>Markdown will translate it to:</p> +<pre><code>AT&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 < 5 +</code></pre> +<p>Markdown will translate it to:</p> +<pre><code>4 &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><</code> +and <code>&</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><br /></code> tag.</p> +<p>When you <em>do</em> want to insert a <code><br /></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><br /></code>, but a simplistic +"every line break is a <code><br /></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>></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>></code> before every line:</p> +<pre><code>> 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. +> +> Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse +> id sem consectetuer libero luctus adipiscing. +</code></pre> +<p>Markdown allows you to be lazy and only put the <code>></code> before the first +line of a hard-wrapped paragraph:</p> +<pre><code>> 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. + +> 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>></code>:</p> +<pre><code>> This is the first level of quoting. +> +> > This is nested blockquote. +> +> Back to the first level. +</code></pre> +<p>Blockquotes can contain other Markdown elements, including headers, lists, +and code blocks:</p> +<pre><code>> ## This is a header. +> +> 1. This is the first list item. +> 2. This is the second list item. +> +> Here's some example code: +> +> 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><ol> +<li>Bird</li> +<li>McHale</li> +<li>Parish</li> +</ol> +</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><p></code> tags in the HTML output. For example, this input:</p> +<pre><code>* Bird +* Magic +</code></pre> +<p>will turn into:</p> +<pre><code><ul> +<li>Bird</li> +<li>Magic</li> +</ul> +</code></pre> +<p>But this:</p> +<pre><code>* Bird + +* Magic +</code></pre> +<p>will turn into:</p> +<pre><code><ul> +<li><p>Bird</p></li> +<li><p>Magic</p></li> +</ul> +</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>></code> +delimiters need to be indented:</p> +<pre><code>* A list item with a blockquote: + + > This is a blockquote + > 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: + + <code goes here> +</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><pre></code> and <code><code></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><p>This is a normal paragraph:</p> + +<pre><code>This is a code block. +</code></pre> +</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><p>Here is an example of AppleScript:</p> + +<pre><code>tell application "Foo" + beep +end tell +</code></pre> +</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>&</code>) and angle brackets (<code><</code> and <code>></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> <div class="footer"> + &copy; 2004 Foo Corporation + </div> +</code></pre> +<p>will turn into:</p> +<pre><code><pre><code>&lt;div class="footer"&gt; + &amp;copy; 2004 Foo Corporation +&lt;/div&gt; +</code></pre> +</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><hr /></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><p>This is <a href="http://example.com/" title="Title"> +an example</a> inline link.</p> + +<p><a href="http://example.net/">This link</a> has no +title attribute.</p> +</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]: <http://example.com/> "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><p>I get 10 times more traffic from <a href="http://google.com/" +title="Google">Google</a> than from +<a href="http://search.yahoo.com/" title="Yahoo Search">Yahoo</a> +or <a href="http://search.msn.com/" title="MSN Search">MSN</a>.</p> +</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><em></code> tag; double <code>*</code>'s or <code>_</code>'s will be wrapped with an HTML +<code><strong></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><em>single asterisks</em> + +<em>single underscores</em> + +<strong>double asterisks</strong> + +<strong>double underscores</strong> +</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><p>Use the <code>printf()</code> function.</p> +</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><p><code>There is a literal backtick (`) here.</code></p> +</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><p>A single backtick in a code span: <code>`</code></p> + +<p>A backtick-delimited string in a code span: <code>`foo`</code></p> +</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 `<blink>` tags. +</code></pre> +<p>into:</p> +<pre><code><p>Please don't use any <code>&lt;blink&gt;</code> tags.</p> +</code></pre> +<p>You can write this:</p> +<pre><code>`&#8212;` is the decimal-encoded equivalent of `&mdash;`. +</code></pre> +<p>to produce:</p> +<pre><code><p><code>&amp;#8212;</code> is the decimal-encoded +equivalent of <code>&amp;mdash;</code>.</p> +</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><img></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><http://example.com/> +</code></pre> +<p>Markdown will turn this into:</p> +<pre><code><a href="http://example.com/">http://example.com/</a> +</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><address@example.com> +</code></pre> +<p>into something like this:</p> +<pre><code><a href="&#x6D;&#x61;i&#x6C;&#x74;&#x6F;:&#x61;&#x64;&#x64;&#x72;&#x65; +&#115;&#115;&#64;&#101;&#120;&#x61;&#109;&#x70;&#x6C;e&#x2E;&#99;&#111; +&#109;">&#x61;&#x64;&#x64;&#x72;&#x65;&#115;&#115;&#64;&#101;&#120;&#x61; +&#109;&#x70;&#x6C;e&#x2E;&#99;&#111;&#109;</a> +</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><em></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> diff --git a/oldtests/Original/Markdown_Documentation_Syntax.markdown b/oldtests/Original/Markdown_Documentation_Syntax.markdown new file mode 100644 index 0000000..57360a1 --- /dev/null +++ b/oldtests/Original/Markdown_Documentation_Syntax.markdown @@ -0,0 +1,888 @@ +Markdown: Syntax +================ + +<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> + + +* [Overview](#overview) + * [Philosophy](#philosophy) + * [Inline HTML](#html) + * [Automatic Escaping for Special Characters](#autoescape) +* [Block Elements](#block) + * [Paragraphs and Line Breaks](#p) + * [Headers](#header) + * [Blockquotes](#blockquote) + * [Lists](#list) + * [Code Blocks](#precode) + * [Horizontal Rules](#hr) +* [Span Elements](#span) + * [Links](#link) + * [Emphasis](#em) + * [Code](#code) + * [Images](#img) +* [Miscellaneous](#misc) + * [Backslash Escapes](#backslash) + * [Automatic Links](#autolink) + + +**Note:** This document is itself written using Markdown; you +can [see the source for it by adding '.text' to the URL][src]. + + [src]: /projects/markdown/syntax.text + +* * * + +<h2 id="overview">Overview</h2> + +<h3 id="philosophy">Philosophy</h3> + +Markdown is intended to be as easy-to-read and easy-to-write as is feasible. + +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 [Setext] [1], [atx] [2], [Textile] [3], [reStructuredText] [4], +[Grutatext] [5], and [EtText] [6] -- the single biggest source of +inspiration for Markdown's syntax is the format of plain text email. + + [1]: http://docutils.sourceforge.net/mirror/setext.html + [2]: http://www.aaronsw.com/2002/atx/ + [3]: http://textism.com/tools/textile/ + [4]: http://docutils.sourceforge.net/rst.html + [5]: http://www.triptico.com/software/grutatxt.html + [6]: http://ettext.taint.org/doc/ + +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. + + + +<h3 id="html">Inline HTML</h3> + +Markdown's syntax is intended for one purpose: to be used as a +format for *writing* for the web. + +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 *not* 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 *publishing* format; Markdown is a *writing* +format. Thus, Markdown's formatting syntax only addresses issues that +can be conveyed in plain text. + +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. + +The only restrictions are that block-level HTML elements -- e.g. `<div>`, +`<table>`, `<pre>`, `<p>`, 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) `<p>` tags around HTML block-level tags. + +For example, to add an HTML table to a Markdown article: + + This is a regular paragraph. + + <table> + <tr> + <td>Foo</td> + </tr> + </table> + + This is another regular paragraph. + +Note that Markdown formatting syntax is not processed within block-level +HTML tags. E.g., you can't use Markdown-style `*emphasis*` inside an +HTML block. + +Span-level HTML tags -- e.g. `<span>`, `<cite>`, or `<del>` -- 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 `<a>` or `<img>` tags instead of Markdown's +link or image syntax, go right ahead. + +Unlike block-level HTML tags, Markdown syntax *is* processed within +span-level tags. + + +<h3 id="autoescape">Automatic Escaping for Special Characters</h3> + +In HTML, there are two characters that demand special treatment: `<` +and `&`. 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. `<`, and +`&`. + +Ampersands in particular are bedeviling for web writers. If you want to +write about 'AT&T', you need to write '`AT&T`'. You even need to +escape ampersands within URLs. Thus, if you want to link to: + + http://images.google.com/images?num=30&q=larry+bird + +you need to encode the URL as: + + http://images.google.com/images?num=30&q=larry+bird + +in your anchor tag `href` 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. + +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 `&`. + +So, if you want to include a copyright symbol in your article, you can write: + + © + +and Markdown will leave it alone. But if you write: + + AT&T + +Markdown will translate it to: + + AT&T + +Similarly, because Markdown supports [inline HTML](#html), if you use +angle brackets as delimiters for HTML tags, Markdown will treat them as +such. But if you write: + + 4 < 5 + +Markdown will translate it to: + + 4 < 5 + +However, inside Markdown code spans and blocks, angle brackets and +ampersands are *always* 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 `<` +and `&` in your example code needs to be escaped.) + + +* * * + + +<h2 id="block">Block Elements</h2> + + +<h3 id="p">Paragraphs and Line Breaks</h3> + +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. + +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 `<br />` tag. + +When you *do* want to insert a `<br />` break tag using Markdown, you +end a line with two or more spaces, then type return. + +Yes, this takes a tad more effort to create a `<br />`, but a simplistic +"every line break is a `<br />`" rule wouldn't work for Markdown. +Markdown's email-style [blockquoting][bq] and multi-paragraph [list items][l] +work best -- and look better -- when you format them with hard breaks. + + [bq]: #blockquote + [l]: #list + + + +<h3 id="header">Headers</h3> + +Markdown supports two styles of headers, [Setext] [1] and [atx] [2]. + +Setext-style headers are "underlined" using equal signs (for first-level +headers) and dashes (for second-level headers). For example: + + This is an H1 + ============= + + This is an H2 + ------------- + +Any number of underlining `=`'s or `-`'s will work. + +Atx-style headers use 1-6 hash characters at the start of the line, +corresponding to header levels 1-6. For example: + + # This is an H1 + + ## This is an H2 + + ###### This is an H6 + +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.) : + + # This is an H1 # + + ## This is an H2 ## + + ### This is an H3 ###### + + +<h3 id="blockquote">Blockquotes</h3> + +Markdown uses email-style `>` 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 `>` before every line: + + > 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. + > + > Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse + > id sem consectetuer libero luctus adipiscing. + +Markdown allows you to be lazy and only put the `>` before the first +line of a hard-wrapped paragraph: + + > 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. + + > Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse + id sem consectetuer libero luctus adipiscing. + +Blockquotes can be nested (i.e. a blockquote-in-a-blockquote) by +adding additional levels of `>`: + + > This is the first level of quoting. + > + > > This is nested blockquote. + > + > Back to the first level. + +Blockquotes can contain other Markdown elements, including headers, lists, +and code blocks: + + > ## This is a header. + > + > 1. This is the first list item. + > 2. This is the second list item. + > + > Here's some example code: + > + > return shell_exec("echo $input | $markdown_script"); + +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. + + +<h3 id="list">Lists</h3> + +Markdown supports ordered (numbered) and unordered (bulleted) lists. + +Unordered lists use asterisks, pluses, and hyphens -- interchangably +-- as list markers: + + * Red + * Green + * Blue + +is equivalent to: + + + Red + + Green + + Blue + +and: + + - Red + - Green + - Blue + +Ordered lists use numbers followed by periods: + + 1. Bird + 2. McHale + 3. Parish + +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: + + <ol> + <li>Bird</li> + <li>McHale</li> + <li>Parish</li> + </ol> + +If you instead wrote the list in Markdown like this: + + 1. Bird + 1. McHale + 1. Parish + +or even: + + 3. Bird + 1. McHale + 8. Parish + +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. + +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. + +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. + +To make lists look nice, you can wrap items with hanging indents: + + * 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. + +But if you want to be lazy, you don't have to: + + * 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. + +If list items are separated by blank lines, Markdown will wrap the +items in `<p>` tags in the HTML output. For example, this input: + + * Bird + * Magic + +will turn into: + + <ul> + <li>Bird</li> + <li>Magic</li> + </ul> + +But this: + + * Bird + + * Magic + +will turn into: + + <ul> + <li><p>Bird</p></li> + <li><p>Magic</p></li> + </ul> + +List items may consist of multiple paragraphs. Each subsequent +paragraph in a list item must be intended by either 4 spaces +or one tab: + + 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. + +It looks nice if you indent every line of the subsequent +paragraphs, but here again, Markdown will allow you to be +lazy: + + * 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. + +To put a blockquote within a list item, the blockquote's `>` +delimiters need to be indented: + + * A list item with a blockquote: + + > This is a blockquote + > inside a list item. + +To put a code block within a list item, the code block needs +to be indented *twice* -- 8 spaces or two tabs: + + * A list item with a code block: + + <code goes here> + + +It's worth noting that it's possible to trigger an ordered list by +accident, by writing something like this: + + 1986. What a great season. + +In other words, a *number-period-space* sequence at the beginning of a +line. To avoid this, you can backslash-escape the period: + + 1986\. What a great season. + + + +<h3 id="precode">Code Blocks</h3> + +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 `<pre>` and `<code>` tags. + +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: + + This is a normal paragraph: + + This is a code block. + +Markdown will generate: + + <p>This is a normal paragraph:</p> + + <pre><code>This is a code block. + </code></pre> + +One level of indentation -- 4 spaces or 1 tab -- is removed from each +line of the code block. For example, this: + + Here is an example of AppleScript: + + tell application "Foo" + beep + end tell + +will turn into: + + <p>Here is an example of AppleScript:</p> + + <pre><code>tell application "Foo" + beep + end tell + </code></pre> + +A code block continues until it reaches a line that is not indented +(or the end of the article). + +Within a code block, ampersands (`&`) and angle brackets (`<` and `>`) +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: + + <div class="footer"> + © 2004 Foo Corporation + </div> + +will turn into: + + <pre><code><div class="footer"> + &copy; 2004 Foo Corporation + </div> + </code></pre> + +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. + + + +<h3 id="hr">Horizontal Rules</h3> + +You can produce a horizontal rule tag (`<hr />`) 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: + + * * * + + *** + + ***** + + - - - + + --------------------------------------- + + _ _ _ + + +* * * + +<h2 id="span">Span Elements</h2> + +<h3 id="link">Links</h3> + +Markdown supports two style of links: *inline* and *reference*. + +In both styles, the link text is delimited by [square brackets]. + +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 *optional* +title for the link, surrounded in quotes. For example: + + This is [an example](http://example.com/ "Title") inline link. + + [This link](http://example.net/) has no title attribute. + +Will produce: + + <p>This is <a href="http://example.com/" title="Title"> + an example</a> inline link.</p> + + <p><a href="http://example.net/">This link</a> has no + title attribute.</p> + +If you're referring to a local resource on the same server, you can +use relative paths: + + See my [About](/about/) page for details. + +Reference-style links use a second set of square brackets, inside +which you place a label of your choosing to identify the link: + + This is [an example][id] reference-style link. + +You can optionally use a space to separate the sets of brackets: + + This is [an example] [id] reference-style link. + +Then, anywhere in the document, you define your link label like this, +on a line by itself: + + [id]: http://example.com/ "Optional Title Here" + +That is: + +* Square brackets containing the link identifier (optionally + indented from the left margin using up to three spaces); +* followed by a colon; +* followed by one or more spaces (or tabs); +* followed by the URL for the link; +* optionally followed by a title attribute for the link, enclosed + in double or single quotes. + +The link URL may, optionally, be surrounded by angle brackets: + + [id]: <http://example.com/> "Optional Title Here" + +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: + + [id]: http://example.com/longish/path/to/resource/here + "Optional Title Here" + +Link definitions are only used for creating links during Markdown +processing, and are stripped from your document in the HTML output. + +Link definition names may constist of letters, numbers, spaces, and punctuation -- but they are *not* case sensitive. E.g. these two links: + + [link text][a] + [link text][A] + +are equivalent. + +The *implicit link name* 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: + + [Google][] + +And then define the link: + + [Google]: http://google.com/ + +Because link names may contain spaces, this shortcut even works for +multiple words in the link text: + + Visit [Daring Fireball][] for more information. + +And then define the link: + + [Daring Fireball]: http://daringfireball.net/ + +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. + +Here's an example of reference links in action: + + 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" + +Using the implicit link name shortcut, you could instead write: + + 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" + +Both of the above examples will produce the following HTML output: + + <p>I get 10 times more traffic from <a href="http://google.com/" + title="Google">Google</a> than from + <a href="http://search.yahoo.com/" title="Yahoo Search">Yahoo</a> + or <a href="http://search.msn.com/" title="MSN Search">MSN</a>.</p> + +For comparison, here is the same paragraph written using +Markdown's inline link style: + + 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"). + +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. + +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. + + +<h3 id="em">Emphasis</h3> + +Markdown treats asterisks (`*`) and underscores (`_`) as indicators of +emphasis. Text wrapped with one `*` or `_` will be wrapped with an +HTML `<em>` tag; double `*`'s or `_`'s will be wrapped with an HTML +`<strong>` tag. E.g., this input: + + *single asterisks* + + _single underscores_ + + **double asterisks** + + __double underscores__ + +will produce: + + <em>single asterisks</em> + + <em>single underscores</em> + + <strong>double asterisks</strong> + + <strong>double underscores</strong> + +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. + +Emphasis can be used in the middle of a word: + + un*fucking*believable + +But if you surround an `*` or `_` with spaces, it'll be treated as a +literal asterisk or underscore. + +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: + + \*this text is surrounded by literal asterisks\* + + + +<h3 id="code">Code</h3> + +To indicate a span of code, wrap it with backtick quotes (`` ` ``). +Unlike a pre-formatted code block, a code span indicates code within a +normal paragraph. For example: + + Use the `printf()` function. + +will produce: + + <p>Use the <code>printf()</code> function.</p> + +To include a literal backtick character within a code span, you can use +multiple backticks as the opening and closing delimiters: + + ``There is a literal backtick (`) here.`` + +which will produce this: + + <p><code>There is a literal backtick (`) here.</code></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: + + A single backtick in a code span: `` ` `` + + A backtick-delimited string in a code span: `` `foo` `` + +will produce: + + <p>A single backtick in a code span: <code>`</code></p> + + <p>A backtick-delimited string in a code span: <code>`foo`</code></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: + + Please don't use any `<blink>` tags. + +into: + + <p>Please don't use any <code><blink></code> tags.</p> + +You can write this: + + `—` is the decimal-encoded equivalent of `—`. + +to produce: + + <p><code>&#8212;</code> is the decimal-encoded + equivalent of <code>&mdash;</code>.</p> + + + +<h3 id="img">Images</h3> + +Admittedly, it's fairly difficult to devise a "natural" syntax for +placing images into a plain text document format. + +Markdown uses an image syntax that is intended to resemble the syntax +for links, allowing for two styles: *inline* and *reference*. + +Inline image syntax looks like this: + + ![Alt text](/path/to/img.jpg) + + ![Alt text](/path/to/img.jpg "Optional title") + +That is: + +* An exclamation mark: `!`; +* followed by a set of square brackets, containing the `alt` + attribute text for the image; +* followed by a set of parentheses, containing the URL or path to + the image, and an optional `title` attribute enclosed in double + or single quotes. + +Reference-style image syntax looks like this: + + ![Alt text][id] + +Where "id" is the name of a defined image reference. Image references +are defined using syntax identical to link references: + + [id]: url/to/image "Optional title attribute" + +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 `<img>` tags. + + +* * * + + +<h2 id="misc">Miscellaneous</h2> + +<h3 id="autolink">Automatic Links</h3> + +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: + + <http://example.com/> + +Markdown will turn this into: + + <a href="http://example.com/">http://example.com/</a> + +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: + + <address@example.com> + +into something like this: + + <a href="mailto:addre + ss@example.co + m">address@exa + mple.com</a> + +which will render in a browser as a clickable link to "address@example.com". + +(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.) + + + +<h3 id="backslash">Backslash Escapes</h3> + +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 `<em>` tag), you can backslashes +before the asterisks, like this: + + \*literal asterisks\* + +Markdown provides backslash escapes for the following characters: + + \ backslash + ` backtick + * asterisk + _ underscore + {} curly braces + [] square brackets + () parentheses + # hash mark + + plus sign + - minus sign (hyphen) + . dot + ! exclamation mark + diff --git a/oldtests/Original/Nested_blockquotes.html b/oldtests/Original/Nested_blockquotes.html new file mode 100644 index 0000000..02efc59 --- /dev/null +++ b/oldtests/Original/Nested_blockquotes.html @@ -0,0 +1,7 @@ +<blockquote> +<p>foo</p> +<blockquote> +<p>bar</p> +</blockquote> +<p>foo</p> +</blockquote> diff --git a/oldtests/Original/Nested_blockquotes.markdown b/oldtests/Original/Nested_blockquotes.markdown new file mode 100644 index 0000000..ed3c624 --- /dev/null +++ b/oldtests/Original/Nested_blockquotes.markdown @@ -0,0 +1,5 @@ +> foo +> +> > bar +> +> foo diff --git a/oldtests/Original/Ordered_and_unordered_lists.html b/oldtests/Original/Ordered_and_unordered_lists.html new file mode 100644 index 0000000..78d752e --- /dev/null +++ b/oldtests/Original/Ordered_and_unordered_lists.html @@ -0,0 +1,112 @@ +<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> +<p>This was an error in Markdown 1.0.1:</p> +<ul> +<li><p>this</p> +<ul> +<li>sub</li> +</ul> +<p>that</p></li> +</ul> diff --git a/oldtests/Original/Ordered_and_unordered_lists.markdown b/oldtests/Original/Ordered_and_unordered_lists.markdown new file mode 100644 index 0000000..7f3b497 --- /dev/null +++ b/oldtests/Original/Ordered_and_unordered_lists.markdown @@ -0,0 +1,131 @@ +## Unordered + +Asterisks tight: + +* asterisk 1 +* asterisk 2 +* asterisk 3 + + +Asterisks loose: + +* asterisk 1 + +* asterisk 2 + +* asterisk 3 + +* * * + +Pluses tight: + ++ Plus 1 ++ Plus 2 ++ Plus 3 + + +Pluses loose: + ++ Plus 1 + ++ Plus 2 + ++ Plus 3 + +* * * + + +Minuses tight: + +- Minus 1 +- Minus 2 +- Minus 3 + + +Minuses loose: + +- Minus 1 + +- Minus 2 + +- Minus 3 + + +## Ordered + +Tight: + +1. First +2. Second +3. Third + +and: + +1. One +2. Two +3. Three + + +Loose using tabs: + +1. First + +2. Second + +3. Third + +and using spaces: + +1. One + +2. Two + +3. Three + +Multiple paragraphs: + +1. Item 1, graf one. + + Item 2. graf two. The quick brown fox jumped over the lazy dog's + back. + +2. Item 2. + +3. Item 3. + + + +## Nested + +* Tab + * Tab + * Tab + +Here's another: + +1. First +2. Second: + * Fee + * Fie + * Foe +3. Third + +Same thing but with paragraphs: + +1. First + +2. Second: + * Fee + * Fie + * Foe + +3. Third + + +This was an error in Markdown 1.0.1: + +* this + + * sub + + that diff --git a/oldtests/Original/README b/oldtests/Original/README new file mode 100644 index 0000000..5143258 --- /dev/null +++ b/oldtests/Original/README @@ -0,0 +1,15 @@ +These are from John Gruber's original markdown test suite, via +Michel Fortin's mdtest. + +The html files have been modified slightly in ways that do not affect the +semantics. For example, entities are used for quotes in text, and +blank lines are omitted between block-level tags. + +Trailing blank spaces are removed from lines in raw HTML blocks. + +The one (insignificant) semantic change is switching the order +of emph and strong tags in the output for ***strong and emph***. + +We have removed Hard-wrapped_paragraphs_with_list-like_lines tests, +because the new implementation no longer requires a blank line +before a list. diff --git a/oldtests/Original/Strong_and_em_together.html b/oldtests/Original/Strong_and_em_together.html new file mode 100644 index 0000000..2629594 --- /dev/null +++ b/oldtests/Original/Strong_and_em_together.html @@ -0,0 +1,4 @@ +<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> diff --git a/oldtests/Original/Strong_and_em_together.markdown b/oldtests/Original/Strong_and_em_together.markdown new file mode 100644 index 0000000..95ee690 --- /dev/null +++ b/oldtests/Original/Strong_and_em_together.markdown @@ -0,0 +1,7 @@ +***This is strong and em.*** + +So is ***this*** word. + +___This is strong and em.___ + +So is ___this___ word. diff --git a/oldtests/Original/Tabs.html b/oldtests/Original/Tabs.html new file mode 100644 index 0000000..5389bdf --- /dev/null +++ b/oldtests/Original/Tabs.html @@ -0,0 +1,19 @@ +<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> diff --git a/oldtests/Original/Tabs.markdown b/oldtests/Original/Tabs.markdown new file mode 100644 index 0000000..589d113 --- /dev/null +++ b/oldtests/Original/Tabs.markdown @@ -0,0 +1,21 @@ ++ this is a list item + indented with tabs + ++ this is a list item + indented with spaces + +Code: + + this code block is indented by one tab + +And: + + this code block is indented by two tabs + +And: + + + this is an example list item + indented with tabs + + + this is an example list item + indented with spaces diff --git a/oldtests/Original/Tidyness.html b/oldtests/Original/Tidyness.html new file mode 100644 index 0000000..f2a8ce7 --- /dev/null +++ b/oldtests/Original/Tidyness.html @@ -0,0 +1,8 @@ +<blockquote> +<p>A list within a blockquote:</p> +<ul> +<li>asterisk 1</li> +<li>asterisk 2</li> +<li>asterisk 3</li> +</ul> +</blockquote> diff --git a/oldtests/Original/Tidyness.markdown b/oldtests/Original/Tidyness.markdown new file mode 100644 index 0000000..5f18b8d --- /dev/null +++ b/oldtests/Original/Tidyness.markdown @@ -0,0 +1,5 @@ +> A list within a blockquote: +> +> * asterisk 1 +> * asterisk 2 +> * asterisk 3 diff --git a/oldtests/Tabs/TabConversionUnicode.html b/oldtests/Tabs/TabConversionUnicode.html new file mode 100644 index 0000000..f596f6a --- /dev/null +++ b/oldtests/Tabs/TabConversionUnicode.html @@ -0,0 +1 @@ +<p><code>То лпой</code> is a Russian word with a tab inside.</p> diff --git a/oldtests/Tabs/TabConversionUnicode.markdown b/oldtests/Tabs/TabConversionUnicode.markdown new file mode 100644 index 0000000..0bd7b52 --- /dev/null +++ b/oldtests/Tabs/TabConversionUnicode.markdown @@ -0,0 +1 @@ +`То лпой` is a Russian word with a tab inside. |