aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2011-01-23 00:05:35 -0800
committerJohn MacFarlane <jgm@berkeley.edu>2011-01-23 00:05:35 -0800
commit50d08ec2c3892076bde53b66f1b728e4bf23ab97 (patch)
tree2f8b8632ea64909e3092e1f8a8f7fb3a155fa4d9
parent9f99c39cafabf1438c195c61e2bea785b529f0c0 (diff)
downloadpandoc-50d08ec2c3892076bde53b66f1b728e4bf23ab97.tar.gz
Textile reader: Added code blocks with bc.
-rw-r--r--src/Text/Pandoc/Readers/Textile.hs13
-rw-r--r--tests/textile-reader.native1
-rw-r--r--tests/textile-reader.textile3
3 files changed, 15 insertions, 2 deletions
diff --git a/src/Text/Pandoc/Readers/Textile.hs b/src/Text/Pandoc/Readers/Textile.hs
index c3b2e69a2..05bcd6108 100644
--- a/src/Text/Pandoc/Readers/Textile.hs
+++ b/src/Text/Pandoc/Readers/Textile.hs
@@ -135,9 +135,18 @@ blockParsers = [ codeBlock
block :: GenParser Char ParserState Block
block = choice blockParsers <?> "block"
--- | Code Blocks in Textile are between <pre> and </pre>
codeBlock :: GenParser Char ParserState Block
-codeBlock = try $ do
+codeBlock = codeBlockBc <|> codeBlockPre
+
+codeBlockBc :: GenParser Char ParserState Block
+codeBlockBc = try $ do
+ string "bc. "
+ contents <- manyTill anyLine blanklines
+ return $ CodeBlock ("",[],[]) $ unlines contents
+
+-- | Code Blocks in Textile are between <pre> and </pre>
+codeBlockPre :: GenParser Char ParserState Block
+codeBlockPre = try $ do
htmlTag (tagOpen (=="pre") null)
result' <- manyTill anyChar (try $ htmlTag (tagClose (=="pre")) >> blockBreak)
-- drop leading newline if any
diff --git a/tests/textile-reader.native b/tests/textile-reader.native
index f571c149a..a00507282 100644
--- a/tests/textile-reader.native
+++ b/tests/textile-reader.native
@@ -24,6 +24,7 @@ Pandoc (Meta {docTitle = [], docAuthors = [], docDate = []})
,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 ("",[],[]) " this code block is indented by two tabs\n\n These should not be escaped: \\$ \\\\ \\> \\[ \\{"
+,CodeBlock ("",[],[]) "Code block with .bc\n continued\n @</\\\n"
,Header 1 [Str "Lists"]
,Header 2 [Str "Unordered"]
,Para [Str "Asterisks",Space,Str "tight",Str ":"]
diff --git a/tests/textile-reader.textile b/tests/textile-reader.textile
index 64545c2c0..9fa90bb32 100644
--- a/tests/textile-reader.textile
+++ b/tests/textile-reader.textile
@@ -62,6 +62,9 @@ And:
These should not be escaped: \$ \\ \> \[ \{
</pre>
+bc. Code block with .bc
+ continued
+ @</\
h1. Lists