From b8afec05e0ce85ab811bf55d4948be768ad363e2 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Sun, 30 Jul 2017 13:45:22 -0700 Subject: Markdown writer: better escaping of `<` and `>`. If `all_symbols_escapable` is set, we backslash escape these. Otherwise we use entities as before. --- src/Text/Pandoc/Writers/Markdown.hs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/Text/Pandoc') diff --git a/src/Text/Pandoc/Writers/Markdown.hs b/src/Text/Pandoc/Writers/Markdown.hs index 1e0d8bde2..837c177f1 100644 --- a/src/Text/Pandoc/Writers/Markdown.hs +++ b/src/Text/Pandoc/Writers/Markdown.hs @@ -280,8 +280,12 @@ escapeString :: WriterOptions -> String -> String escapeString _ [] = [] escapeString opts (c:cs) = case c of - '<' -> "<" ++ escapeString opts cs - '>' -> ">" ++ escapeString opts cs + '<' | isEnabled Ext_all_symbols_escapable opts -> + '\\' : '<' : escapeString opts cs + | otherwise -> "<" ++ escapeString opts cs + '>' | isEnabled Ext_all_symbols_escapable opts -> + '\\' : '>' : escapeString opts cs + | otherwise -> ">" ++ escapeString opts cs _ | c `elem` ['\\','`','*','_','[',']','#'] -> '\\':c:escapeString opts cs '^' | isEnabled Ext_superscript opts -> '\\':'^':escapeString opts cs -- cgit v1.2.3