git.iko.soy/typeable/pandoc
on master help sign in
Made --smart work with HTML reader.

It did not work before, because - and quotes were gobbled up by the str parser.

commit4bfe140ed1cc7a07d762e4920e7365427d0b9618 authorJohn MacFarlane <jgm@berkeley.edu> dateWed 22 Dec 2010, 17:05 (16 years ago) parent63bf227
2 files changed+84−75
src/Text/Pandoc/Readers/HTML.hs+13−4 tests/html-reader.native+71−71
src/Text/Pandoc/Readers/HTML.hs+13−4
@@ -587,8 +587,7 @@ plain = many1 inline >>= return . Plain . normalizeSpaces
587587--
588588
589589inline :: GenParser Char ParserState Inline
590−inline = choice [ smartPunctuation inline
591− , str
590+inline = choice [ str
592591 , strong
593592 , emph
594593 , superscript
@@ -600,9 +599,10 @@ inline = choice [ smartPunctuation inline
600599 , whitespace
601600 , link
602601 , image
602+ , smartPunctuation inline
603603 , charRef
604604 , rawHtmlInline
605− , char '&' >> return (Str "&") -- common HTML error
605+ , symbol
606606 ] <?> "inline"
607607
608608code :: GenParser Char ParserState Inline
@@ -620,6 +620,12 @@ rawHtmlInline = do
620620 state <- getState
621621 if stateParseRaw state then return (HtmlInline result) else return (Str "")
622622
623+symbol :: GenParser Char ParserState Inline
624+symbol = do
625+ notFollowedBy (char '<')
626+ c <- oneOf specialChars
627+ return $ Str [c]
628+
623629betweenTags :: [Char] -> GenParser Char ParserState [Inline]
624630betweenTags tag = try $ htmlOpenTag tag >> inlinesTilEnd tag >>=
625631 return . normalizeSpaces
@@ -657,7 +663,10 @@ linebreak :: GenParser Char ParserState Inline
657663linebreak = htmlSelfClosingTag "br" >> optional newline >> return LineBreak
658664
659665str :: GenParser Char st Inline
660−str = many1 (noneOf "< \t\n&") >>= return . Str
666+str = many1 (noneOf $ specialChars ++ " \t\n") >>= return . Str
667+
668+specialChars :: [Char]
669+specialChars = "<&-\"'.\8216\8217\8220\8221"
661670
662671--
663672-- links and images
tests/html-reader.native+71−71
@@ -1,5 +1,5 @@
11Pandoc (Meta {docTitle = [Str "Pandoc",Space,Str "Test",Space,Str "Suite"], docAuthors = [], docDate = []})
2−[ Para [Str "This",Space,Str "is",Space,Str "a",Space,Str "set",Space,Str "of",Space,Str "tests",Space,Str "for",Space,Str "pandoc.",Space,Str "Most",Space,Str "of",Space,Str "them",Space,Str "are",Space,Str "adapted",Space,Str "from",Space,Str "John",Space,Str "Gruber's",Space,Str "markdown",Space,Str "test",Space,Str "suite."]
2+[ Para [Str "This",Space,Str "is",Space,Str "a",Space,Str "set",Space,Str "of",Space,Str "tests",Space,Str "for",Space,Str "pandoc",Str ".",Space,Str "Most",Space,Str "of",Space,Str "them",Space,Str "are",Space,Str "adapted",Space,Str "from",Space,Str "John",Space,Str "Gruber",Str "'",Str "s",Space,Str "markdown",Space,Str "test",Space,Str "suite",Str "."]
33, HorizontalRule
44, Header 1 [Str "Headers"]
55, Header 2 [Str "Level",Space,Str "2",Space,Str "with",Space,Str "an",Space,Link [Str "embedded",Space,Str "link"] ("/url","")]
@@ -14,15 +14,15 @@ Pandoc (Meta {docTitle = [Str "Pandoc",Space,Str "Test",Space,Str "Suite"], docA
1414, Para [Str "with",Space,Str "no",Space,Str "blank",Space,Str "line"]
1515, HorizontalRule
1616, Header 1 [Str "Paragraphs"]
17−, Para [Str "Here's",Space,Str "a",Space,Str "regular",Space,Str "paragraph."]
18−, Para [Str "In",Space,Str "Markdown",Space,Str "1.0.0",Space,Str "and",Space,Str "earlier.",Space,Str "Version",Space,Str "8.",Space,Str "This",Space,Str "line",Space,Str "turns",Space,Str "into",Space,Str "a",Space,Str "list",Space,Str "item.",Space,Str "Because",Space,Str "a",Space,Str "hard-wrapped",Space,Str "line",Space,Str "in",Space,Str "the",Space,Str "middle",Space,Str "of",Space,Str "a",Space,Str "paragraph",Space,Str "looked",Space,Str "like",Space,Str "a",Space,Str "list",Space,Str "item."]
19−, Para [Str "Here's",Space,Str "one",Space,Str "with",Space,Str "a",Space,Str "bullet.",Space,Str "*",Space,Str "criminey."]
20−, Para [Str "There",Space,Str "should",Space,Str "be",Space,Str "a",Space,Str "hard",Space,Str "line",Space,Str "break",LineBreak,Space,Str "here."]
17+, Para [Str "Here",Str "'",Str "s",Space,Str "a",Space,Str "regular",Space,Str "paragraph",Str "."]
18+, Para [Str "In",Space,Str "Markdown",Space,Str "1",Str ".",Str "0",Str ".",Str "0",Space,Str "and",Space,Str "earlier",Str ".",Space,Str "Version",Space,Str "8",Str ".",Space,Str "This",Space,Str "line",Space,Str "turns",Space,Str "into",Space,Str "a",Space,Str "list",Space,Str "item",Str ".",Space,Str "Because",Space,Str "a",Space,Str "hard",Str "-",Str "wrapped",Space,Str "line",Space,Str "in",Space,Str "the",Space,Str "middle",Space,Str "of",Space,Str "a",Space,Str "paragraph",Space,Str "looked",Space,Str "like",Space,Str "a",Space,Str "list",Space,Str "item",Str "."]
19+, Para [Str "Here",Str "'",Str "s",Space,Str "one",Space,Str "with",Space,Str "a",Space,Str "bullet",Str ".",Space,Str "*",Space,Str "criminey",Str "."]
20+, Para [Str "There",Space,Str "should",Space,Str "be",Space,Str "a",Space,Str "hard",Space,Str "line",Space,Str "break",LineBreak,Space,Str "here",Str "."]
2121, HorizontalRule
2222, Header 1 [Str "Block",Space,Str "Quotes"]
23−, Para [Str "E-mail",Space,Str "style:"]
23+, Para [Str "E",Str "-",Str "mail",Space,Str "style:"]
2424, BlockQuote
25− [ Para [Str "This",Space,Str "is",Space,Str "a",Space,Str "block",Space,Str "quote.",Space,Str "It",Space,Str "is",Space,Str "pretty",Space,Str "short."] ]
25+ [ Para [Str "This",Space,Str "is",Space,Str "a",Space,Str "block",Space,Str "quote",Str ".",Space,Str "It",Space,Str "is",Space,Str "pretty",Space,Str "short",Str "."] ]
2626
2727, BlockQuote
2828 [ Para [Str "Code",Space,Str "in",Space,Str "a",Space,Str "block",Space,Str "quote:"]
@@ -38,8 +38,8 @@ Pandoc (Meta {docTitle = [Str "Pandoc",Space,Str "Test",Space,Str "Suite"], docA
3838 , BlockQuote
3939 [ Para [Str "nested"] ]
4040 ]
41−, Para [Str "This",Space,Str "should",Space,Str "not",Space,Str "be",Space,Str "a",Space,Str "block",Space,Str "quote:",Space,Str "2",Space,Str ">",Space,Str "1."]
42−, Para [Str "Box-style:"]
41+, Para [Str "This",Space,Str "should",Space,Str "not",Space,Str "be",Space,Str "a",Space,Str "block",Space,Str "quote:",Space,Str "2",Space,Str ">",Space,Str "1",Str "."]
42+, Para [Str "Box",Str "-",Str "style:"]
4343, BlockQuote
4444 [ Para [Str "Example:"]
4545 , CodeBlock ("",[],[]) "sub status {\n print \"working\";\n}" ]
@@ -47,13 +47,13 @@ Pandoc (Meta {docTitle = [Str "Pandoc",Space,Str "Test",Space,Str "Suite"], docA
4747 [ OrderedList (1,DefaultStyle,DefaultDelim)
4848 [ [ Plain [Str "do",Space,Str "laundry"] ]
4949 , [ Plain [Str "take",Space,Str "out",Space,Str "the",Space,Str "trash"] ] ] ]
50−, Para [Str "Here's",Space,Str "a",Space,Str "nested",Space,Str "one:"]
50+, Para [Str "Here",Str "'",Str "s",Space,Str "a",Space,Str "nested",Space,Str "one:"]
5151, BlockQuote
5252 [ Para [Str "Joe",Space,Str "said:"]
5353 , BlockQuote
54− [ Para [Str "Don't",Space,Str "quote",Space,Str "me."] ]
54+ [ Para [Str "Don",Str "'",Str "t",Space,Str "quote",Space,Str "me",Str "."] ]
5555 ]
56−, Para [Str "And",Space,Str "a",Space,Str "following",Space,Str "paragraph."]
56+, Para [Str "And",Space,Str "a",Space,Str "following",Space,Str "paragraph",Str "."]
5757, HorizontalRule
5858, Header 1 [Str "Code",Space,Str "Blocks"]
5959, Para [Str "Code:"]
@@ -116,9 +116,9 @@ Pandoc (Meta {docTitle = [Str "Pandoc",Space,Str "Test",Space,Str "Suite"], docA
116116 , [ Para [Str "Three"] ] ]
117117, Para [Str "Multiple",Space,Str "paragraphs:"]
118118, OrderedList (1,DefaultStyle,DefaultDelim)
119− [ [ Para [Str "Item",Space,Str "1,",Space,Str "graf",Space,Str "one."]
120− , Para [Str "Item",Space,Str "1.",Space,Str "graf",Space,Str "two.",Space,Str "The",Space,Str "quick",Space,Str "brown",Space,Str "fox",Space,Str "jumped",Space,Str "over",Space,Str "the",Space,Str "lazy",Space,Str "dog's",Space,Str "back."] ], [ Para [Str "Item",Space,Str "2."] ]
121− , [ Para [Str "Item",Space,Str "3."] ] ]
119+ [ [ Para [Str "Item",Space,Str "1,",Space,Str "graf",Space,Str "one",Str "."]
120+ , Para [Str "Item",Space,Str "1",Str ".",Space,Str "graf",Space,Str "two",Str ".",Space,Str "The",Space,Str "quick",Space,Str "brown",Space,Str "fox",Space,Str "jumped",Space,Str "over",Space,Str "the",Space,Str "lazy",Space,Str "dog",Str "'",Str "s",Space,Str "back",Str "."] ], [ Para [Str "Item",Space,Str "2",Str "."] ]
121+ , [ Para [Str "Item",Space,Str "3",Str "."] ] ]
122122, Header 2 [Str "Nested"]
123123, BulletList
124124 [ [ Plain [Str "Tab"]
@@ -127,7 +127,7 @@ Pandoc (Meta {docTitle = [Str "Pandoc",Space,Str "Test",Space,Str "Suite"], docA
127127 , BulletList
128128 [ [ Plain [Str "Tab"] ]
129129 ] ] ] ] ]
130−, Para [Str "Here's",Space,Str "another:"]
130+, Para [Str "Here",Str "'",Str "s",Space,Str "another:"]
131131, OrderedList (1,DefaultStyle,DefaultDelim)
132132 [ [ Plain [Str "First"] ]
133133 , [ Plain [Str "Second:"]
@@ -165,7 +165,7 @@ Pandoc (Meta {docTitle = [Str "Pandoc",Space,Str "Test",Space,Str "Suite"], docA
165165, OrderedList (1,UpperAlpha,DefaultDelim)
166166 [ [ Plain [Str "Upper",Space,Str "Alpha"]
167167 , OrderedList (1,UpperRoman,DefaultDelim)
168− [ [ Plain [Str "Upper",Space,Str "Roman."]
168+ [ [ Plain [Str "Upper",Space,Str "Roman",Str "."]
169169 , OrderedList (6,Decimal,DefaultDelim)
170170 [ [ Plain [Str "Decimal",Space,Str "start",Space,Str "with",Space,Str "6"]
171171 , OrderedList (3,LowerAlpha,DefaultDelim)
@@ -173,20 +173,20 @@ Pandoc (Meta {docTitle = [Str "Pandoc",Space,Str "Test",Space,Str "Suite"], docA
173173 ] ] ] ] ] ] ]
174174, Para [Str "Autonumbering:"]
175175, OrderedList (1,DefaultStyle,DefaultDelim)
176− [ [ Plain [Str "Autonumber."] ]
177− , [ Plain [Str "More."]
176+ [ [ Plain [Str "Autonumber",Str "."] ]
177+ , [ Plain [Str "More",Str "."]
178178 , OrderedList (1,DefaultStyle,DefaultDelim)
179− [ [ Plain [Str "Nested."] ]
179+ [ [ Plain [Str "Nested",Str "."] ]
180180 ] ] ]
181181, HorizontalRule
182182, Header 2 [Str "Definition"]
183183, DefinitionList
184184 [ ([Str "Violin"],
185− [ [ Plain [Str "Stringed",Space,Str "musical",Space,Str "instrument."] ]
186− , [ Plain [Str "Torture",Space,Str "device."] ]
185+ [ [ Plain [Str "Stringed",Space,Str "musical",Space,Str "instrument",Str "."] ]
186+ , [ Plain [Str "Torture",Space,Str "device",Str "."] ]
187187 ])
188188 , ([Str "Cello",LineBreak,Str "Violoncello"],
189− [ [ Plain [Str "Low-voiced",Space,Str "stringed",Space,Str "instrument."] ]
189+ [ [ Plain [Str "Low",Str "-",Str "voiced",Space,Str "stringed",Space,Str "instrument",Str "."] ]
190190 ]) ]
191191, HorizontalRule
192192, Header 1 [Str "HTML",Space,Str "Blocks"]
@@ -196,7 +196,7 @@ Pandoc (Meta {docTitle = [Str "Pandoc",Space,Str "Test",Space,Str "Suite"], docA
196196, Plain [Str "foobar"]
197197, Para [Str "Interpreted",Space,Str "markdown",Space,Str "in",Space,Str "a",Space,Str "table:"]
198198, Plain [Str "This",Space,Str "is",Space,Emph [Str "emphasized"],Str ".",Space,Str "And",Space,Str "this",Space,Str "is",Space,Strong [Str "strong"]]
199−, Para [Str "Here's",Space,Str "a",Space,Str "simple",Space,Str "block:"]
199+, Para [Str "Here",Str "'",Str "s",Space,Str "a",Space,Str "simple",Space,Str "block:"]
200200, Plain [Str "foo"]
201201, Para [Str "This",Space,Str "should",Space,Str "be",Space,Str "a",Space,Str "code",Space,Str "block,",Space,Str "though:"]
202202, CodeBlock ("",[],[]) "<div>\n foo\n</div>"
@@ -211,7 +211,7 @@ Pandoc (Meta {docTitle = [Str "Pandoc",Space,Str "Test",Space,Str "Suite"], docA
211211, Para [Str "Just",Space,Str "plain",Space,Str "comment,",Space,Str "with",Space,Str "trailing",Space,Str "spaces",Space,Str "on",Space,Str "the",Space,Str "line:"]
212212, Para [Str "Code:"]
213213, CodeBlock ("",[],[]) "<hr />"
214−, Para [Str "Hr's:"]
214+, Para [Str "Hr",Str "'",Str "s:"]
215215, HorizontalRule
216216, HorizontalRule
217217, HorizontalRule
@@ -226,39 +226,39 @@ Pandoc (Meta {docTitle = [Str "Pandoc",Space,Str "Test",Space,Str "Suite"], docA
226226, Para [Str "This",Space,Str "is",Space,Emph [Str "emphasized"],Str ",",Space,Str "and",Space,Str "so",Space,Emph [Str "is",Space,Str "this"],Str "."]
227227, Para [Str "This",Space,Str "is",Space,Strong [Str "strong"],Str ",",Space,Str "and",Space,Str "so",Space,Strong [Str "is",Space,Str "this"],Str "."]
228228, Para [Str "An",Space,Emph [Link [Str "emphasized",Space,Str "link"] ("/url","")],Str "."]
229−, Para [Strong [Emph [Str "This",Space,Str "is",Space,Str "strong",Space,Str "and",Space,Str "em."]]]
230−, Para [Str "So",Space,Str "is",Space,Strong [Emph [Str "this"]],Space,Str "word."]
231−, Para [Strong [Emph [Str "This",Space,Str "is",Space,Str "strong",Space,Str "and",Space,Str "em."]]]
232−, Para [Str "So",Space,Str "is",Space,Strong [Emph [Str "this"]],Space,Str "word."]
229+, Para [Strong [Emph [Str "This",Space,Str "is",Space,Str "strong",Space,Str "and",Space,Str "em",Str "."]]]
230+, Para [Str "So",Space,Str "is",Space,Strong [Emph [Str "this"]],Space,Str "word",Str "."]
231+, Para [Strong [Emph [Str "This",Space,Str "is",Space,Str "strong",Space,Str "and",Space,Str "em",Str "."]]]
232+, Para [Str "So",Space,Str "is",Space,Strong [Emph [Str "this"]],Space,Str "word",Str "."]
233233, Para [Str "This",Space,Str "is",Space,Str "code:",Space,Code ">",Str ",",Space,Code "$",Str ",",Space,Code "\\",Str ",",Space,Code "\\$",Str ",",Space,Code "<html>",Str "."]
234234, HorizontalRule
235235, Header 1 [Str "Smart",Space,Str "quotes,",Space,Str "ellipses,",Space,Str "dashes"]
236−, Para [Str "\"Hello,\"",Space,Str "said",Space,Str "the",Space,Str "spider.",Space,Str "\"'Shelob'",Space,Str "is",Space,Str "my",Space,Str "name.\""]
237−, Para [Str "'A',",Space,Str "'B',",Space,Str "and",Space,Str "'C'",Space,Str "are",Space,Str "letters."]
238−, Para [Str "'Oak,'",Space,Str "'elm,'",Space,Str "and",Space,Str "'beech'",Space,Str "are",Space,Str "names",Space,Str "of",Space,Str "trees.",Space,Str "So",Space,Str "is",Space,Str "'pine.'"]
239−, Para [Str "'He",Space,Str "said,",Space,Str "\"I",Space,Str "want",Space,Str "to",Space,Str "go.\"'",Space,Str "Were",Space,Str "you",Space,Str "alive",Space,Str "in",Space,Str "the",Space,Str "70's?"]
240−, Para [Str "Here",Space,Str "is",Space,Str "some",Space,Str "quoted",Space,Str "'",Code "code",Str "'",Space,Str "and",Space,Str "a",Space,Str "\"",Link [Str "quoted",Space,Str "link"] ("http://example.com/?foo=1&bar=2",""),Str "\"."]
241−, Para [Str "Some",Space,Str "dashes:",Space,Str "one---two",Space,Str "---",Space,Str "three--four",Space,Str "--",Space,Str "five."]
242−, Para [Str "Dashes",Space,Str "between",Space,Str "numbers:",Space,Str "5-7,",Space,Str "255-66,",Space,Str "1987-1999."]
243−, Para [Str "Ellipses...and.",Space,Str ".",Space,Str ".and",Space,Str ".",Space,Str ".",Space,Str ".",Space,Str "."]
236+, Para [Str "\"",Str "Hello,",Str "\"",Space,Str "said",Space,Str "the",Space,Str "spider",Str ".",Space,Str "\"",Str "'",Str "Shelob",Str "'",Space,Str "is",Space,Str "my",Space,Str "name",Str ".",Str "\""]
237+, Para [Str "'",Str "A",Str "'",Str ",",Space,Str "'",Str "B",Str "'",Str ",",Space,Str "and",Space,Str "'",Str "C",Str "'",Space,Str "are",Space,Str "letters",Str "."]
238+, Para [Str "'",Str "Oak,",Str "'",Space,Str "'",Str "elm,",Str "'",Space,Str "and",Space,Str "'",Str "beech",Str "'",Space,Str "are",Space,Str "names",Space,Str "of",Space,Str "trees",Str ".",Space,Str "So",Space,Str "is",Space,Str "'",Str "pine",Str ".",Str "'"]
239+, Para [Str "'",Str "He",Space,Str "said,",Space,Str "\"",Str "I",Space,Str "want",Space,Str "to",Space,Str "go",Str ".",Str "\"",Str "'",Space,Str "Were",Space,Str "you",Space,Str "alive",Space,Str "in",Space,Str "the",Space,Str "70",Str "'",Str "s?"]
240+, Para [Str "Here",Space,Str "is",Space,Str "some",Space,Str "quoted",Space,Str "'",Code "code",Str "'",Space,Str "and",Space,Str "a",Space,Str "\"",Link [Str "quoted",Space,Str "link"] ("http://example.com/?foo=1&bar=2",""),Str "\"",Str "."]
241+, Para [Str "Some",Space,Str "dashes:",Space,Str "one",Str "-",Str "-",Str "-",Str "two",Space,Str "-",Str "-",Str "-",Space,Str "three",Str "-",Str "-",Str "four",Space,Str "-",Str "-",Space,Str "five",Str "."]
242+, Para [Str "Dashes",Space,Str "between",Space,Str "numbers:",Space,Str "5",Str "-",Str "7,",Space,Str "255",Str "-",Str "66,",Space,Str "1987",Str "-",Str "1999",Str "."]
243+, Para [Str "Ellipses",Str ".",Str ".",Str ".",Str "and",Str ".",Space,Str ".",Space,Str ".",Str "and",Space,Str ".",Space,Str ".",Space,Str ".",Space,Str "."]
244244, HorizontalRule
245245, Header 1 [Str "LaTeX"]
246246, BulletList
247− [ [ Plain [Str "\\cite[22-23]{smith.1899}"] ]
247+ [ [ Plain [Str "\\cite[22",Str "-",Str "23]{smith",Str ".",Str "1899}"] ]
248248 , [ Plain [Str "\\doublespacing"] ]
249249 , [ Plain [Str "$2+2=4$"] ]
250250 , [ Plain [Str "$x",Space,Str "\\in",Space,Str "y$"] ]
251251 , [ Plain [Str "$\\alpha",Space,Str "\\wedge",Space,Str "\\omega$"] ]
252252 , [ Plain [Str "$223$"] ]
253− , [ Plain [Str "$p$-Tree"] ]
254− , [ Plain [Str "$\\frac{d}{dx}f(x)=\\lim_{h\\to",Space,Str "0}\\frac{f(x+h)-f(x)}{h}$"] ]
255− , [ Plain [Str "Here's",Space,Str "one",Space,Str "that",Space,Str "has",Space,Str "a",Space,Str "line",Space,Str "break",Space,Str "in",Space,Str "it:",Space,Str "$\\alpha",Space,Str "+",Space,Str "\\omega",Space,Str "\\times",Space,Str "x^2$."] ] ]
256−, Para [Str "These",Space,Str "shouldn't",Space,Str "be",Space,Str "math:"]
253+ , [ Plain [Str "$p$",Str "-",Str "Tree"] ]
254+ , [ Plain [Str "$\\frac{d}{dx}f(x)=\\lim_{h\\to",Space,Str "0}\\frac{f(x+h)",Str "-",Str "f(x)}{h}$"] ]
255+ , [ Plain [Str "Here",Str "'",Str "s",Space,Str "one",Space,Str "that",Space,Str "has",Space,Str "a",Space,Str "line",Space,Str "break",Space,Str "in",Space,Str "it:",Space,Str "$\\alpha",Space,Str "+",Space,Str "\\omega",Space,Str "\\times",Space,Str "x^2$",Str "."] ] ]
256+, Para [Str "These",Space,Str "shouldn",Str "'",Str "t",Space,Str "be",Space,Str "math:"]
257257, BulletList
258258 [ [ Plain [Str "To",Space,Str "get",Space,Str "the",Space,Str "famous",Space,Str "equation,",Space,Str "write",Space,Code "$e = mc^2$",Str "."] ]
259− , [ Plain [Str "$22,000",Space,Str "is",Space,Str "a",Space,Emph [Str "lot"],Space,Str "of",Space,Str "money.",Space,Str "So",Space,Str "is",Space,Str "$34,000.",Space,Str "(It",Space,Str "worked",Space,Str "if",Space,Str "\"lot\"",Space,Str "is",Space,Str "emphasized.)"] ]
260− , [ Plain [Str "Escaped",Space,Code "$",Str ":",Space,Str "$73",Space,Emph [Str "this",Space,Str "should",Space,Str "be",Space,Str "emphasized"],Space,Str "23$."] ] ]
261−, Para [Str "Here's",Space,Str "a",Space,Str "LaTeX",Space,Str "table:"]
259+ , [ Plain [Str "$22,000",Space,Str "is",Space,Str "a",Space,Emph [Str "lot"],Space,Str "of",Space,Str "money",Str ".",Space,Str "So",Space,Str "is",Space,Str "$34,000",Str ".",Space,Str "(It",Space,Str "worked",Space,Str "if",Space,Str "\"",Str "lot",Str "\"",Space,Str "is",Space,Str "emphasized",Str ".",Str ")"] ]
260+ , [ Plain [Str "Escaped",Space,Code "$",Str ":",Space,Str "$73",Space,Emph [Str "this",Space,Str "should",Space,Str "be",Space,Str "emphasized"],Space,Str "23$",Str "."] ] ]
261+, Para [Str "Here",Str "'",Str "s",Space,Str "a",Space,Str "LaTeX",Space,Str "table:"]
262262, Para [Str "\\begin{tabular}{|l|l|}\\hline",Space,Str "Animal",Space,Str "&",Space,Str "Number",Space,Str "\\\\",Space,Str "\\hline",Space,Str "Dog",Space,Str "&",Space,Str "2",Space,Str "\\\\",Space,Str "Cat",Space,Str "&",Space,Str "1",Space,Str "\\\\",Space,Str "\\hline",Space,Str "\\end{tabular}"]
263263, HorizontalRule
264264, Header 1 [Str "Special",Space,Str "Characters"]
@@ -269,11 +269,11 @@ Pandoc (Meta {docTitle = [Str "Pandoc",Space,Str "Test",Space,Str "Suite"], docA
269269 , [ Plain [Str "section:",Space,Str "\167"] ]
270270 , [ Plain [Str "set",Space,Str "membership:",Space,Str "\8712"] ]
271271 , [ Plain [Str "copyright:",Space,Str "\169"] ] ]
272−, Para [Str "AT",Str "&",Str "T",Space,Str "has",Space,Str "an",Space,Str "ampersand",Space,Str "in",Space,Str "their",Space,Str "name."]
273−, Para [Str "AT",Str "&",Str "T",Space,Str "is",Space,Str "another",Space,Str "way",Space,Str "to",Space,Str "write",Space,Str "it."]
274−, Para [Str "This",Space,Str "&",Space,Str "that."]
275−, Para [Str "4",Space,Str "<",Space,Str "5."]
276−, Para [Str "6",Space,Str ">",Space,Str "5."]
272+, Para [Str "AT",Str "&",Str "T",Space,Str "has",Space,Str "an",Space,Str "ampersand",Space,Str "in",Space,Str "their",Space,Str "name",Str "."]
273+, Para [Str "AT",Str "&",Str "T",Space,Str "is",Space,Str "another",Space,Str "way",Space,Str "to",Space,Str "write",Space,Str "it",Str "."]
274+, Para [Str "This",Space,Str "&",Space,Str "that",Str "."]
275+, Para [Str "4",Space,Str "<",Space,Str "5",Str "."]
276+, Para [Str "6",Space,Str ">",Space,Str "5",Str "."]
277277, Para [Str "Backslash:",Space,Str "\\"]
278278, Para [Str "Backtick:",Space,Str "`"]
279279, Para [Str "Asterisk:",Space,Str "*"]
@@ -284,7 +284,7 @@ Pandoc (Meta {docTitle = [Str "Pandoc",Space,Str "Test",Space,Str "Suite"], docA
284284, Para [Str "Right",Space,Str "bracket:",Space,Str "]"]
285285, Para [Str "Left",Space,Str "paren:",Space,Str "("]
286286, Para [Str "Right",Space,Str "paren:",Space,Str ")"]
287−, Para [Str "Greater-than:",Space,Str ">"]
287+, Para [Str "Greater",Str "-",Str "than:",Space,Str ">"]
288288, Para [Str "Hash:",Space,Str "#"]
289289, Para [Str "Period:",Space,Str "."]
290290, Para [Str "Bang:",Space,Str "!"]
@@ -299,48 +299,48 @@ Pandoc (Meta {docTitle = [Str "Pandoc",Space,Str "Test",Space,Str "Suite"], docA
299299, Para [Link [Str "URL",Space,Str "and",Space,Str "title"] ("/url/","title preceded by a tab"),Str "."]
300300, Para [Link [Str "URL",Space,Str "and",Space,Str "title"] ("/url/","title with \"quotes\" in it")]
301301, Para [Link [Str "URL",Space,Str "and",Space,Str "title"] ("/url/","title with single quotes")]
302−, Plain [Str "Email",Space,Str "link",Space,Str "(nobody",Space,Str "[at]",Space,Str "nowhere.net)"]
302+, Plain [Str "Email",Space,Str "link",Space,Str "(nobody",Space,Str "[at]",Space,Str "nowhere",Str ".",Str "net)"]
303303, Para [Link [Str "Empty"] ("",""),Str "."]
304304, Header 2 [Str "Reference"]
305305, Para [Str "Foo",Space,Link [Str "bar"] ("/url/",""),Str "."]
306306, Para [Str "Foo",Space,Link [Str "bar"] ("/url/",""),Str "."]
307307, Para [Str "Foo",Space,Link [Str "bar"] ("/url/",""),Str "."]
308308, Para [Str "With",Space,Link [Str "embedded",Space,Str "[brackets]"] ("/url/",""),Str "."]
309−, Para [Link [Str "b"] ("/url/",""),Space,Str "by",Space,Str "itself",Space,Str "should",Space,Str "be",Space,Str "a",Space,Str "link."]
309+, Para [Link [Str "b"] ("/url/",""),Space,Str "by",Space,Str "itself",Space,Str "should",Space,Str "be",Space,Str "a",Space,Str "link",Str "."]
310310, Para [Str "Indented",Space,Link [Str "once"] ("/url",""),Str "."]
311311, Para [Str "Indented",Space,Link [Str "twice"] ("/url",""),Str "."]
312312, Para [Str "Indented",Space,Link [Str "thrice"] ("/url",""),Str "."]
313−, Para [Str "This",Space,Str "should",Space,Str "[not]",Space,Str "be",Space,Str "a",Space,Str "link."]
313+, Para [Str "This",Space,Str "should",Space,Str "[not]",Space,Str "be",Space,Str "a",Space,Str "link",Str "."]
314314, CodeBlock ("",[],[]) "[not]: /url"
315315, Para [Str "Foo",Space,Link [Str "bar"] ("/url/","Title with \"quotes\" inside"),Str "."]
316316, Para [Str "Foo",Space,Link [Str "biz"] ("/url/","Title with \"quote\" inside"),Str "."]
317317, Header 2 [Str "With",Space,Str "ampersands"]
318−, Para [Str "Here's",Space,Str "a",Space,Link [Str "link",Space,Str "with",Space,Str "an",Space,Str "ampersand",Space,Str "in",Space,Str "the",Space,Str "URL"] ("http://example.com/?foo=1&bar=2",""),Str "."]
319−, Para [Str "Here's",Space,Str "a",Space,Str "link",Space,Str "with",Space,Str "an",Space,Str "amersand",Space,Str "in",Space,Str "the",Space,Str "link",Space,Str "text:",Space,Link [Str "AT",Str "&",Str "T"] ("http://att.com/","AT&T"),Str "."]
320−, Para [Str "Here's",Space,Str "an",Space,Link [Str "inline",Space,Str "link"] ("/script?foo=1&bar=2",""),Str "."]
321−, Para [Str "Here's",Space,Str "an",Space,Link [Str "inline",Space,Str "link",Space,Str "in",Space,Str "pointy",Space,Str "braces"] ("/script?foo=1&bar=2",""),Str "."]
318+, Para [Str "Here",Str "'",Str "s",Space,Str "a",Space,Link [Str "link",Space,Str "with",Space,Str "an",Space,Str "ampersand",Space,Str "in",Space,Str "the",Space,Str "URL"] ("http://example.com/?foo=1&bar=2",""),Str "."]
319+, Para [Str "Here",Str "'",Str "s",Space,Str "a",Space,Str "link",Space,Str "with",Space,Str "an",Space,Str "amersand",Space,Str "in",Space,Str "the",Space,Str "link",Space,Str "text:",Space,Link [Str "AT",Str "&",Str "T"] ("http://att.com/","AT&T"),Str "."]
320+, Para [Str "Here",Str "'",Str "s",Space,Str "an",Space,Link [Str "inline",Space,Str "link"] ("/script?foo=1&bar=2",""),Str "."]
321+, Para [Str "Here",Str "'",Str "s",Space,Str "an",Space,Link [Str "inline",Space,Str "link",Space,Str "in",Space,Str "pointy",Space,Str "braces"] ("/script?foo=1&bar=2",""),Str "."]
322322, Header 2 [Str "Autolinks"]
323−, Para [Str "With",Space,Str "an",Space,Str "ampersand:",Space,Link [Str "http://example.com/?foo=1",Str "&",Str "bar=2"] ("http://example.com/?foo=1&bar=2","")]
323+, Para [Str "With",Space,Str "an",Space,Str "ampersand:",Space,Link [Str "http://example",Str ".",Str "com/?foo=1",Str "&",Str "bar=2"] ("http://example.com/?foo=1&bar=2","")]
324324, BulletList
325325 [ [ Plain [Str "In",Space,Str "a",Space,Str "list?"] ]
326− , [ Plain [Link [Str "http://example.com/"] ("http://example.com/","")] ]
327− , [ Plain [Str "It",Space,Str "should."] ] ]
328−, Plain [Str "An",Space,Str "e-mail",Space,Str "address:",Space,Str "nobody",Space,Str "[at]",Space,Str "nowhere.net"]
326+ , [ Plain [Link [Str "http://example",Str ".",Str "com/"] ("http://example.com/","")] ]
327+ , [ Plain [Str "It",Space,Str "should",Str "."] ] ]
328+, Plain [Str "An",Space,Str "e",Str "-",Str "mail",Space,Str "address:",Space,Str "nobody",Space,Str "[at]",Space,Str "nowhere",Str ".",Str "net"]
329329, BlockQuote
330− [ Para [Str "Blockquoted:",Space,Link [Str "http://example.com/"] ("http://example.com/","")] ]
330+ [ Para [Str "Blockquoted:",Space,Link [Str "http://example",Str ".",Str "com/"] ("http://example.com/","")] ]
331331
332−, Para [Str "Auto-links",Space,Str "should",Space,Str "not",Space,Str "occur",Space,Str "here:",Space,Code "<http://example.com/>"]
332+, Para [Str "Auto",Str "-",Str "links",Space,Str "should",Space,Str "not",Space,Str "occur",Space,Str "here:",Space,Code "<http://example.com/>"]
333333, CodeBlock ("",[],[]) "or here: <http://example.com/>"
334334, HorizontalRule
335335, Header 1 [Str "Images"]
336−, Para [Str "From",Space,Str "\"Voyage",Space,Str "dans",Space,Str "la",Space,Str "Lune\"",Space,Str "by",Space,Str "Georges",Space,Str "Melies",Space,Str "(1902):"]
336+, Para [Str "From",Space,Str "\"",Str "Voyage",Space,Str "dans",Space,Str "la",Space,Str "Lune",Str "\"",Space,Str "by",Space,Str "Georges",Space,Str "Melies",Space,Str "(1902):"]
337337, Para [Image [Str "lalune"] ("lalune.jpg","Voyage dans la Lune")]
338−, Para [Str "Here",Space,Str "is",Space,Str "a",Space,Str "movie",Space,Image [Str "movie"] ("movie.jpg",""),Space,Str "icon."]
338+, Para [Str "Here",Space,Str "is",Space,Str "a",Space,Str "movie",Space,Image [Str "movie"] ("movie.jpg",""),Space,Str "icon",Str "."]
339339, HorizontalRule
340340, Header 1 [Str "Footnotes"]
341−, Para [Str "Here",Space,Str "is",Space,Str "a",Space,Str "footnote",Space,Str "reference",Link [Str "(1)"] ("#note_1",""),Str ",",Space,Str "and",Space,Str "another",Link [Str "(longnote)"] ("#note_longnote",""),Str ".",Space,Str "This",Space,Str "should",Space,Emph [Str "not"],Space,Str "be",Space,Str "a",Space,Str "footnote",Space,Str "reference,",Space,Str "because",Space,Str "it",Space,Str "contains",Space,Str "a",Space,Str "space^(my",Space,Str "note)."]
342−, Para [Link [Str "(1)"] ("#ref_1",""),Space,Str "Here",Space,Str "is",Space,Str "the",Space,Str "footnote.",Space,Str "It",Space,Str "can",Space,Str "go",Space,Str "anywhere",Space,Str "in",Space,Str "the",Space,Str "document,",Space,Str "not",Space,Str "just",Space,Str "at",Space,Str "the",Space,Str "end."]
343−, Para [Link [Str "(longnote)"] ("#ref_longnote",""),Space,Str "Here's",Space,Str "the",Space,Str "other",Space,Str "note.",Space,Str "This",Space,Str "one",Space,Str "contains",Space,Str "multiple",Space,Str "blocks."]
344−, Para [Str "Caret",Space,Str "characters",Space,Str "are",Space,Str "used",Space,Str "to",Space,Str "indicate",Space,Str "that",Space,Str "the",Space,Str "blocks",Space,Str "all",Space,Str "belong",Space,Str "to",Space,Str "a",Space,Str "single",Space,Str "footnote",Space,Str "(as",Space,Str "with",Space,Str "block",Space,Str "quotes)."]
341+, Para [Str "Here",Space,Str "is",Space,Str "a",Space,Str "footnote",Space,Str "reference",Link [Str "(1)"] ("#note_1",""),Str ",",Space,Str "and",Space,Str "another",Link [Str "(longnote)"] ("#note_longnote",""),Str ".",Space,Str "This",Space,Str "should",Space,Emph [Str "not"],Space,Str "be",Space,Str "a",Space,Str "footnote",Space,Str "reference,",Space,Str "because",Space,Str "it",Space,Str "contains",Space,Str "a",Space,Str "space^(my",Space,Str "note)",Str "."]
342+, Para [Link [Str "(1)"] ("#ref_1",""),Space,Str "Here",Space,Str "is",Space,Str "the",Space,Str "footnote",Str ".",Space,Str "It",Space,Str "can",Space,Str "go",Space,Str "anywhere",Space,Str "in",Space,Str "the",Space,Str "document,",Space,Str "not",Space,Str "just",Space,Str "at",Space,Str "the",Space,Str "end",Str "."]
343+, Para [Link [Str "(longnote)"] ("#ref_longnote",""),Space,Str "Here",Str "'",Str "s",Space,Str "the",Space,Str "other",Space,Str "note",Str ".",Space,Str "This",Space,Str "one",Space,Str "contains",Space,Str "multiple",Space,Str "blocks",Str "."]
344+, Para [Str "Caret",Space,Str "characters",Space,Str "are",Space,Str "used",Space,Str "to",Space,Str "indicate",Space,Str "that",Space,Str "the",Space,Str "blocks",Space,Str "all",Space,Str "belong",Space,Str "to",Space,Str "a",Space,Str "single",Space,Str "footnote",Space,Str "(as",Space,Str "with",Space,Str "block",Space,Str "quotes)",Str "."]
345345, CodeBlock ("",[],[]) " { <code> }"
346−, Para [Str "If",Space,Str "you",Space,Str "want,",Space,Str "you",Space,Str "can",Space,Str "use",Space,Str "a",Space,Str "caret",Space,Str "at",Space,Str "the",Space,Str "beginning",Space,Str "of",Space,Str "every",Space,Str "line,",Space,Str "as",Space,Str "with",Space,Str "blockquotes,",Space,Str "but",Space,Str "all",Space,Str "that",Space,Str "you",Space,Str "need",Space,Str "is",Space,Str "a",Space,Str "caret",Space,Str "at",Space,Str "the",Space,Str "beginning",Space,Str "of",Space,Str "the",Space,Str "first",Space,Str "line",Space,Str "of",Space,Str "the",Space,Str "block",Space,Str "and",Space,Str "any",Space,Str "preceding",Space,Str "blank",Space,Str "lines."] ]
346+, Para [Str "If",Space,Str "you",Space,Str "want,",Space,Str "you",Space,Str "can",Space,Str "use",Space,Str "a",Space,Str "caret",Space,Str "at",Space,Str "the",Space,Str "beginning",Space,Str "of",Space,Str "every",Space,Str "line,",Space,Str "as",Space,Str "with",Space,Str "blockquotes,",Space,Str "but",Space,Str "all",Space,Str "that",Space,Str "you",Space,Str "need",Space,Str "is",Space,Str "a",Space,Str "caret",Space,Str "at",Space,Str "the",Space,Str "beginning",Space,Str "of",Space,Str "the",Space,Str "first",Space,Str "line",Space,Str "of",Space,Str "the",Space,Str "block",Space,Str "and",Space,Str "any",Space,Str "preceding",Space,Str "blank",Space,Str "lines",Str "."] ]