From a73c95f61dbf47bbb54345855b07127d9fd82e62 Mon Sep 17 00:00:00 2001 From: Alex Ivkin Date: Tue, 28 Jun 2016 23:11:42 -0700 Subject: Added Zim Wiki writer, template and tests. --- tests/Tests/Old.hs | 2 +- tests/tables.zimwiki | 56 +++++ tests/writer.zimwiki | 627 +++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 684 insertions(+), 1 deletion(-) create mode 100644 tests/tables.zimwiki create mode 100644 tests/writer.zimwiki (limited to 'tests') diff --git a/tests/Tests/Old.hs b/tests/Tests/Old.hs index 4e0eb46a4..b2600a9c5 100644 --- a/tests/Tests/Old.hs +++ b/tests/Tests/Old.hs @@ -166,7 +166,7 @@ tests = [ testGroup "markdown" "twiki-reader.twiki" "twiki-reader.native" ] , testGroup "other writers" $ map (\f -> testGroup f $ writerTests f) [ "opendocument" , "context" , "texinfo", "icml", "tei" - , "man" , "plain" , "rtf", "org", "asciidoc" + , "man" , "plain" , "rtf", "org", "asciidoc", "zimwiki" ] , testGroup "writers-lang-and-dir" [ test "latex" ["-f", "native", "-t", "latex", "-s"] diff --git a/tests/tables.zimwiki b/tests/tables.zimwiki new file mode 100644 index 000000000..1f02c9908 --- /dev/null +++ b/tests/tables.zimwiki @@ -0,0 +1,56 @@ +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| +|----:|:----|:-----:|----:| +| 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. | +|:--------:|:----|-----:|-----------------------------------------------------| +| 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.zimwiki b/tests/writer.zimwiki new file mode 100644 index 000000000..848ca955e --- /dev/null +++ b/tests/writer.zimwiki @@ -0,0 +1,627 @@ +Content-Type: text/x-zim-wiki +Wiki-Format: zim 0.4 + +This is a set of tests for pandoc. Most of them are adapted from John Gruber’s markdown test suite. + + +---- + +====== Headers ====== + +===== Level 2 with an embedded link ===== + +==== 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 +> 1. 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) + +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: \$ \\ \> \[ \{ +''' + + +---- + +====== Lists ====== + +===== 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 + 1. Second + 1. Third + +and: + + 1. One + 1. Two + 1. Three + +Loose using tabs: + + 1. First + 1. Second + 1. Third + +and using spaces: + + 1. One + 1. Two + 1. Three + +Multiple paragraphs: + + 1. Item 1, graf one. +Item 1. graf two. The quick brown fox jumped over the lazy dog’s back. + 1. Item 2. + 1. Item 3. + +===== Nested ===== + + * Tab + * Tab + * Tab + +Here’s another: + + 1. First + 1. Second: + * Fee + * Fie + * Foe + 1. Third + +Same thing but with paragraphs: + + 1. First + 1. Second: + * Fee + * Fie + * Foe + 1. Third + +===== 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 ===== + + 1. begins with 2 + 1. and now 3 +with a continuation + 1. sublist with roman numerals, starting with 4 + 1. more items + 1. a subsublist + 1. a subsublist + +Nesting: + + 1. Upper Alpha + 1. Upper Roman. + 1. Decimal start with 6 + 1. Lower alpha with paren + +Autonumbering: + + 1. Autonumber. + 1. 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 fruitcomputer +* **orange** orange fruitbank +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 + 1. sublist + +====== HTML Blocks ====== + +Simple block on one line: + +foo + +And nested without indentation: + +foo + + + +bar + + +Interpreted markdown in a table: + + + + +This is //emphasized// + + +And this is **strong** + + + + +Here’s a simple block: + +foo + + +This should be a code block, though: + +''' +
+ foo +
+''' + +As should this: + +''' +
foo
+''' + +Now, nested: + +foo + + + +This should just be an HTML comment: + + +Multiline: + + + +Code block: + +''' + +''' + +Just plain comment, with trailing spaces on the line: + + +Code: + +''' +
+''' + +Hr’s: + + + + + + + + + + + +---- + +====== Inline Markup ====== + +This is //emphasized//, and so //is this//. + +This is **strong**, and so **is this**. + +An //[[url|emphasized link]]//. + +**//This is strong and em.//** + +So is **//this//** word. + +**//This is strong and em.//** + +So is **//this//** word. + +This is code: ''>'', ''$'', ''\'', ''\$'', ''''. + +~~This is //strikeout//.~~ + +Superscripts: a^{bc}d a^{//hello//} a^{hello there}. + +Subscripts: H_{2}O, H_{23}O, H_{many of them}O. + +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 “[[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…. + + +---- + +====== LaTeX ====== + + * + * $2+2=4$ + * $x \in y$ + * $\alpha \wedge \omega$ + * $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: $\alpha + \omega \times x^2$. + +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]]. + +[[url/|URL and title]]. + +[[url/|URL and title]]. + +[[url/|URL and title]]. + +[[url/|URL and title]] + +[[url/|URL and title]] + +[[url/with_underscore|with_underscore]] + +[[mailto:nobody@nowhere.net|Email link]] + +[[|Empty]]. + +===== Reference ===== + +Foo [[url/|bar]]. + +Foo [[url/|bar]]. + +Foo [[url/|bar]]. + +With [[url/|embedded [brackets]]]. + +[[url/|b]] by itself should be a link. + +Indented [[url|once]]. + +Indented [[url|twice]]. + +Indented [[url|thrice]]. + +This should [not][] be a link. + +''' +[not]: /url +''' + +Foo [[url/|bar]]. + +Foo [[url/|biz]]. + +===== With ampersands ===== + +Here’s a [[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: [[http://att.com/|AT&T]]. + +Here’s an [[script?foo=1&bar=2|inline link]]. + +Here’s an [[script?foo=1&bar=2|inline link in pointy braces]]. + +===== Autolinks ===== + +With an ampersand: http://example.com/?foo=1&bar=2 + + * In a list? + * http://example.com/ + * It should. + +An e-mail address: + +> Blockquoted: http://example.com/ + +Auto-links should not occur here: '''' + +''' +or here: +''' + + +---- + +====== Images ====== + +From “Voyage dans la Lune” by Georges Melies (1902): + +{{:lalune.jpg|Voyage dans la Lune lalune}} + +Here is a movie {{:movie.jpg|movie}} icon. + + +---- + +====== Footnotes ====== + +Here is a footnote reference,((Here is the footnote. It can go anywhere after the footnote reference. It need not be placed at the end of the document. +)) and another.((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). + +''' + { } +''' + +If you want, you can indent every line, but you can also be lazy and just indent the first line of each block. +)) This should //not// be a footnote reference, because it contains a space.[^my note] Here is an inline note.((This is //easier// to type. Inline notes may contain [[http://google.com|links]] and '']'' verbatim characters, as well as [bracketed text]. +)) + +> Notes can go in quotes.((In quote. +> )) + + 1. And in list items.((In list.)) + +This paragraph should not be part of the note, as it is not indented. -- cgit v1.2.3