diff options
-rw-r--r-- | src/Text/Pandoc/Readers/Textile.hs | 12 | ||||
-rw-r--r-- | tests/textile-reader.native | 4 |
2 files changed, 12 insertions, 4 deletions
diff --git a/src/Text/Pandoc/Readers/Textile.hs b/src/Text/Pandoc/Readers/Textile.hs index 52eebd07f..3465eebbe 100644 --- a/src/Text/Pandoc/Readers/Textile.hs +++ b/src/Text/Pandoc/Readers/Textile.hs @@ -120,8 +120,16 @@ block = choice blockParsers <?> "block" codeBlock :: GenParser Char ParserState Block codeBlock = try $ do htmlTag False "pre" - content <- manyTill anyChar (try $ htmlEndTag "pre" >> blockBreak) - return $ CodeBlock ("",[],[]) content + result' <- manyTill anyChar (try $ htmlEndTag "pre" >> blockBreak) + -- drop leading newline if any + let result'' = case result' of + '\n':xs -> xs + _ -> result' + -- drop trailing newline if any + let result''' = case reverse result'' of + '\n':_ -> init result'' + _ -> result'' + return $ CodeBlock ("",[],[]) result''' -- | Header of the form "hN. content" with N in 1..6 header :: GenParser Char ParserState Block diff --git a/tests/textile-reader.native b/tests/textile-reader.native index 999521942..130866a37 100644 --- a/tests/textile-reader.native +++ b/tests/textile-reader.native @@ -23,9 +23,9 @@ Pandoc (Meta {docTitle = [Str ""], docAuthors = [[Str ""]], docDate = [Str ""]}) , Para [Str "And",Space,Str "a",Space,Str "following",Space,Str "paragraph",Str "."] , Header 1 [Str "Code",Space,Str "Blocks"] , Para [Str "Code",Str ":"] -, CodeBlock ("",[],[]) "\n ---- (should be four hyphens)\n\n sub status {\n print \"working\";\n }\n\n this code block is indented by one tab\n" +, CodeBlock ("",[],[]) " ---- (should be four hyphens)\n\n sub status {\n print \"working\";\n }\n\n this code block is indented by one tab" , Para [Str "And",Str ":"] -, CodeBlock ("",[],[]) "\n this code block is indented by two tabs\n\n These should not be escaped: \\$ \\\\ \\> \\[ \\{\n" +, CodeBlock ("",[],[]) " this code block is indented by two tabs\n\n These should not be escaped: \\$ \\\\ \\> \\[ \\{" , Header 1 [Str "Lists"] , Header 2 [Str "Unordered"] , Para [Str "Asterisks",Space,Str "tight",Str ":"] |