aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Text/Pandoc/Writers/Textile.hs13
-rw-r--r--tests/writer.textile8
2 files changed, 14 insertions, 7 deletions
diff --git a/src/Text/Pandoc/Writers/Textile.hs b/src/Text/Pandoc/Writers/Textile.hs
index cb8f20a0a..4aaee0a32 100644
--- a/src/Text/Pandoc/Writers/Textile.hs
+++ b/src/Text/Pandoc/Writers/Textile.hs
@@ -118,15 +118,18 @@ blockToTextile opts (Header level inlines) = do
let prefix = 'h' : (show level ++ ". ")
return $ prefix ++ contents ++ "\n"
+blockToTextile _ (CodeBlock (_,classes,_) str) | any (all isSpace) (lines str) =
+ return $ "<pre" ++ classes' ++ ">\n" ++ escapeStringForXML str ++
+ "\n</pre>\n"
+ where classes' = if null classes
+ then ""
+ else " class=\"" ++ unwords classes ++ "\""
+
blockToTextile _ (CodeBlock (_,classes,_) str) =
- return $ "bc" ++ classes' ++ dots ++ escapeStringForXML str ++ "\n"
+ return $ "bc" ++ classes' ++ ". " ++ escapeStringForXML str ++ "\n"
where classes' = if null classes
then ""
else "(" ++ unwords classes ++ ")"
- dots = if any isBlank (lines str)
- then ".. "
- else ". "
- isBlank = all isSpace
blockToTextile opts (BlockQuote bs@[Para _]) = do
contents <- blockListToTextile opts bs
diff --git a/tests/writer.textile b/tests/writer.textile
index f0ff383f0..ee67a7f33 100644
--- a/tests/writer.textile
+++ b/tests/writer.textile
@@ -76,19 +76,23 @@ h1. Code Blocks
Code:
-bc.. ---- (should be four hyphens)
+<pre>
+---- (should be four hyphens)
sub status {
print &quot;working&quot;;
}
this code block is indented by one tab
+</pre>
And:
-bc.. this code block is indented by two tabs
+<pre>
+ this code block is indented by two tabs
These should not be escaped: \$ \\ \&gt; \[ \{
+</pre>
<hr />