aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Krotov <ilabdsf@gmail.com>2017-11-22 00:17:15 +0300
committerAlexander Krotov <ilabdsf@gmail.com>2017-11-22 01:39:20 +0300
commit7e42857ed8357bc5b5e9528d9fd09408f27ab4e1 (patch)
treec26c83d6357caa4a3ded972c9c29f3cbb3dd74d4
parent351765d4ad4e7bfa674fa48cb36dee824efc98ea (diff)
downloadpandoc-7e42857ed8357bc5b5e9528d9fd09408f27ab4e1.tar.gz
Muse writer: escape "----" to avoid accidental horizontal rules
-rw-r--r--src/Text/Pandoc/Writers/Muse.hs10
-rw-r--r--test/Tests/Writers/Muse.hs1
2 files changed, 7 insertions, 4 deletions
diff --git a/src/Text/Pandoc/Writers/Muse.hs b/src/Text/Pandoc/Writers/Muse.hs
index c834e5883..8963c7ce4 100644
--- a/src/Text/Pandoc/Writers/Muse.hs
+++ b/src/Text/Pandoc/Writers/Muse.hs
@@ -284,10 +284,12 @@ escapeString s =
-- | Escape special characters for Muse if needed.
conditionalEscapeString :: String -> String
-conditionalEscapeString s
- | any (`elem` ("*<=>[]|" :: String)) s ||
- "::" `isInfixOf` s = escapeString s
- | otherwise = s
+conditionalEscapeString s =
+ if any (`elem` ("*<=>[]|" :: String)) s ||
+ "::" `isInfixOf` s ||
+ "----" `isInfixOf` s
+ then escapeString s
+ else s
-- | Convert list of Pandoc inline elements to Muse.
inlineListToMuse :: PandocMonad m
diff --git a/test/Tests/Writers/Muse.hs b/test/Tests/Writers/Muse.hs
index 7e95ae85e..a19f2f57e 100644
--- a/test/Tests/Writers/Muse.hs
+++ b/test/Tests/Writers/Muse.hs
@@ -236,6 +236,7 @@ tests = [ testGroup "block elements"
]
]
, "horizontal rule" =: horizontalRule =?> "----"
+ , "escape horizontal rule" =: para (text "----") =?> "<verbatim>----</verbatim>"
, testGroup "tables"
[ "table without header" =:
let rows = [[para $ text "Para 1.1", para $ text "Para 1.2"]