diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/Tests/Old.hs | 3 | ||||
| -rw-r--r-- | test/tables.typst | 142 | ||||
| -rw-r--r-- | test/writer.typst | 709 |
3 files changed, 854 insertions, 0 deletions
diff --git a/test/Tests/Old.hs b/test/Tests/Old.hs index 957a41287..81a5adbf2 100644 --- a/test/Tests/Old.hs +++ b/test/Tests/Old.hs @@ -193,6 +193,9 @@ tests pandocPath = , testGroup "ms" [ testGroup "writer" $ writerTests' "ms" ] + , testGroup "typst" + [ testGroup "writer" $ writerTests' "typst" + ] , testGroup "creole" [ test' "reader" ["-r", "creole", "-w", "native", "-s"] "creole-reader.txt" "creole-reader.native" diff --git a/test/tables.typst b/test/tables.typst new file mode 100644 index 000000000..0d516b0e0 --- /dev/null +++ b/test/tables.typst @@ -0,0 +1,142 @@ +Simple table with caption: + +#align(center)[#table( + columns: 4, + inset: 6pt, + align: auto, + [Right], [Left], [Center], [Default], + [12], + [12], + [12], + [12], + [123], + [123], + [123], + [123], + [1], + [1], + [1], + [1], +) +#align(center, [Demonstration of simple table syntax.]) +] + +Simple table without caption: + +#align(center)[#table( + columns: 4, + inset: 6pt, + align: auto, + [Right], [Left], [Center], [Default], + [12], + [12], + [12], + [12], + [123], + [123], + [123], + [123], + [1], + [1], + [1], + [1], +) +] + +Simple table indented two spaces: + +#align(center)[#table( + columns: 4, + inset: 6pt, + align: auto, + [Right], [Left], [Center], [Default], + [12], + [12], + [12], + [12], + [123], + [123], + [123], + [123], + [1], + [1], + [1], + [1], +) +#align(center, [Demonstration of simple table syntax.]) +] + +Multiline table with caption: + +#align(center)[#table( + columns: 4, + inset: 6pt, + align: auto, + [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.], +) +#align(center, [Here’s the caption. It may span multiple lines.]) +] + +Multiline table without caption: + +#align(center)[#table( + columns: 4, + inset: 6pt, + align: auto, + [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: + +#align(center)[#table( + columns: 4, + inset: 6pt, + align: auto, + [12], + [12], + [12], + [12], + [123], + [123], + [123], + [123], + [1], + [1], + [1], + [1], +) +] + +Multiline table without column headers: + +#align(center)[#table( + columns: 4, + inset: 6pt, + align: auto, + [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/test/writer.typst b/test/writer.typst new file mode 100644 index 000000000..aa14a59a6 --- /dev/null +++ b/test/writer.typst @@ -0,0 +1,709 @@ +#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:[email protected]")[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:[email protected]")[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.]) +] |
