@@ -43,7 +43,11 @@ import Text.Pandoc.Writers.Markdown.Types (MarkdownVariant(..),
43-- | Escape special characters for Markdown.
43-- | Escape special characters for Markdown.
44escapeText :: WriterOptions -> Text -> Text
44escapeText :: WriterOptions -> Text -> Text
45escapeText opts = T.pack . go . T.unpack
45escapeText opts = T.pack . go . T.unpack
47+ startsWithSpace (' ':_) = True
48+ startsWithSpace ('\t':_) = True
49+ startsWithSpace [] = True
50+ startsWithSpace _ = False
47 go [] = []
51 go [] = []
48 go (c:cs) =
52 go (c:cs) =
@@ -59,7 +63,10 @@ escapeText opts = T.pack . go . T.unpack
59 | isAlphaNum d || d == '_' || d == '{'
63 | isAlphaNum d || d == '_' || d == '{'
60 -> '\\':'@':go cs
64 -> '\\':'@':go cs
61 _ -> '@':go cs
65 _ -> '@':go cs
66+ '#' | isEnabled Ext_space_in_atx_header opts
62− _ | c `elem` ['\\','`','*','_','[',']','#'] ->
69+ _ | c `elem` ['\\','`','*','_','[',']'] ->
63 '\\':c:go cs
70 '\\':c:go cs
64 '|' | isEnabled Ext_pipe_tables opts -> '\\':'|':go cs
71 '|' | isEnabled Ext_pipe_tables opts -> '\\':'|':go cs
65 '^' | isEnabled Ext_superscript opts -> '\\':'^':go cs
72 '^' | isEnabled Ext_superscript opts -> '\\':'^':go cs
@@ -81,6 +88,8 @@ escapeText opts = T.pack . go . T.unpack
81 | isEnabled Ext_intraword_underscores opts
88 | isEnabled Ext_intraword_underscores opts
82 , isAlphaNum c
89 , isAlphaNum c
83 , isAlphaNum x -> c : '_' : x : go xs
90 , isAlphaNum x -> c : '_' : x : go xs
91+ '#':xs -> c : '#' : go xs
92+ '>':xs -> c : '>' : go xs
84 _ -> c : go cs
93 _ -> c : go cs
86attrsToMarkdown :: Attr -> Doc Text
95attrsToMarkdown :: Attr -> Doc Text