From 90647a56f6a742e7ecc1cec44042e256ff94b802 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Fri, 4 Feb 2011 20:37:58 -0800 Subject: [PATCH] Updated tests for new HTML format. Verified against old tests using tidy and diff. --- tests/lhs-test.fragment.html+lhs | 65 +- tests/lhs-test.html | 65 +- tests/lhs-test.html+lhs | 65 +- tests/lhs-test.nohl.html | 43 +- tests/lhs-test.nohl.html+lhs | 43 +- tests/s5.basic.html | 42 +- tests/s5.fancy.html | 48 +- tests/s5.fragment.html | 32 +- tests/s5.inserts.html | 32 +- tests/tables.html | 535 ++++---- tests/writer.html | 1968 +++++++++++++----------------- 11 files changed, 1265 insertions(+), 1673 deletions(-) diff --git a/tests/lhs-test.fragment.html+lhs b/tests/lhs-test.fragment.html+lhs index 7757bc634..76ba4ef1a 100644 --- a/tests/lhs-test.fragment.html+lhs +++ b/tests/lhs-test.fragment.html+lhs @@ -1,50 +1,15 @@ -

lhs test

unsplit is an arrow that takes a pair of values and combines them to return a single value:

> unsplit :: (Arrow a) => (b -> c -> d) -> a (b, c) d
> unsplit = arr . uncurry
> -- arr (\op (x,y) -> x `op` y)

(***) combines two arrows into a new arrow by running the two arrows on a pair of values (one arrow on the first item of the pair and one arrow on the second item of the pair).

f *** g = first f >>> second g
-

Block quote:

foo bar

+

lhs test

+ +

unsplit is an arrow that takes a pair of values and combines them to return a single value:

+ +
> unsplit :: (Arrow a) => (b -> c -> d) -> a (b, c) d
> unsplit = arr . uncurry
> -- arr (\op (x,y) -> x `op` y)
+ +

(***) combines two arrows into a new arrow by running the two arrows on a pair of values (one arrow on the first item of the pair and one arrow on the second item of the pair).

+ +
f *** g = first f >>> second g
+ +

Block quote:

+ +
+

foo bar

+
diff --git a/tests/lhs-test.html b/tests/lhs-test.html index 0e5587a83..f7c9819b2 100644 --- a/tests/lhs-test.html +++ b/tests/lhs-test.html @@ -25,55 +25,20 @@ code.sourceCode span.er { color: red; font-weight: bold; } -

lhs test

unsplit is an arrow that takes a pair of values and combines them to return a single value:

unsplit :: (Arrow a) => (b -> c -> d) -> a (b, c) d
unsplit = arr . uncurry
-- arr (\op (x,y) -> x `op` y)

(***) combines two arrows into a new arrow by running the two arrows on a pair of values (one arrow on the first item of the pair and one arrow on the second item of the pair).

f *** g = first f >>> second g
-

Block quote:

foo bar

+

lhs test

+ +

unsplit is an arrow that takes a pair of values and combines them to return a single value:

+ +
unsplit :: (Arrow a) => (b -> c -> d) -> a (b, c) d
unsplit = arr . uncurry
-- arr (\op (x,y) -> x `op` y)
+ +

(***) combines two arrows into a new arrow by running the two arrows on a pair of values (one arrow on the first item of the pair and one arrow on the second item of the pair).

+ +
f *** g = first f >>> second g
+
+ +

Block quote:

+ +
+

foo bar

diff --git a/tests/lhs-test.html+lhs b/tests/lhs-test.html+lhs index 8a4b82e0a..b5065ded0 100644 --- a/tests/lhs-test.html+lhs +++ b/tests/lhs-test.html+lhs @@ -25,55 +25,20 @@ code.sourceCode span.er { color: red; font-weight: bold; } -

lhs test

unsplit is an arrow that takes a pair of values and combines them to return a single value:

> unsplit :: (Arrow a) => (b -> c -> d) -> a (b, c) d
> unsplit = arr . uncurry
> -- arr (\op (x,y) -> x `op` y)

(***) combines two arrows into a new arrow by running the two arrows on a pair of values (one arrow on the first item of the pair and one arrow on the second item of the pair).

f *** g = first f >>> second g
-

Block quote:

foo bar

+

lhs test

+ +

unsplit is an arrow that takes a pair of values and combines them to return a single value:

+ +
> unsplit :: (Arrow a) => (b -> c -> d) -> a (b, c) d
> unsplit = arr . uncurry
> -- arr (\op (x,y) -> x `op` y)
+ +

(***) combines two arrows into a new arrow by running the two arrows on a pair of values (one arrow on the first item of the pair and one arrow on the second item of the pair).

+ +
f *** g = first f >>> second g
+
+ +

Block quote:

+ +
+

foo bar

diff --git a/tests/lhs-test.nohl.html b/tests/lhs-test.nohl.html index cb03679f3..663ea81bb 100644 --- a/tests/lhs-test.nohl.html +++ b/tests/lhs-test.nohl.html @@ -6,34 +6,23 @@ -

lhs test

unsplit is an arrow that takes a pair of values and combines them to return a single value:

unsplit :: (Arrow a) => (b -> c -> d) -> a (b, c) d
+

lhs test

+ +

unsplit is an arrow that takes a pair of values and combines them to return a single value:

+ +
unsplit :: (Arrow a) => (b -> c -> d) -> a (b, c) d
 unsplit = arr . uncurry       
           -- arr (\op (x,y) -> x `op` y) 
-

(***) combines two arrows into a new arrow by running the two arrows on a pair of values (one arrow on the first item of the pair and one arrow on the second item of the pair).

f *** g = first f >>> second g
-

Block quote:

foo bar

+
+ +

(***) combines two arrows into a new arrow by running the two arrows on a pair of values (one arrow on the first item of the pair and one arrow on the second item of the pair).

+ +
f *** g = first f >>> second g
+
+ +

Block quote:

+ +
+

foo bar

diff --git a/tests/lhs-test.nohl.html+lhs b/tests/lhs-test.nohl.html+lhs index 8b972a044..e18ee4ce1 100644 --- a/tests/lhs-test.nohl.html+lhs +++ b/tests/lhs-test.nohl.html+lhs @@ -6,34 +6,23 @@ -

lhs test

unsplit is an arrow that takes a pair of values and combines them to return a single value:

> unsplit :: (Arrow a) => (b -> c -> d) -> a (b, c) d
+

lhs test

+ +

unsplit is an arrow that takes a pair of values and combines them to return a single value:

+ +
> unsplit :: (Arrow a) => (b -> c -> d) -> a (b, c) d
 > unsplit = arr . uncurry       
 >           -- arr (\op (x,y) -> x `op` y) 
-

(***) combines two arrows into a new arrow by running the two arrows on a pair of values (one arrow on the first item of the pair and one arrow on the second item of the pair).

f *** g = first f >>> second g
-

Block quote:

foo bar

+
+ +

(***) combines two arrows into a new arrow by running the two arrows on a pair of values (one arrow on the first item of the pair and one arrow on the second item of the pair).

+ +
f *** g = first f >>> second g
+
+ +

Block quote:

+ +
+

foo bar

diff --git a/tests/s5.basic.html b/tests/s5.basic.html index 64971417a..f21cca0e7 100644 --- a/tests/s5.basic.html +++ b/tests/s5.basic.html @@ -35,25 +35,31 @@

July 15, 2006

-

First slide

+ + +

First slide

+ + + + + +
-

Math

+ + +

Math

+ + + + diff --git a/tests/s5.fancy.html b/tests/s5.fancy.html index 200990b6a..d0e653557 100644 --- a/tests/s5.fancy.html +++ b/tests/s5.fancy.html @@ -17,8 +17,7 @@ - +
@@ -236,25 +234,31 @@

July 15, 2006

-

First slide

+ + +

First slide

+ + + + + +
-

Math

+ + +

Math

+ + + + diff --git a/tests/s5.fragment.html b/tests/s5.fragment.html index 9845e1409..cca3f7244 100644 --- a/tests/s5.fragment.html +++ b/tests/s5.fragment.html @@ -1,17 +1,15 @@ -

First slide

Math

+

First slide

+ + + +

Math

+ + diff --git a/tests/s5.inserts.html b/tests/s5.inserts.html index 3010ef758..afdec0fab 100644 --- a/tests/s5.inserts.html +++ b/tests/s5.inserts.html @@ -13,23 +13,21 @@ STUFF INSERTED

My S5 Document

-

First slide

Math

+

First slide

+ + + +

Math

+ + STUFF INSERTED diff --git a/tests/tables.html b/tests/tables.html index e4dd6be58..59f1390e5 100644 --- a/tests/tables.html +++ b/tests/tables.html @@ -1,301 +1,234 @@ -

Simple table with caption:

Demonstration of simple table syntax.
RightLeftCenterDefault
12121212
123123123123
1111

Simple table without caption:

RightLeftCenterDefault
12121212
123123123123
1111

Simple table indented two spaces:

Demonstration of simple table syntax.
RightLeftCenterDefault
12121212
123123123123
1111

Multiline table with caption:

Here's the caption. It may span multiple lines.
Centered HeaderLeft AlignedRight AlignedDefault aligned
Firstrow12.0Example of a row that spans multiple lines.
Secondrow5.0Here's another one. Note the blank line between rows.

Multiline table without caption:

Centered HeaderLeft AlignedRight AlignedDefault aligned
Firstrow12.0Example of a row that spans multiple lines.
Secondrow5.0Here's another one. Note the blank line between rows.

Table without column headers:

12121212
123123123123
1111

Multiline table without column headers:

Firstrow12.0Example of a row that spans multiple lines.
Secondrow5.0Here's another one. Note the blank line between rows.
+

Simple table with caption:

+ + + + + + + + + + + + + + + + + + + + + +
Demonstration of simple table syntax.
+Right +Left +Center +Default
+12 +12 +12 +12
+123 +123 +123 +123
+1 +1 +1 +1
+ +

Simple table without caption:

+ + + + + + + + + + + + + + + + + + + + + +
+Right +Left +Center +Default
+12 +12 +12 +12
+123 +123 +123 +123
+1 +1 +1 +1
+ +

Simple table indented two spaces:

+ + + + + + + + + + + + + + + + + + + + + +
Demonstration of simple table syntax.
+Right +Left +Center +Default
+12 +12 +12 +12
+123 +123 +123 +123
+1 +1 +1 +1
+ +

Multiline table with caption:

+ + + + + + + + + + + + + + + + +
Here's the caption. It may span multiple lines.
+Centered Header +Left Aligned +Right Aligned +Default aligned
+First +row +12.0 +Example of a row that spans multiple lines.
+Second +row +5.0 +Here's another one. Note the blank line between rows.
+ +

Multiline table without caption:

+ + + + + + + + + + + + + + + + +
+Centered Header +Left Aligned +Right Aligned +Default aligned
+First +row +12.0 +Example of a row that spans multiple lines.
+Second +row +5.0 +Here's another one. Note the blank line between rows.
+ +

Table without column headers:

+ + + + + + + + + + + + + + + + +
+12 +12 +12 +12
+123 +123 +123 +123
+1 +1 +1 +1
+ +

Multiline table without column headers:

+ + + + + + + + + + + +
+First +row +12.0 +Example of a row that spans multiple lines.
+Second +row +5.0 +Here's another one. Note the blank line between rows.
diff --git a/tests/writer.html b/tests/writer.html index 60f5f4a45..2963a0294 100644 --- a/tests/writer.html +++ b/tests/writer.html @@ -10,624 +10,600 @@

Pandoc Test Suite

-

This is a set of tests for pandoc. Most of them are adapted from John Gruber’s markdown test suite.


Headers

Level 3 with emphasis

Level 4

Level 5

Level 1

Level 2 with emphasis

Level 3

with no blank line

Level 2

with no blank line


Paragraphs

Here’s a regular paragraph.

In Markdown 1.0.0 and earlier. Version 8. This line turns into a list item. Because a hard-wrapped line in the middle of a paragraph looked like a list item.

Here’s one with a bullet. * criminey.

There should be a hard line break
here.


Block Quotes

E-mail style:

This is a block quote. It is pretty short.

Code in a block quote:

sub status {
+

This is a set of tests for pandoc. Most of them are adapted from John Gruber’s markdown test suite.

+ +
+ +

Headers

+ + + +

Level 3 with emphasis

+ +

Level 4

+ +
Level 5
+ +

Level 1

+ +

Level 2 with emphasis

+ +

Level 3

+ +

with no blank line

+ +

Level 2

+ +

with no blank line

+ +
+ +

Paragraphs

+ +

Here’s a regular paragraph.

+ +

In Markdown 1.0.0 and earlier. Version 8. This line turns into a list item. Because a hard-wrapped line in the middle of a paragraph looked like a list item.

+ +

Here’s one with a bullet. * criminey.

+ +

There should be a hard line break
here.

+ +
+ +

Block Quotes

+ +

E-mail style:

+ +
+

This is a block quote. It is pretty short.

+ +
+

Code in a block quote:

+ +
sub status {
     print "working";
 }
-

A list:

  1. item one
  2. item two

Nested block quotes:

nested

nested

This should not be a block quote: 2 > 1.

And a following paragraph.


Code Blocks

Code:

---- (should be four hyphens)
+
+ +

A list:

+ +
    +
  1. +item one
  2. +
  3. +item two
  4. +
+ +

Nested block quotes:

+ +
+

nested

+ +
+

nested

+ +

This should not be a block quote: 2 > 1.

+ +

And a following paragraph.

+ +
+ +

Code Blocks

+ +

Code:

+ +
---- (should be four hyphens)
 
 sub status {
     print "working";
 }
 
 this code block is indented by one tab
-

And:

    this code block is indented by two tabs
+
+ +

And:

+ +
    this code block is indented by two tabs
 
 These should not be escaped:  \$ \\ \> \[ \{
-

Lists

Unordered

Asterisks tight:

Asterisks loose:

Pluses tight:

Pluses loose:

Minuses tight:

Minuses loose:

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 1. graf two. The quick brown fox jumped over the lazy dog’s back.

  2. Item 2.

  3. Item 3.

Nested

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

Tabs and spaces

Fancy list markers

  1. begins with 2
  2. and now 3

    with a continuation

    1. sublist with roman numerals, starting with 4
    2. more items
      1. a subsublist
      2. a subsublist

Nesting:

  1. Upper Alpha
    1. Upper Roman.
      1. Decimal start with 6
        1. Lower alpha with paren

Autonumbering:

  1. Autonumber.
  2. More.
    1. Nested.

Should not be a list item:

M.A. 2007

B. Williams


Definition Lists

Tight using spaces:

apple
red fruit
orange
orange fruit
banana
yellow fruit

Tight using tabs:

apple
red fruit
orange
orange fruit
banana
yellow fruit

Loose:

apple

red fruit

orange

orange fruit

banana

yellow fruit

Multiple blocks with italics:

apple

red fruit

contains seeds, crisp, pleasant to taste

orange

orange fruit

{ orange code block }
-

orange block quote

Multiple definitions, tight:

apple
red fruit
computer
orange
orange fruit
bank

Multiple definitions, loose:

apple

red fruit

computer

orange

orange fruit

bank

Blank line after term, indented marker, alternate markers:

apple

red fruit

computer

orange

orange fruit

  1. sublist
  2. sublist

HTML Blocks

Simple block on one line:

foo
-

And nested without indentation:

+ + +
+ +

Lists

+ +

Unordered

+ +

Asterisks tight:

+ + + +

Asterisks loose:

+ + + +

Pluses tight:

+ + + +

Pluses loose:

+ + + +

Minuses tight:

+ + + +

Minuses loose:

+ + + +

Ordered

+ +

Tight:

+ +
    +
  1. +First
  2. +
  3. +Second
  4. +
  5. +Third
  6. +
+ +

and:

+ +
    +
  1. +One
  2. +
  3. +Two
  4. +
  5. +Three
  6. +
+ +

Loose using tabs:

+ +
    +
  1. +

    First

  2. +
  3. +

    Second

  4. +
  5. +

    Third

  6. +
+ +

and using spaces:

+ +
    +
  1. +

    One

  2. +
  3. +

    Two

  4. +
  5. +

    Three

  6. +
+ +

Multiple paragraphs:

+ +
    +
  1. +

    Item 1, graf one.

    + +

    Item 1. graf two. The quick brown fox jumped over the lazy dog’s back.

  2. +
  3. +

    Item 2.

  4. +
  5. +

    Item 3.

  6. +
+ +

Nested

+ + + +

Here’s another:

+ +
    +
  1. +First
  2. +
  3. +Second: + +
      +
    • +Fee
    • +
    • +Fie
    • +
    • +Foe
    • +
  4. +
  5. +Third
  6. +
+ +

Same thing but with paragraphs:

+ +
    +
  1. +

    First

  2. +
  3. +

    Second:

    + +
      +
    • +Fee
    • +
    • +Fie
    • +
    • +Foe
    • +
  4. +
  5. +

    Third

  6. +
+ +

Tabs and spaces

+ + + +

Fancy list markers

+ +
    +
  1. +begins with 2
  2. +
  3. +

    and now 3

    + +

    with a continuation

    + +
      +
    1. +sublist with roman numerals, starting with 4
    2. +
    3. +more items + +
        +
      1. +a subsublist
      2. +
      3. +a subsublist
      4. +
    4. +
  4. +
+ +

Nesting:

+ +
    +
  1. +Upper Alpha + +
      +
    1. +Upper Roman. + +
        +
      1. +Decimal start with 6 + +
          +
        1. +Lower alpha with paren
        2. +
      2. +
    2. +
  2. +
+ +

Autonumbering:

+ +
    +
  1. +Autonumber.
  2. +
  3. +More. + +
      +
    1. +Nested.
    2. +
  4. +
+ +

Should not be a list item:

+ +

M.A. 2007

+ +

B. Williams

+ +
+ +

Definition Lists

+ +

Tight using spaces:

+ +
+
apple
+
+red fruit +
+
orange
+
+orange fruit +
+
banana
+
+yellow fruit +
+
+ +

Tight using tabs:

+ +
+
apple
+
+red fruit +
+
orange
+
+orange fruit +
+
banana
+
+yellow fruit +
+
+ +

Loose:

+ +
+
apple
+
+

red fruit

+
+
orange
+
+

orange fruit

+
+
banana
+
+

yellow fruit

+
+
+ +

Multiple blocks with italics:

+ +
+
apple
+
+

red fruit

+ +

contains seeds, crisp, pleasant to taste

+
+
orange
+
+

orange fruit

+ +
{ orange code block }
+
+ +
+

orange block quote

+
+
+ +

Multiple definitions, tight:

+ +
+
apple
+
+red fruit +
+computer +
+
orange
+
+orange fruit +
+bank +
+
+ +

Multiple definitions, loose:

+ +
+
apple
+
+

red fruit

+
+

computer

+
+
orange
+
+

orange fruit

+
+

bank

+
+
+ +

Blank line after term, indented marker, alternate markers:

+ +
+
apple
+
+

red fruit

+
+

computer

+
+
orange
+
+

orange fruit

+ +
    +
  1. +sublist
  2. +
  3. +sublist
  4. +
+
+
+ +

HTML Blocks

+ +

Simple block on one line:

+
-
foo
+ +foo +
-
bar
+ + +

And nested without indentation:

+ +
+
+
+ +foo +
-

Interpreted markdown in a table:

+ +
+ +bar + +
+ + + +

Interpreted markdown in a table:

+ +
- - + +
This is emphasizedAnd this is strong + +This is emphasized + + + +And this is strong + +
-

Here’s a simple block:

- foo
-

This should be a code block, though:

<div>
+
+
+

Here’s a simple block:

+ +
+ + +foo + +
+ + +

This should be a code block, though:

+ +
<div>
     foo
 </div>
-

As should this:

<div>foo</div>
-

Now, nested:

+
+ +

As should this:

+ +
<div>foo</div>
+
+ +

Now, nested:

+ +
- foo
+ + +foo + +
-

This should just be an HTML comment:

-

Multiline:

+ + +

Multiline:

+ + @@ -635,26 +611,26 @@ Blah -

Code block:

<!-- Comment -->
-

Just plain comment, with trailing spaces on the line:

-

Code:

<hr />
-

Hr’s:


+ + +

Code block:

+ +
<!-- Comment -->
+
+ +

Just plain comment, with trailing spaces on the line:

+ + + + +

Code:

+ +
<hr />
+
+ +

Hr’s:

+ +

@@ -671,493 +647,297 @@ Blah

-

Inline Markup

This is emphasized, and so is this.

This is strong, and so is this.

An emphasized link.

This is strong and em.

So is this word.

This is strong and em.

So is this word.

This is code: >, $, \, \$, <html>.

This is strikeout.

Superscripts: abcd ahello ahello there.

Subscripts: H2O, H23O, Hmany of themO.

These should not be superscripts or subscripts, because of the unescaped spaces: a^b c^d, a~b c~d.


Smart quotes, ellipses, dashes

“Hello,” said the spider. “‘Shelob’ is my name.”

‘A’, ‘B’, and ‘C’ are letters.

‘Oak,’ ‘elm,’ and ‘beech’ are names of trees. So is ‘pine.’

‘He said, “I want to go.”’ Were you alive in the 70’s?

Here is some quoted ‘code’ and a “quoted link”.

Some dashes: one—two — three—four — five.

Dashes between numbers: 5–7, 255–66, 1987–1999.

Ellipses…and…and….


LaTeX

  • 2 + 2 = 4
  • x ∈ y
  • α ∧ ω
  • 223
  • p-Tree
  • Here’s some display math:
    $\frac{d}{dx}f(x)=\lim_{h\to 0}\frac{f(x+h)-f(x)}{h}$
  • Here’s one that has a line break in it: α + ω × x2.

These shouldn’t be math:

  • To get the famous equation, write $e = mc^2$.
  • $22,000 is a lot of money. So is $34,000. (It worked if “lot” is emphasized.)
  • Shoes ($20) and socks ($5).
  • Escaped $: $73 this should be emphasized 23$.

Here’s a LaTeX table:


Special Characters

Here is some unicode:

  • I hat: Î
  • o umlaut: ö
  • section: §
  • set membership: ∈
  • copyright: ©

AT&T has an ampersand in their name.

AT&T is another way to write it.

This & that.

4 < 5.

6 > 5.

Backslash: \

Backtick: `

Asterisk: *

Underscore: _

Left brace: {

Right brace: }

Left bracket: [

Right bracket: ]

Left paren: (

Right paren: )

Greater-than: >

Hash: #

Period: .

Bang: !

Plus: +

Minus: -


Links

Explicit

Just a URL.

URL and title.

URL and title.

URL and title.

URL and title

URL and title

with_underscore

Empty.

Reference

Foo bar.

Foo bar.

Foo bar.

With embedded [brackets].

b by itself should be a link.

Indented once.

Indented twice.

Indented thrice.

This should [not][] be a link.

[not]: /url
-

Foo bar.

Foo biz.

With ampersands

Here’s a link with an ampersand in the URL.

Here’s a link with an amersand in the link text: AT&T.

Here’s an inline link.

Here’s an inline link in pointy braces.

With an ampersand: http://example.com/?foo=1&bar=2

An e-mail address:

+ +

Empty.

+ +

Reference

+ +

Foo bar.

+ +

Foo bar.

+ +

Foo bar.

+ +

With embedded [brackets].

+ +

b by itself should be a link.

+ +

Indented once.

+ +

Indented twice.

+ +

Indented thrice.

+ +

This should [not][] be a link.

+ +
[not]: /url
+
+ +

Foo bar.

+ +

Foo biz.

+ +

With ampersands

+ +

Here’s a link with an ampersand in the URL.

+ +

Here’s a link with an amersand in the link text: AT&T.

+ +

Here’s an inline link.

+ +

Here’s an inline link in pointy braces.

+ + + +

With an ampersand: http://example.com/?foo=1&bar=2

+ + + +

An e-mail address:

Blockquoted: http://example.com/

Auto-links should not occur here: <http://example.com/>

or here: <http://example.com/>
-

Images

From “Voyage dans la Lune” by Georges Melies (1902):

lalune

lalune

Here is a movie movie icon.


Footnotes

Here is a footnote reference,1 and another.2 This should not be a footnote reference, because it contains a space.[^my note] Here is an inline note.3

Notes can go in quotes.4

  1. And in list items.5

This paragraph should not be part of the note, as it is not indented.


  1. Here is the footnote. It can go anywhere after the footnote reference. It need not be placed at the end of the document.

  2. Here’s the long note. This one contains multiple blocks.

    Subsequent blocks are indented to show that they belong to the footnote (as with list items).

      { <code> }
    -

    If you want, you can indent every line, but you can also be lazy and just indent the first line of each block.

  3. This is easier to type. Inline notes may contain links and ] verbatim characters, as well as [bracketed text].

  4. In quote.

  5. In list.

+

+ +
+

Blockquoted: http://example.com/

+ +

Auto-links should not occur here: <http://example.com/>

+ +
or here: <http://example.com/>
+
+ +
+ +

Images

+ +

From “Voyage dans la Lune” by Georges Melies (1902):

+ +
+lalune

lalune

+
+ +

Here is a movie movie icon.

+ +
+ +

Footnotes

+ +

Here is a footnote reference,1 and another.2 This should not be a footnote reference, because it contains a space.[^my note] Here is an inline note.3

+ +
+

Notes can go in quotes.4

+ +
    +
  1. +And in list items.5
  2. +
+ +

This paragraph should not be part of the note, as it is not indented.

+
+
    +
  1. +

    Here is the footnote. It can go anywhere after the footnote reference. It need not be placed at the end of the document.

  2. +
  3. +

    Here’s the long note. This one contains multiple blocks.

    + +

    Subsequent blocks are indented to show that they belong to the footnote (as with list items).

    + +
      { <code> }
    +
    + +

    If you want, you can indent every line, but you can also be lazy and just indent the first line of each block.

  4. +
  5. +

    This is easier to type. Inline notes may contain links and ] verbatim characters, as well as [bracketed text].

  6. +
  7. +

    In quote.

  8. +
  9. +

    In list.

  10. +