Muse writer: escape horizontal rule only if at the beginning of the line

This commit is contained in:
Alexander Krotov
2018-04-05 19:49:09 +03:00
parent 16104881b3
commit 87dda2109d
2 changed files with 11 additions and 4 deletions
+8 -3
View File
@@ -325,7 +325,6 @@ conditionalEscapeString :: Bool -> String -> String
conditionalEscapeString isInsideLinkDescription s =
if any (`elem` ("#*<=>|" :: String)) s ||
"::" `isInfixOf` s ||
"----" `isInfixOf` s ||
"~~" `isInfixOf` s ||
"[[" `isInfixOf` s ||
("]" `isInfixOf` s && isInsideLinkDescription) ||
@@ -395,12 +394,18 @@ urlEscapeBrackets (']':xs) = '%':'5':'D':urlEscapeBrackets xs
urlEscapeBrackets (x:xs) = x:urlEscapeBrackets xs
urlEscapeBrackets [] = []
isHorizontalRule :: String -> Bool
isHorizontalRule s =
((length xs) >= 4) && null ys
where (xs, ys) = span (== '-') s
fixOrEscape :: Bool -> Inline -> Bool
fixOrEscape sp (Str "-") = sp
fixOrEscape sp (Str ";") = not sp
fixOrEscape sp (Str s) = sp && (startsWithMarker isDigit s ||
fixOrEscape sp (Str s) = (sp && (startsWithMarker isDigit s ||
startsWithMarker isAsciiLower s ||
startsWithMarker isAsciiUpper s)
startsWithMarker isAsciiUpper s))
|| isHorizontalRule s
fixOrEscape _ Space = True
fixOrEscape _ SoftBreak = True
fixOrEscape _ _ = False
+3 -1
View File
@@ -259,7 +259,9 @@ tests = [ testGroup "block elements"
]
]
, "horizontal rule" =: horizontalRule =?> "----"
, "escape horizontal rule" =: para (text "----") =?> "<verbatim>----</verbatim>"
, "escape horizontal rule" =: para (text "----") =?> "<verbatim></verbatim>----"
, "escape long horizontal rule" =: para (text "----------") =?> "<verbatim></verbatim>----------"
, "don't escape horizontal inside paragraph" =: para (text "foo ---- bar") =?> "foo ---- bar"
, "escape nonbreaking space" =: para (text "~~") =?> "<verbatim>~~</verbatim>"
, testGroup "tables"
[ "table without header" =: