From fc1c17b174eabf10f11bf45c4762569cce505956 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Wed, 16 Nov 2011 14:52:10 -0800 Subject: Added an asciidoc writer (partial). Still TODO: - documentation in README - add default.asciidoc to templates/ - lists - tables - proper escaping - footnotes with blank lines - print separately at end? currently they are just ignored. - fix header (date gives weird result on pandoc README) --- tests/tables.asciidoc | 1 + tests/writer.asciidoc | 754 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 755 insertions(+) create mode 100644 tests/tables.asciidoc create mode 100644 tests/writer.asciidoc (limited to 'tests') diff --git a/tests/tables.asciidoc b/tests/tables.asciidoc new file mode 100644 index 000000000..48cdce852 --- /dev/null +++ b/tests/tables.asciidoc @@ -0,0 +1 @@ +placeholder diff --git a/tests/writer.asciidoc b/tests/writer.asciidoc new file mode 100644 index 000000000..60a9518a7 --- /dev/null +++ b/tests/writer.asciidoc @@ -0,0 +1,754 @@ +Pandoc Test Suite +================= +John MacFarlane; Anonymous +July 17, 2006 + +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 link:/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: + +[options="compact"] +* asterisk 1 +* asterisk 2 +* asterisk 3 + +Asterisks loose: + +* asterisk 1 + +* asterisk 2 + +* asterisk 3 + +Pluses tight: + +[options="compact"] +* Plus 1 +* Plus 2 +* Plus 3 + +Pluses loose: + +* Plus 1 + +* Plus 2 + +* Plus 3 + +Minuses tight: + +[options="compact"] +* Minus 1 +* Minus 2 +* Minus 3 + +Minuses loose: + +* Minus 1 + +* Minus 2 + +* Minus 3 + +Ordered +~~~~~~~ + +Tight: + +[options="compact"] +1. First +2. Second +3. Third + +and: + +[options="compact"] +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 +~~~~~~ + +* Tab +** Tab +*** Tab + +Here’s another: + +1. First +2. Second: + [options="compact"] + * Fee + * Fie + * Foe + +3. Third + +Same thing but with paragraphs: + +1. First + +2. Second: + + [options="compact"] + * Fee + * Fie + * Foe + +3. 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 +~~~~~~~~~~~~~~~~~~ + +[start=2] +2. begins with 2 +3. and now 3 ++ +with a continuation ++ +[start=4] +4. sublist with roman numerals, starting with 4 +5. more items + A. a subsublist + B. a subsublist + +Nesting: + +A. Upper Alpha + 1. Upper Roman. + + + [start=6] + 6. Decimal start with 6 + + + [start=3] + c. Lower alpha with paren + +Autonumbering: + +1. Autonumber. +2. 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 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. 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 *[emphasized link](/url)*. + +***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 “[quoted +link](http://example.com/?foo=1&bar=2)”. + +Some dashes: one—two — three—four — five. + +Dashes between numbers: 5–7, 255–66, 1987–1999. + +Ellipses…and…and…. + +''''' + +LaTeX +----- + +- \cite[22-23]{smith.1899} +- $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: + +\begin{tabular}{|l|l|}\hline +Animal & Number \\ \hline +Dog & 2 \\ +Cat & 1 \\ \hline +\end{tabular} + +''''' + +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 and title](/url/ "title"). + +[URL and title](/url/ "title preceded by two spaces"). + +[URL and title](/url/ "title preceded by a tab"). + +[URL and title](/url/ "title with "quotes" in it") + +[URL and title](/url/ "title with single quotes") + +[with\_underscore](/url/with_underscore) + +[Email link](mailto:nobody@nowhere.net) + +[Empty](). + +Reference +~~~~~~~~~ + +Foo [bar](/url/). + +Foo [bar](/url/). + +Foo [bar](/url/). + +With [embedded [brackets]](/url/). + +[b](/url/) by itself should be a link. + +Indented [once](/url). + +Indented [twice](/url). + +Indented [thrice](/url). + +This should [not][] be a link. + + [not]: /url + +Foo [bar](/url/ "Title with "quotes" inside"). + +Foo [biz](/url/ "Title with "quote" inside"). + +With ampersands +~~~~~~~~~~~~~~~ + +Here’s a [link with an ampersand in the URL](http://example.com/?foo=1&bar=2). + +Here’s a link with an amersand in the link text: +[AT&T](http://att.com/ "AT&T"). + +Here’s an [inline link](/script?foo=1&bar=2). + +Here’s an [inline link in pointy braces](/script?foo=1&bar=2). + +Autolinks +~~~~~~~~~ + +With an ampersand: + +- In a list? +- +- It should. + +An e-mail address: + +> Blockquoted: + +Auto-links should not occur here: `` + + or here: + +''''' + +Images +------ + +From “Voyage dans la Lune” by Georges Melies (1902): + +![lalune](lalune.jpg "Voyage dans la Lune") + +Here is a movie ![movie](movie.jpg) 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] + +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]: 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. + +[^3]: This is *easier* to type. Inline notes may contain + [links](http://google.com) and `]` verbatim characters, as well as + [bracketed text]. + +[^4]: In quote. + +[^5]: In list. -- cgit v1.2.3 From f6a0e75389d748818e703566b749af293195b4ee Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Fri, 18 Nov 2011 09:50:32 -0800 Subject: Supported tables in asciidoc, added table tests. --- src/Text/Pandoc/Writers/Asciidoc.hs | 92 +++++++++++++++++++++---------------- tests/tables.asciidoc | 72 ++++++++++++++++++++++++++++- 2 files changed, 124 insertions(+), 40 deletions(-) (limited to 'tests') diff --git a/src/Text/Pandoc/Writers/Asciidoc.hs b/src/Text/Pandoc/Writers/Asciidoc.hs index aaa6964f1..28c99b12a 100644 --- a/src/Text/Pandoc/Writers/Asciidoc.hs +++ b/src/Text/Pandoc/Writers/Asciidoc.hs @@ -36,7 +36,7 @@ import Text.Pandoc.Templates (renderTemplate) import Text.Pandoc.Shared import Text.Pandoc.Parsing hiding (blankline) import Text.ParserCombinators.Parsec ( runParser, GenParser ) -import Data.List ( isPrefixOf, intersperse, intercalate, transpose ) +import Data.List ( isPrefixOf, intercalate ) import Text.Pandoc.Pretty import Control.Monad.State @@ -142,44 +142,58 @@ blockToAsciidoc opts (Table caption aligns widths headers rows) = do caption' <- inlineListToAsciidoc opts caption let caption'' = if null caption then empty - else blankline <> ": " <> caption' <> blankline - headers' <- mapM (blockListToAsciidoc opts) headers - let alignHeader alignment = case alignment of - AlignLeft -> lblock - AlignCenter -> cblock - AlignRight -> rblock - AlignDefault -> lblock - rawRows <- mapM (mapM (blockListToAsciidoc opts)) rows - let isSimple = all (==0) widths - let numChars = maximum . map offset - let widthsInChars = - if isSimple - then map ((+2) . numChars) $ transpose (headers' : rawRows) - else map (floor . (fromIntegral (writerColumns opts) *)) widths - let makeRow = hcat . intersperse (lblock 1 (text " ")) . - (zipWith3 alignHeader aligns widthsInChars) - let rows' = map makeRow rawRows - let head' = makeRow headers' - let maxRowHeight = maximum $ map height (head':rows') - let underline = cat $ intersperse (text " ") $ - map (\width -> text (replicate width '-')) widthsInChars - let border = if maxRowHeight > 1 - then text (replicate (sum widthsInChars + - length widthsInChars - 1) '-') - else if all null headers - then underline - else empty - let head'' = if all null headers - then empty - else border <> cr <> head' - let body = if maxRowHeight > 1 - then vsep rows' - else vcat rows' - let bottom = if all null headers - then underline - else border - return $ nest 2 $ head'' $$ underline $$ body $$ - bottom $$ blankline $$ caption'' $$ blankline + else "." <> caption' <> cr + let isSimple = all (== 0) widths + let relativePercentWidths = if isSimple + then widths + else map (/ (sum widths)) widths + let widths'' :: [Integer] + widths'' = map (floor . (* 100)) relativePercentWidths + -- ensure that the widths sum to 100 + let widths' = case widths'' of + _ | isSimple -> widths'' + (w:ws) | sum (w:ws) < 100 + -> (100 - sum ws) : ws + ws -> ws + let totalwidth :: Integer + totalwidth = floor $ sum widths * 100 + let colspec al wi = (case al of + AlignLeft -> "<" + AlignCenter -> "^" + AlignRight -> ">" + AlignDefault -> "") ++ + if wi == 0 then "" else (show wi ++ "%") + let headerspec = if all null headers + then empty + else text "options=\"header\"," + let widthspec = if totalwidth == 0 + then empty + else text "width=" + <> doubleQuotes (text $ show totalwidth ++ "%") + <> text "," + let tablespec = text "[" + <> widthspec + <> text "cols=" + <> doubleQuotes (text $ intercalate "," + $ zipWith colspec aligns widths') + <> text "," + <> headerspec <> text "]" + let makeCell [Plain x] = do d <- blockListToAsciidoc opts [Plain x] + return $ text "|" <> chomp d + makeCell [Para x] = makeCell [Plain x] + makeCell _ = return $ text "|" <> "[multiblock cell omitted]" + let makeRow cells = hsep `fmap` mapM makeCell cells + rows' <- mapM makeRow rows + head' <- makeRow headers + let head'' = if all null headers then empty else head' + let colwidth = if writerWrapText opts + then writerColumns opts + else 100000 + let maxwidth = maximum $ map offset (head':rows') + let body = if maxwidth > colwidth then vsep rows' else vcat rows' + let border = text $ "|" ++ replicate ((min maxwidth colwidth) - 1) '=' + return $ + caption'' $$ tablespec $$ border $$ head'' $$ body $$ border $$ blankline blockToAsciidoc opts (BulletList items) = do contents <- mapM (bulletListItemToAsciidoc opts) items return $ cat contents <> blankline diff --git a/tests/tables.asciidoc b/tests/tables.asciidoc index 48cdce852..842a9b8c4 100644 --- a/tests/tables.asciidoc +++ b/tests/tables.asciidoc @@ -1 +1,71 @@ -placeholder +Simple table with caption: + +.Demonstration of simple table syntax. +[cols=">,<,^,",options="header",] +|============================ +|Right |Left |Center |Default +|12 |12 |12 |12 +|123 |123 |123 |123 +|1 |1 |1 |1 +|============================ + +Simple table without caption: + +[cols=">,<,^,",options="header",] +|============================ +|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. +[cols=">,<,^,",options="header",] +|============================ +|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. +[width="78%",cols="^21%,<17%,>20%,<42%",options="header",] +|======================================================================= +|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: + +[width="78%",cols="^21%,<17%,>20%,<42%",options="header",] +|======================================================================= +|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: + +[cols=">,<,^,>",] +|======================================================================= +|12 |12 |12 |12 + +|123 |123 |123 |123 + +|1 |1 |1 |1 +|======================================================================= + +Multiline table without column headers: + +[width="78%",cols="^21%,<17%,>20%,42%",] +|======================================================================= +|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. +|======================================================================= + -- cgit v1.2.3 From 4c122be58a66283dd31c2a357099637c945055a6 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Fri, 18 Nov 2011 19:46:12 -0800 Subject: Updated asciidoc test. The test output still contains some mistakes. --- tests/writer.asciidoc | 555 +++++++++++++++++++++----------------------------- 1 file changed, 229 insertions(+), 326 deletions(-) (limited to 'tests') diff --git a/tests/writer.asciidoc b/tests/writer.asciidoc index 60a9518a7..514c72976 100644 --- a/tests/writer.asciidoc +++ b/tests/writer.asciidoc @@ -1,10 +1,11 @@ Pandoc Test Suite ================= -John MacFarlane; Anonymous -July 17, 2006 +:author: John MacFarlane +:author: Anonymous +:date: July 17, 2006 -This is a set of tests for pandoc. Most of them are adapted from John Gruber's -markdown test suite. +This is a set of tests for pandoc. Most of them are adapted from John +Gruber’s markdown test suite. ''''' @@ -14,7 +15,7 @@ Headers Level 2 with an link:/url[embedded link] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Level 3 with *emphasis* +Level 3 with _emphasis_ ^^^^^^^^^^^^^^^^^^^^^^^ Level 4 @@ -34,7 +35,7 @@ Level 3 with no blank line Level 2 -------- +~~~~~~~ with no blank line @@ -45,9 +46,9 @@ 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. +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. @@ -65,28 +66,34 @@ __________________________________________ This is a block quote. It is pretty short. __________________________________________ ------------------------- +______________________ +-- Code in a block quote: - sub status { - print "working"; - } ------------------------- +-------------------- +sub status { + print "working"; +} +-------------------- A list: -. item one -. item two +1. item one +2. item two Nested block quotes: ______ nested ______ -nested + ______ +nested ______ +-- +______________________ + This should not be a block quote: 2 \> 1. And a following paragraph. @@ -98,7 +105,7 @@ Code Blocks Code: ----- +-------------------------------------- ---- (should be four hyphens) sub status { @@ -106,15 +113,15 @@ sub status { } this code block is indented by one tab ----- +-------------------------------------- And: ----- +-------------------------------------------- this code block is indented by two tabs These should not be escaped: \$ \\ \> \[ \{ ----- +-------------------------------------------- ''''' @@ -126,7 +133,6 @@ Unordered Asterisks tight: -[options="compact"] * asterisk 1 * asterisk 2 * asterisk 3 @@ -134,14 +140,11 @@ Asterisks tight: Asterisks loose: * asterisk 1 - * asterisk 2 - * asterisk 3 Pluses tight: -[options="compact"] * Plus 1 * Plus 2 * Plus 3 @@ -149,14 +152,11 @@ Pluses tight: Pluses loose: * Plus 1 - * Plus 2 - * Plus 3 Minuses tight: -[options="compact"] * Minus 1 * Minus 2 * Minus 3 @@ -164,9 +164,7 @@ Minuses tight: Minuses loose: * Minus 1 - * Minus 2 - * Minus 3 Ordered @@ -174,43 +172,35 @@ Ordered Tight: -[options="compact"] -1. First -2. Second -3. Third +1. First +2. Second +3. Third and: -[options="compact"] -1. One -2. Two -3. Three +1. One +2. Two +3. Three Loose using tabs: -1. First - -2. Second - -3. Third +1. First +2. Second +3. Third and using spaces: -1. One - -2. Two - -3. Three +1. One +2. Two +3. Three Multiple paragraphs: -1. Item 1, graf one. +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. +2. Item 2. +3. Item 3. Nested ~~~~~~ @@ -221,70 +211,54 @@ Nested Here’s another: -1. First -2. Second: - [options="compact"] - * Fee - * Fie - * Foe - -3. Third +1. First +2. Second: +* Fee +* Fie +* Foe +3. Third Same thing but with paragraphs: -1. First - -2. Second: - - [options="compact"] - * Fee - * Fie - * Foe - +1. First +2. Second: +* Fee +* Fie +* Foe 3. 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 ~~~~~~~~~~~~~~~~~~ -[start=2] -2. begins with 2 -3. and now 3 +2. begins with 2 +3. and now 3 + with a continuation -+ -[start=4] -4. sublist with roman numerals, starting with 4 -5. more items - A. a subsublist - B. a subsublist +iv. sublist with roman numerals, starting with 4 +v. more items +A. a subsublist +B. a subsublist Nesting: -A. Upper Alpha - 1. Upper Roman. - + - [start=6] - 6. Decimal start with 6 - + - [start=3] - c. Lower alpha with paren +A. Upper Alpha +I. Upper Roman. +6. Decimal start with 6 +c. Lower alpha with paren Autonumbering: -1. Autonumber. -2. More. - 1. Nested. +1. Autonumber. +2. More. +1. Nested. Should not be a list item: @@ -299,217 +273,160 @@ Definition Lists Tight using spaces: -apple - ~ red fruit -orange - ~ orange fruit -banana - ~ yellow fruit +apple:: + red fruit +orange:: + orange fruit +banana:: + yellow fruit Tight using tabs: -apple - ~ red fruit -orange - ~ orange fruit -banana - ~ yellow fruit +apple:: + red fruit +orange:: + orange fruit +banana:: + yellow fruit Loose: -apple - ~ red fruit - -orange - ~ orange fruit - -banana - ~ yellow fruit +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 +_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 +apple:: + red fruit + + + computer +orange:: + orange fruit + + + bank Multiple definitions, loose: -apple - ~ red fruit - - ~ computer - -orange - ~ orange fruit - - ~ bank +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. sublist +apple:: + red fruit + + + computer +orange:: + orange fruit + + + 1. sublist + 2. 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** -
- - - +This is _emphasized_ +And this is *strong* Here’s a simple block: -
- foo -
- This should be a code block, though: -
- foo -
+------- +
+ foo +
+------- As should this: -
foo
+-------------- +
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: - -
- -
- +------
+------ -
- -
- -
- -
- -
- -
+Hr’s: ''''' Inline Markup ------------- -This is *emphasized*, and so *is this*. +This is _emphasized_, and so _is this_. -This is **strong**, and so **is this**. +This is *strong*, and so *is this*. -An *[emphasized link](/url)*. +An _link:/url[emphasized link]_. -***This is strong and em.*** +*_This is strong and em._* -So is ***this*** word. +So is *_this_* word. -***This is strong and em.*** +*_This is strong and em._* -So is ***this*** word. +So is *_this_* word. This is code: `>`, `$`, `\`, `\$`, ``. -~~This is *strikeout*.~~ +[line-through]*This is _strikeout_.* -Superscripts: a^bc^d a^*hello*^ a^hello there^. +Superscripts: a^bc^d a^_hello_^ a^hello there^. Subscripts: H~2~O, H~23~O, H~many of them~O. @@ -521,16 +438,16 @@ spaces: a\^b c\^d, a\~b c\~d. Smart quotes, ellipses, dashes ------------------------------ -“Hello,” said the spider. “‘Shelob’ is my name.” +``Hello,'' said the spider. ```Shelob' is my name.'' -‘A’, ‘B’, and ‘C’ are letters. +`A', `B', and `C' are letters. -‘Oak,’ ‘elm,’ and ‘beech’ are names of trees. So is ‘pine.’ +`Oak,' `elm,' and `beech' are names of trees. So is `pine.' -‘He said, “I want to go.”’ Were you alive in the 70’s? +`He said, ``I want to go.''' Were you alive in the 70’s? -Here is some quoted ‘`code`’ and a “[quoted -link](http://example.com/?foo=1&bar=2)”. +Here is some quoted ``code`' and a +``http://example.com/?foo=1&bar=2[quoted link]''. Some dashes: one—two — three—four — five. @@ -543,32 +460,27 @@ Ellipses…and…and…. LaTeX ----- -- \cite[22-23]{smith.1899} -- $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$. +* +* latexmath:[$2+2=4$] +* latexmath:[$x \in y$] +* latexmath:[$\alpha \wedge \omega$] +* latexmath:[$223$] +* latexmath:[$p$]-Tree +* Here’s some display math: +latexmath:[$$\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: +latexmath:[$\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$. +* 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: -\begin{tabular}{|l|l|}\hline -Animal & Number \\ \hline -Dog & 2 \\ -Cat & 1 \\ \hline -\end{tabular} - ''''' Special Characters @@ -576,11 +488,11 @@ Special Characters Here is some unicode: -- I hat: Î -- o umlaut: ö -- section: § -- set membership: ∈ -- copyright: © +* I hat: Î +* o umlaut: ö +* section: § +* set membership: ∈ +* copyright: © AT&T has an ampersand in their name. @@ -600,7 +512,7 @@ Asterisk: \* Underscore: \_ -Left brace: { +Left brace: \{ Right brace: } @@ -620,7 +532,7 @@ Period: . Bang: ! -Plus: + +Plus: \+ Minus: - @@ -632,123 +544,114 @@ Links Explicit ~~~~~~~~ -Just a [URL](/url/). +Just a link:/url/[URL]. -[URL and title](/url/ "title"). +link:/url/[URL and title]. -[URL and title](/url/ "title preceded by two spaces"). +link:/url/[URL and title]. -[URL and title](/url/ "title preceded by a tab"). +link:/url/[URL and title]. -[URL and title](/url/ "title with "quotes" in it") +link:/url/[URL and title] -[URL and title](/url/ "title with single quotes") +link:/url/[URL and title] -[with\_underscore](/url/with_underscore) +link:/url/with_underscore[with\_underscore] -[Email link](mailto:nobody@nowhere.net) +mailto:nobody@nowhere.net[Email link] -[Empty](). +link:[Empty]. Reference ~~~~~~~~~ -Foo [bar](/url/). +Foo link:/url/[bar]. -Foo [bar](/url/). +Foo link:/url/[bar]. -Foo [bar](/url/). +Foo link:/url/[bar]. -With [embedded [brackets]](/url/). +With link:/url/[embedded [brackets]]. -[b](/url/) by itself should be a link. +link:/url/[b] by itself should be a link. -Indented [once](/url). +Indented link:/url[once]. -Indented [twice](/url). +Indented link:/url[twice]. -Indented [thrice](/url). +Indented link:/url[thrice]. This should [not][] be a link. - [not]: /url +----------- +[not]: /url +----------- -Foo [bar](/url/ "Title with "quotes" inside"). +Foo link:/url/[bar]. -Foo [biz](/url/ "Title with "quote" inside"). +Foo link:/url/[biz]. With ampersands ~~~~~~~~~~~~~~~ -Here’s a [link with an ampersand in the URL](http://example.com/?foo=1&bar=2). +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: -[AT&T](http://att.com/ "AT&T"). +Here’s a link with an amersand in the link text: http://att.com/[AT&T]. -Here’s an [inline link](/script?foo=1&bar=2). +Here’s an link:/script?foo=1&bar=2[inline link]. -Here’s an [inline link in pointy braces](/script?foo=1&bar=2). +Here’s an link:/script?foo=1&bar=2[inline link in pointy braces]. Autolinks ~~~~~~~~~ -With an ampersand: +With an ampersand: http://example.com/?foo=1&bar=2 -- In a list? -- -- It should. +* In a list? +* http://example.com/ +* It should. -An e-mail address: +An e-mail address: nobody@nowhere.net -> Blockquoted: +________________________________ +Blockquoted: http://example.com/ +________________________________ Auto-links should not occur here: `` - or here: +------------------------------ +or here: +------------------------------ ''''' Images ------ -From “Voyage dans la Lune” by Georges Melies (1902): +From ``Voyage dans la Lune'' by Georges Melies (1902): -![lalune](lalune.jpg "Voyage dans la Lune") +image:lalune.jpg[lalune,title="Voyage dans la Lune"] -Here is a movie ![movie](movie.jpg) icon. +Here is a movie image:movie.jpg[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] +Here is a footnote reference,footnote:[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.[multiblock footnote omitted] This should +_not_ be a footnote reference, because it contains a space.[\^my note] +Here is an inline note.footnote:[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.[^4] +___________________________________________ +Notes can go in quotes.footnote:[In quote.] +___________________________________________ -1. And in list items.[^5] +1. And in list items.footnote:[In list.] 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]: 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. - -[^3]: This is *easier* to type. Inline notes may contain - [links](http://google.com) and `]` verbatim characters, as well as - [bracketed text]. - -[^4]: In quote. - -[^5]: In list. -- cgit v1.2.3 From 679e94e53d36efa24507cae960533a6a0f9053e8 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Fri, 18 Nov 2011 19:50:45 -0800 Subject: Updated tests for correct col width. --- tests/tables.asciidoc | 8 ++++---- tests/writer.asciidoc | 29 ++++++++++++++--------------- 2 files changed, 18 insertions(+), 19 deletions(-) (limited to 'tests') diff --git a/tests/tables.asciidoc b/tests/tables.asciidoc index 842a9b8c4..38daca192 100644 --- a/tests/tables.asciidoc +++ b/tests/tables.asciidoc @@ -52,20 +52,20 @@ Multiline table without caption: Table without column headers: [cols=">,<,^,>",] -|======================================================================= +|============================================================================= |12 |12 |12 |12 |123 |123 |123 |123 |1 |1 |1 |1 -|======================================================================= +|============================================================================= Multiline table without column headers: [width="78%",cols="^21%,<17%,>20%,42%",] -|======================================================================= +|============================================================================= |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.asciidoc b/tests/writer.asciidoc index 514c72976..af27e02ce 100644 --- a/tests/writer.asciidoc +++ b/tests/writer.asciidoc @@ -4,8 +4,8 @@ Pandoc Test Suite :author: Anonymous :date: July 17, 2006 -This is a set of tests for pandoc. Most of them are adapted from John -Gruber’s markdown test suite. +This is a set of tests for pandoc. Most of them are adapted from John Gruber’s +markdown test suite. ''''' @@ -46,9 +46,9 @@ 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. +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. @@ -446,8 +446,8 @@ Smart quotes, ellipses, dashes `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]''. +Here is some quoted ``code`' and a ``http://example.com/?foo=1&bar=2[quoted +link]''. Some dashes: one—two — three—four — five. @@ -594,8 +594,7 @@ Foo link:/url/[biz]. With ampersands ~~~~~~~~~~~~~~~ -Here’s a http://example.com/?foo=1&bar=2[link with an ampersand in the -URL]. +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]. @@ -641,12 +640,12 @@ Footnotes --------- Here is a footnote reference,footnote:[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.[multiblock footnote omitted] This should -_not_ be a footnote reference, because it contains a space.[\^my note] -Here is an inline note.footnote:[This is _easier_ to type. Inline notes -may contain http://google.com[links] and `]` verbatim characters, as -well as [bracketed text].] +anywhere after the footnote reference. It need not be placed at the end of the +document.] and another.[multiblock footnote omitted] This should _not_ be a +footnote reference, because it contains a space.[\^my note] Here is an inline +note.footnote:[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.footnote:[In quote.] -- cgit v1.2.3