From 17767bd29d54883364d4d9bdee417973ac0a10ac Mon Sep 17 00:00:00 2001 From: Alexander Krotov Date: Sun, 15 Apr 2018 16:07:43 +0300 Subject: Muse writer: escape strings starting with space --- src/Text/Pandoc/Writers/Muse.hs | 6 +++++- test/Tests/Writers/Muse.hs | 9 +++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/Text/Pandoc/Writers/Muse.hs b/src/Text/Pandoc/Writers/Muse.hs index 127a4f149..4e7ce377a 100644 --- a/src/Text/Pandoc/Writers/Muse.hs +++ b/src/Text/Pandoc/Writers/Muse.hs @@ -400,6 +400,10 @@ isHorizontalRule s = ((length xs) >= 4) && null ys where (xs, ys) = span (== '-') s +startsWithSpace :: String -> Bool +startsWithSpace (x:_) = isSpace x +startsWithSpace [] = False + fixOrEscape :: Bool -> Inline -> Bool fixOrEscape sp (Str "-") = sp fixOrEscape sp (Str ";") = not sp @@ -407,7 +411,7 @@ fixOrEscape _ (Str ">") = True fixOrEscape sp (Str s) = (sp && (startsWithMarker isDigit s || startsWithMarker isAsciiLower s || startsWithMarker isAsciiUpper s)) - || isHorizontalRule s + || isHorizontalRule s || startsWithSpace s fixOrEscape _ Space = True fixOrEscape _ SoftBreak = True fixOrEscape _ _ = False diff --git a/test/Tests/Writers/Muse.hs b/test/Tests/Writers/Muse.hs index 41c846b1b..44fdd5b7e 100644 --- a/test/Tests/Writers/Muse.hs +++ b/test/Tests/Writers/Muse.hs @@ -112,6 +112,15 @@ tests = [ testGroup "block elements" , " :: second description" , " :: third description" ] + , "definition list terms starting with space" =: + definitionList [ (text "first definition", [plain $ text "first description"]) + , (space <> str "foo", [plain $ text "second description"]) + , (str " > bar", [plain $ text "third description"]) + ] + =?> unlines [ " first definition :: first description" + , " foo :: second description" + , " > bar :: third description" + ] ] -- Test that lists of the same type and style are separated with two blanklines , testGroup "sequential lists" -- cgit v1.2.3