From 9e3e195dd45f298e3d0a66ef36a4e5763256c98f Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Fri, 11 Oct 2019 10:00:09 -0700 Subject: Fix `gfm_auto_identifiers` behavior with emojis. Closes #5813. Note that we also now use emoji names for emojis when `ascii_identifiers` is enabled. --- src/Text/Pandoc/Shared.hs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/Text/Pandoc') diff --git a/src/Text/Pandoc/Shared.hs b/src/Text/Pandoc/Shared.hs index 4ce5ba1d0..bcaa48ea1 100644 --- a/src/Text/Pandoc/Shared.hs +++ b/src/Text/Pandoc/Shared.hs @@ -463,8 +463,15 @@ isPara _ = False -- letters, digits, and the characters _-. inlineListToIdentifier :: Extensions -> [Inline] -> String inlineListToIdentifier exts = - dropNonLetter . filterAscii . toIdent . stringify + dropNonLetter . filterAscii . toIdent . stringify . walk unEmojify where + unEmojify :: [Inline] -> [Inline] + unEmojify + | extensionEnabled Ext_gfm_auto_identifiers exts || + extensionEnabled Ext_ascii_identifiers exts = walk unEmoji + | otherwise = id + unEmoji (Span ("",["emoji"],[("data-emoji",ename)]) _) = Str ename + unEmoji x = x dropNonLetter | extensionEnabled Ext_gfm_auto_identifiers exts = id | otherwise = dropWhile (not . isAlpha) -- cgit v1.2.3