From 696dfbc993691933f01241bbb7f2f379f45b99a5 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Sat, 22 Oct 2016 23:41:55 +0200 Subject: Added `angle_brackets_escapable` extension. This is needed because github flavored Markdown has a slightly different set of escapable symbols than original Markdown; it includes angle brackets. Closes #2846. --- src/Text/Pandoc/Options.hs | 4 +++- src/Text/Pandoc/Readers/Markdown.hs | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) (limited to 'src/Text') diff --git a/src/Text/Pandoc/Options.hs b/src/Text/Pandoc/Options.hs index 575250b9e..6c7dde488 100644 --- a/src/Text/Pandoc/Options.hs +++ b/src/Text/Pandoc/Options.hs @@ -101,6 +101,7 @@ data Extension = -- space between items, and disallow laziness | Ext_example_lists -- ^ Markdown-style numbered examples | Ext_all_symbols_escapable -- ^ Make all non-alphanumerics escapable + | Ext_angle_brackets_escapable -- ^ Make < and > escapable | Ext_intraword_underscores -- ^ Treat underscore inside word as literal | Ext_blank_before_blockquote -- ^ Require blank line before a blockquote | Ext_blank_before_header -- ^ Require blank line before a header @@ -204,7 +205,8 @@ phpMarkdownExtraExtensions = Set.fromList githubMarkdownExtensions :: Set Extension githubMarkdownExtensions = Set.fromList - [ Ext_pipe_tables + [ Ext_angle_brackets_escapable + , Ext_pipe_tables , Ext_raw_html , Ext_fenced_code_blocks , Ext_auto_identifiers diff --git a/src/Text/Pandoc/Readers/Markdown.hs b/src/Text/Pandoc/Readers/Markdown.hs index 68bc936b1..2337b733a 100644 --- a/src/Text/Pandoc/Readers/Markdown.hs +++ b/src/Text/Pandoc/Readers/Markdown.hs @@ -1507,6 +1507,8 @@ escapedChar' :: MarkdownParser Char escapedChar' = try $ do char '\\' (guardEnabled Ext_all_symbols_escapable >> satisfy (not . isAlphaNum)) + <|> (guardEnabled Ext_angle_brackets_escapable >> + oneOf "\\`*_{}[]()>#+-.!~\"<>") <|> oneOf "\\`*_{}[]()>#+-.!~\"" escapedChar :: MarkdownParser (F Inlines) -- cgit v1.2.3