git.iko.soy/typeable/pandoc
on master help sign in
XML: change toEntities to emit numerical hex character references.
513058aJohn MacFarlane
src/Text/Pandoc/XML.hs+2−1
@@ -26,6 +26,7 @@ import Data.Text (Text)
26import qualified Data.Text as T
26import qualified Data.Text as T
27import Text.HTML.TagSoup.Entity (lookupEntity, htmlEntities)
27import Text.HTML.TagSoup.Entity (lookupEntity, htmlEntities)
28import Text.DocLayout
28import Text.DocLayout
29+import Text.Printf (printf)
29import qualified Data.Map as M
30import qualified Data.Map as M
30import Data.String
31import Data.String
31
32
@@ -89,7 +90,7 @@ inTagsIndented tagType = inTags True tagType []
89toEntities :: Text -> Text
90toEntities :: Text -> Text
90toEntities = T.concatMap go
91toEntities = T.concatMap go
91 where go c | isAscii c = T.singleton c
92 where go c | isAscii c = T.singleton c
92− | otherwise = T.pack ("&#" ++ show (ord c) ++ ";")
93+ | otherwise = T.pack (printf "&#x%X;" (ord c))
93
94
94-- | Escape all non-ascii characters using HTML5 entities, falling
95-- | Escape all non-ascii characters using HTML5 entities, falling
95-- back to numerical entities.
96-- back to numerical entities.
test/command/ascii.md+3−3
@@ -2,7 +2,7 @@
2pandoc -t html --ascii
2pandoc -t html --ascii
3äéıå
3äéıå
4^D
4^D
5−<p>&#228;&#233;&#305;&#229;</p>
5+<p>&#xE4;&#xE9;&#x131;&#xE5;</p>
6```
6```
7
7
8```
8```
@@ -33,7 +33,7 @@ pandoc -t docbook --ascii
33äéıå
33äéıå
34^D
34^D
35<para>
35<para>
36− &#228;&#233;&#305;&#229;
36+ &#xE4;&#xE9;&#x131;&#xE5;
37</para>
37</para>
38```
38```
39
39
@@ -41,7 +41,7 @@ pandoc -t docbook --ascii
41pandoc -t jats --ascii
41pandoc -t jats --ascii
42äéıå
42äéıå
43^D
43^D
44−<p>&#228;&#233;&#305;&#229;</p>
44+<p>&#xE4;&#xE9;&#x131;&#xE5;</p>
45```
45```
46
46
47```
47```