From e23e1f3c22c865ba003c3bd32c5c05bef516c9e8 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Wed, 27 Dec 2017 09:15:45 -0800 Subject: Added tests for custom writer. --- test/Tests/Old.hs | 6 + test/tables.custom | 201 ++++++++++++++ test/writer.custom | 783 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 990 insertions(+) create mode 100644 test/tables.custom create mode 100644 test/writer.custom diff --git a/test/Tests/Old.hs b/test/Tests/Old.hs index bbd51ee98..b82251a56 100644 --- a/test/Tests/Old.hs +++ b/test/Tests/Old.hs @@ -162,6 +162,12 @@ tests = [ testGroup "markdown" [ test "reader" ["-r", "creole", "-w", "native", "-s"] "creole-reader.txt" "creole-reader.native" ] + , testGroup "custom writer" + [ test "basic" ["-f", "native", "-t", "../data/sample.lua"] + "testsuite.native" "writer.custom" + , test "tables" ["-f", "native", "-t", "../data/sample.lua"] + "tables.native" "tables.custom" + ] ] -- makes sure file is fully closed after reading diff --git a/test/tables.custom b/test/tables.custom new file mode 100644 index 000000000..410b68d3f --- /dev/null +++ b/test/tables.custom @@ -0,0 +1,201 @@ +

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.
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. +
  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
+
+These should not be escaped:  \$ \\ \> \[ \{
+ +
+ +

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
+ +

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 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

+ +

said the spider.

+ +

, , and are letters.

+ +

and are names of trees. +So is

+ +

Were you alive in the +70’s?

+ +

Here is some quoted and a .

+ +

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

+ +

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

+ +

Ellipses…and…and….

+ +
+ +

LaTeX

+ + + +

These shouldn’t be math:

+ + + +

Here’s a LaTeX table:

+ + + +
+ +

Special Characters

+ +

Here is some unicode:

+ + + +

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

+ +

Email link

+ +

Empty.

+ +

Reference

+ +

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: nobody@nowhere.net

+ +
+

Blockquoted: http://example.com/

+
+ +

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

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

Images

+ +

From by Georges Melies (1902):

+ +
+ +

lalune

+
+ +

Here is a 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. +
+ -- cgit v1.2.3