diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Text/Pandoc/XML.hs | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/Text/Pandoc/XML.hs b/src/Text/Pandoc/XML.hs index 169951591..4c5d8d351 100644 --- a/src/Text/Pandoc/XML.hs +++ b/src/Text/Pandoc/XML.hs @@ -114,9 +114,16 @@ toHtml5Entities = T.concatMap go Nothing -> T.pack ("&#" ++ show (ord c) ++ ";") html5EntityMap :: M.Map Char Text -html5EntityMap = M.fromList [(c, T.takeWhile (/=';') (T.pack ent)) - | (ent@(_:_), [c]) <- htmlEntities - , last ent == ';'] +html5EntityMap = foldr go mempty htmlEntities + where go (ent, s) entmap = + case s of + [c] -> M.insertWith + (\new old -> if T.length new > T.length old + then old + else new) c ent' entmap + where ent' = T.takeWhile (/=';') (T.pack ent) + _ -> entmap + -- Unescapes XML entities fromEntities :: String -> String |