diff --git a/src/Text/Pandoc/Writers/Muse.hs b/src/Text/Pandoc/Writers/Muse.hs index 404ebf7bc..ea46507db 100644 --- a/src/Text/Pandoc/Writers/Muse.hs +++ b/src/Text/Pandoc/Writers/Muse.hs @@ -287,7 +287,8 @@ conditionalEscapeString s = if any (`elem` ("#*<=>[]|" :: String)) s || "::" `isInfixOf` s || "----" `isInfixOf` s || - "~~" `isInfixOf` s + "~~" `isInfixOf` s || + "-" == s then escapeString s else s diff --git a/test/Tests/Writers/Muse.hs b/test/Tests/Writers/Muse.hs index 7aec8122a..ab5eaa205 100644 --- a/test/Tests/Writers/Muse.hs +++ b/test/Tests/Writers/Muse.hs @@ -301,6 +301,15 @@ tests = [ testGroup "block elements" -- We don't want colons to be escaped if they can't be confused -- with definition list item markers. , "do not escape colon" =: str ":" =?> ":" + , "escape - to avoid accidental unordered lists" =: text " - foo" =?> " - foo" + , "escape - inside a list to avoid accidental nested unordered lists" =: + bulletList [ (para $ text "foo") <> + (para $ text "- bar") + ] =?> + unlines [ " - foo" + , "" + , " - bar" + ] ] , testGroup "emphasis" [ "emph" =: emph (text "foo") =?> "foo" diff --git a/test/writer.muse b/test/writer.muse index 6cb766955..5db3871a1 100644 --- a/test/writer.muse +++ b/test/writer.muse @@ -594,7 +594,7 @@ Bang: ! Plus: + -Minus: - +Minus: - ----