710 lines
10 KiB
Plaintext
710 lines
10 KiB
Plaintext
#set page(
|
||
numbering: "1"
|
||
)
|
||
#set par(justify: true)
|
||
#set text(
|
||
)
|
||
#set heading(
|
||
)
|
||
|
||
#align(center)[#block(inset: 2em)[
|
||
#text(weight: "bold", size: 18pt)[Pandoc Test Suite] \
|
||
John MacFarlane \
|
||
Anonymous \
|
||
July 17, 2006
|
||
]]
|
||
|
||
#let definition(term, ..defs) = [
|
||
#strong(term) \
|
||
#(defs.pos().join("\n"))
|
||
]
|
||
|
||
#let blockquote(body) = [
|
||
#set text( size: 0.92em )
|
||
#block(inset: (left: 1.5em, top: 0.2em, bottom: 0.2em))[#body]
|
||
]
|
||
|
||
#let horizontalrule = [
|
||
#line(start: (25%,0%), end: (75%,0%))
|
||
]
|
||
|
||
#let endnote(num, contents) = [
|
||
#stack(dir: ltr, spacing: 3pt, super[#num], contents)
|
||
]
|
||
|
||
|
||
|
||
This is a set of tests for pandoc. Most of them are adapted from John Gruber’s
|
||
markdown test suite.
|
||
|
||
#horizontalrule
|
||
|
||
= Headers
|
||
#label("headers")
|
||
== Level 2 with an #link("/url")[embedded link]
|
||
#label("level-2-with-an-embedded-link")
|
||
=== Level 3 with #emph[emphasis]
|
||
#label("level-3-with-emphasis")
|
||
==== Level 4
|
||
#label("level-4")
|
||
===== Level 5
|
||
#label("level-5")
|
||
= Level 1
|
||
#label("level-1")
|
||
== Level 2 with #emph[emphasis]
|
||
#label("level-2-with-emphasis")
|
||
=== Level 3
|
||
#label("level-3")
|
||
with no blank line
|
||
|
||
== Level 2
|
||
#label("level-2")
|
||
with no blank line
|
||
|
||
#horizontalrule
|
||
|
||
= Paragraphs
|
||
#label("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.
|
||
|
||
#horizontalrule
|
||
|
||
= Block Quotes
|
||
#label("block-quotes")
|
||
E-mail style:
|
||
|
||
#blockquote[
|
||
This is a block quote. It is pretty short.
|
||
]
|
||
|
||
#blockquote[
|
||
Code in a block quote:
|
||
|
||
```
|
||
sub status {
|
||
print "working";
|
||
}
|
||
```
|
||
|
||
A list:
|
||
|
||
1. item one
|
||
2. item two
|
||
|
||
Nested block quotes:
|
||
|
||
#blockquote[
|
||
nested
|
||
]
|
||
|
||
#blockquote[
|
||
nested
|
||
]
|
||
]
|
||
|
||
This should not be a block quote: 2 \> 1.
|
||
|
||
And a following paragraph.
|
||
|
||
#horizontalrule
|
||
|
||
= Code Blocks
|
||
#label("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
|
||
|
||
These should not be escaped: \$ \\ \> \[ \{
|
||
```
|
||
|
||
#horizontalrule
|
||
|
||
= Lists
|
||
#label("lists")
|
||
== Unordered
|
||
#label("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
|
||
#label("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
|
||
#label("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
|
||
|
||
== Tabs and spaces
|
||
#label("tabs-and-spaces")
|
||
- this is a list item indented with tabs
|
||
|
||
- this is a list item indented with spaces
|
||
|
||
- this is an example list item indented with tabs
|
||
|
||
- this is an example list item indented with spaces
|
||
|
||
== Fancy list markers
|
||
#label("fancy-list-markers")
|
||
(2) begins with 2
|
||
|
||
(3) and now 3
|
||
|
||
with a continuation
|
||
|
||
iv. sublist with roman numerals, starting with 4
|
||
v. more items
|
||
(A) a subsublist
|
||
(B) a subsublist
|
||
|
||
Nesting:
|
||
|
||
A. Upper Alpha
|
||
I. Upper Roman.
|
||
(6) Decimal start with 6
|
||
c) Lower alpha with paren
|
||
|
||
Autonumbering:
|
||
|
||
1. Autonumber.
|
||
2. More.
|
||
1. Nested.
|
||
|
||
Should not be a list item:
|
||
|
||
M.A. 2007
|
||
|
||
B. Williams
|
||
|
||
#horizontalrule
|
||
|
||
= Definition Lists
|
||
#label("definition-lists")
|
||
Tight using spaces:
|
||
|
||
#definition[apple][red fruit]
|
||
|
||
#definition[orange][orange fruit]
|
||
|
||
#definition[banana][yellow fruit]
|
||
|
||
Tight using tabs:
|
||
|
||
#definition[apple][red fruit]
|
||
|
||
#definition[orange][orange fruit]
|
||
|
||
#definition[banana][yellow fruit]
|
||
|
||
Loose:
|
||
|
||
#definition[apple][red fruit
|
||
|
||
]
|
||
|
||
#definition[orange][orange fruit
|
||
|
||
]
|
||
|
||
#definition[banana][yellow fruit
|
||
|
||
]
|
||
|
||
Multiple blocks with italics:
|
||
|
||
#definition[#emph[apple]][red fruit
|
||
|
||
contains seeds, crisp, pleasant to taste
|
||
|
||
]
|
||
|
||
#definition[#emph[orange]][orange fruit
|
||
|
||
```
|
||
{ orange code block }
|
||
```
|
||
|
||
#blockquote[
|
||
orange block quote
|
||
]
|
||
|
||
]
|
||
|
||
Multiple definitions, tight:
|
||
|
||
#definition[apple][red fruit][computer]
|
||
|
||
#definition[orange][orange fruit][bank]
|
||
|
||
Multiple definitions, loose:
|
||
|
||
#definition[apple][red fruit
|
||
|
||
][computer
|
||
|
||
]
|
||
|
||
#definition[orange][orange fruit
|
||
|
||
][bank
|
||
|
||
]
|
||
|
||
Blank line after term, indented marker, alternate markers:
|
||
|
||
#definition[apple][red fruit
|
||
|
||
][computer
|
||
|
||
]
|
||
|
||
#definition[orange][orange fruit
|
||
|
||
1. sublist
|
||
2. sublist
|
||
|
||
]
|
||
|
||
= HTML Blocks
|
||
#label("html-blocks")
|
||
Simple block on one line:
|
||
|
||
foo
|
||
And nested without indentation:
|
||
|
||
foo
|
||
|
||
bar
|
||
Interpreted markdown in a table:
|
||
|
||
This is #emph[emphasized]
|
||
And this is #strong[strong]
|
||
Here’s a simple block:
|
||
|
||
foo
|
||
|
||
This should be a code block, though:
|
||
|
||
```
|
||
<div>
|
||
foo
|
||
</div>
|
||
```
|
||
|
||
As should this:
|
||
|
||
```
|
||
<div>foo</div>
|
||
```
|
||
|
||
Now, nested:
|
||
|
||
foo
|
||
This should just be an HTML comment:
|
||
|
||
Multiline:
|
||
|
||
Code block:
|
||
|
||
```
|
||
<!-- Comment -->
|
||
```
|
||
|
||
Just plain comment, with trailing spaces on the line:
|
||
|
||
Code:
|
||
|
||
```
|
||
<hr />
|
||
```
|
||
|
||
Hr’s:
|
||
|
||
#horizontalrule
|
||
|
||
= Inline Markup
|
||
#label("inline-markup")
|
||
This is #emph[emphasized], and so #emph[is this].
|
||
|
||
This is #strong[strong], and so #strong[is this].
|
||
|
||
An #emph[#link("/url")[emphasized link]].
|
||
|
||
#strong[#emph[This is strong and em.]]
|
||
|
||
So is #strong[#emph[this]] word.
|
||
|
||
#strong[#emph[This is strong and em.]]
|
||
|
||
So is #strong[#emph[this]] word.
|
||
|
||
This is code: `>`, `$`, `\`, `\$`, `<html>`.
|
||
|
||
#strike[This is #emph[strikeout].]
|
||
|
||
Superscripts: a#super[bc]d a#super[#emph[hello]] a#super[hello there].
|
||
|
||
Subscripts: H#sub[2]O, H#sub[23]O, H#sub[many of them]O.
|
||
|
||
These should not be superscripts or subscripts, because of the unescaped spaces:
|
||
a^b c^d, a~b c~d.
|
||
|
||
#horizontalrule
|
||
|
||
= Smart quotes, ellipses, dashes
|
||
#label("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
|
||
"#link("http://example.com/?foo=1&bar=2")[quoted link]".
|
||
|
||
Some dashes: one—two — three—four — five.
|
||
|
||
Dashes between numbers: 5–7, 255–66, 1987–1999.
|
||
|
||
Ellipses…and…and….
|
||
|
||
#horizontalrule
|
||
|
||
= LaTeX
|
||
#label("latex")
|
||
-
|
||
- $2 plus 2 eq 4$
|
||
- $x in y$
|
||
- $alpha and omega$
|
||
- $223$
|
||
- $p$-Tree
|
||
- Here’s some display math:
|
||
$ frac(d, d x) f lr((x)) eq lim_(h arrow.r 0) frac(f lr((x plus h)) minus f lr((x)), h) $
|
||
- Here’s one that has a line break in it: $alpha plus omega times x^2$.
|
||
|
||
These shouldn’t be math:
|
||
|
||
- To get the famous equation, write `$e = mc^2$`.
|
||
- \$22,000 is a #emph[lot] of money. So is \$34,000. (It worked if "lot" is
|
||
emphasized.)
|
||
- Shoes (\$20) and socks (\$5).
|
||
- Escaped `$`: \$73 #emph[this should be emphasized] 23\$.
|
||
|
||
Here’s a LaTeX table:
|
||
|
||
#horizontalrule
|
||
|
||
= Special Characters
|
||
#label("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: -
|
||
|
||
#horizontalrule
|
||
|
||
= Links
|
||
#label("links")
|
||
== Explicit
|
||
#label("explicit")
|
||
Just a #link("/url/")[URL].
|
||
|
||
#link("/url/")[URL and title].
|
||
|
||
#link("/url/")[URL and title].
|
||
|
||
#link("/url/")[URL and title].
|
||
|
||
#link("/url/")[URL and title]
|
||
|
||
#link("/url/")[URL and title]
|
||
|
||
#link("/url/with_underscore")[with\_underscore]
|
||
|
||
#link("mailto:nobody@nowhere.net")[Email link]
|
||
|
||
#link("")[Empty].
|
||
|
||
== Reference
|
||
#label("reference")
|
||
Foo #link("/url/")[bar].
|
||
|
||
With #link("/url/")[embedded \[brackets\]].
|
||
|
||
#link("/url/")[b] by itself should be a link.
|
||
|
||
Indented #link("/url")[once].
|
||
|
||
Indented #link("/url")[twice].
|
||
|
||
Indented #link("/url")[thrice].
|
||
|
||
This should \[not\]\[\] be a link.
|
||
|
||
```
|
||
[not]: /url
|
||
```
|
||
|
||
Foo #link("/url/")[bar].
|
||
|
||
Foo #link("/url/")[biz].
|
||
|
||
== With ampersands
|
||
#label("with-ampersands")
|
||
Here’s a
|
||
#link("http://example.com/?foo=1&bar=2")[link with an ampersand in the URL].
|
||
|
||
Here’s a link with an amersand in the link text: #link("http://att.com/")[AT&T].
|
||
|
||
Here’s an #link("/script?foo=1&bar=2")[inline link].
|
||
|
||
Here’s an #link("/script?foo=1&bar=2")[inline link in pointy braces].
|
||
|
||
== Autolinks
|
||
#label("autolinks")
|
||
With an ampersand:
|
||
#link("http://example.com/?foo=1&bar=2")[http://example.com/?foo\=1&bar\=2]
|
||
|
||
- In a list?
|
||
- #link("http://example.com/")
|
||
- It should.
|
||
|
||
An e-mail address: #link("mailto:nobody@nowhere.net")[nobody\@nowhere.net]
|
||
|
||
#blockquote[
|
||
Blockquoted: #link("http://example.com/")
|
||
]
|
||
|
||
Auto-links should not occur here: `<http://example.com/>`
|
||
|
||
```
|
||
or here: <http://example.com/>
|
||
```
|
||
|
||
#horizontalrule
|
||
|
||
= Images
|
||
#label("images")
|
||
From "Voyage dans la Lune" by Georges Melies (1902):
|
||
|
||
#figure([#image("lalune.jpg")],
|
||
caption: [
|
||
lalune
|
||
]
|
||
)
|
||
|
||
Here is a movie #image("movie.jpg") icon.
|
||
|
||
#horizontalrule
|
||
|
||
= Footnotes
|
||
#label("footnotes")
|
||
Here is a footnote reference,#super[1] and another.#super[2] This should
|
||
#emph[not] be a footnote reference, because it contains a space.\[^my note\]
|
||
Here is an inline note.#super[3]
|
||
|
||
#blockquote[
|
||
Notes can go in quotes.#super[4]
|
||
]
|
||
|
||
1. And in list items.#super[5]
|
||
|
||
This paragraph should not be part of the note, as it is not indented.
|
||
|
||
#v(1em)
|
||
#block[
|
||
#horizontalrule
|
||
#set text(size: .88em)
|
||
#v(3pt) // otherwise first note marker is swallowed, bug?
|
||
|
||
#endnote([1], [Here is the footnote. It can go anywhere after the footnote
|
||
reference. It need not be placed at the end of the document.])
|
||
|
||
#endnote([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.])
|
||
|
||
#endnote([3], [This is #emph[easier] to type. Inline notes may contain
|
||
#link("http://google.com")[links] and `]` verbatim characters, as well as
|
||
\[bracketed text\].])
|
||
|
||
#endnote([4], [In quote.])
|
||
|
||
#endnote([5], [In list.])
|
||
]
|