From ddaec05d8f49308363c694718240bdaf58466659 Mon Sep 17 00:00:00 2001 From: fiddlosopher Date: Sun, 27 Jul 2008 03:25:51 +0000 Subject: Added MediaWiki writer. + Added Text/Pandoc/Writers/MediaWiki.hs + Added to pandoc.cabal + Added to Main.hs and Text/Pandoc.hs exports. + Added tests for mediawiki writer & table writer. + Added information on MediaWiki writer to README. + Added mediawiki markup to list of formats in pandoc(1) man page. + Updated debian/control with mediawiki output format. + Added mediawiki markup to description in macports portfile. + Updated freebsd package description to include mediawiki format. + Mention MediaWiki output format in web page index. + Added mediawiki demo to website. git-svn-id: https://pandoc.googlecode.com/svn/trunk@1337 788f1e2b-df1e-0410-8736-df70ead52e1b --- tests/generate.sh | 1 + tests/runtests.pl | 2 +- tests/tables.mediawiki | 123 ++++++++++ tests/writer.mediawiki | 605 +++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 730 insertions(+), 1 deletion(-) create mode 100644 tests/tables.mediawiki create mode 100644 tests/writer.mediawiki (limited to 'tests') diff --git a/tests/generate.sh b/tests/generate.sh index 70e23969f..fd99caa33 100755 --- a/tests/generate.sh +++ b/tests/generate.sh @@ -8,6 +8,7 @@ ../pandoc -r native -s -w texinfo testsuite.native > writer.texinfo ../pandoc -r native -s -w rtf testsuite.native > writer.rtf ../pandoc -r native -s -w man testsuite.native > writer.man +../pandoc -r native -s -w mediawiki testsuite.native > writer.mediawiki sed -e '/^, Header 1 \[Str "HTML",Space,Str "Blocks"\]/,/^, HorizontalRule/d' testsuite.native | ../pandoc -r native -w docbook -s > writer.docbook sed -e '/^, Header 1 \[Str "LaTeX"\]/,/^, HorizontalRule/d' testsuite.native | ../pandoc -r native -w context -s > writer.context diff --git a/tests/runtests.pl b/tests/runtests.pl index 38ce00fdc..9457b3eb3 100644 --- a/tests/runtests.pl +++ b/tests/runtests.pl @@ -14,7 +14,7 @@ unless (-x $script) { die "$script is not executable.\n"; } print "Writer tests:\n"; -my @writeformats = ("html", "latex", "texinfo", "rst", "rtf", "markdown", "man", "native"); # docbook, context, and s5 handled separately +my @writeformats = ("html", "latex", "texinfo", "rst", "rtf", "markdown", "mediawiki", "man", "native"); # docbook, context, and s5 handled separately my $source = "testsuite.native"; sub test_results diff --git a/tests/tables.mediawiki b/tests/tables.mediawiki new file mode 100644 index 000000000..abe1cf530 --- /dev/null +++ b/tests/tables.mediawiki @@ -0,0 +1,123 @@ +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. +
diff --git a/tests/writer.mediawiki b/tests/writer.mediawiki new file mode 100644 index 000000000..39def56d8 --- /dev/null +++ b/tests/writer.mediawiki @@ -0,0 +1,605 @@ +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 [http://{{SERVERNAME}}/url 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: + +# item one +# 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: + +# First +# Second +# Third +and: + +# One +# Two +# Three +Loose using tabs: + +# First +# Second +# Third +and using spaces: + +# One +# Two +# Three +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.

+ +=== Nested === + +* Tab +** Tab +*** Tab +Here’s another: + +# First +# Second: +#* Fee +#* Fie +#* Foe +# Third +Same thing but with paragraphs: + +# First +# Second: +#* Fee +#* Fie +#* Foe +# 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
  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
      +
    +
+ +Nesting: + +
    +
  1. Upper Alpha +
      +
    1. Upper Roman. +
        +
      1. Decimal start with 6 +
          +
        1. Lower alpha with paren
        +
      +
    +
+ +Autonumbering: + +# Autonumber. +# More. +## 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

+ +== 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: + +
<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: + +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ + +----- + +== Inline Markup == + +This is ''emphasized'', and so ''is this''. + +This is '''strong''', and so '''is this'''. + +An ''[http://{{SERVERNAME}}/url 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 a''hello'' 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 “[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 +* \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 [http://{{SERVERNAME}}/url/ URL]. + +[http://{{SERVERNAME}}/url/ URL and title]. + +[http://{{SERVERNAME}}/url/ URL and title]. + +[http://{{SERVERNAME}}/url/ URL and title]. + +[http://{{SERVERNAME}}/url/ URL and title] + +[http://{{SERVERNAME}}/url/ URL and title] + +[http://{{SERVERNAME}}/url/with_underscore with_underscore] + +[mailto:nobody@nowhere.net Email link] + +[http://{{SERVERNAME}}/ Empty]. + +=== Reference === + +Foo [http://{{SERVERNAME}}/url/ bar]. + +Foo [http://{{SERVERNAME}}/url/ bar]. + +Foo [http://{{SERVERNAME}}/url/ bar]. + +With [http://{{SERVERNAME}}/url/ embedded [brackets]]. + +[http://{{SERVERNAME}}/url/ b] by itself should be a link. + +Indented [http://{{SERVERNAME}}/url once]. + +Indented [http://{{SERVERNAME}}/url twice]. + +Indented [http://{{SERVERNAME}}/url thrice]. + +This should [not][] be a link. + +
[not]: /url
+Foo [http://{{SERVERNAME}}/url/ bar]. + +Foo [http://{{SERVERNAME}}/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 [http://{{SERVERNAME}}/script?foo=1&bar=2 inline link]. + +Here’s an [http://{{SERVERNAME}}/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: [mailto:nobody@nowhere.net nobody@nowhere.net] + +
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): + +[[Image:lalune.jpg|Voyage dans la Lune]] + +Here is a movie [[Image: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). + +
  { <code> }
+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. + +
+# And in list items.In list. +This paragraph should not be part of the note, as it is not indented. + +== Notes == + -- cgit v1.2.3