diff options
author | Context Git Mirror Bot <phg42.2a@gmail.com> | 2016-01-18 23:15:08 +0100 |
---|---|---|
committer | Context Git Mirror Bot <phg42.2a@gmail.com> | 2016-01-18 23:15:08 +0100 |
commit | 975f4f9f2d71d8021900955404f8b144ca6895f5 (patch) | |
tree | ce7dcd5288845a485bc8d457e6c705a87a020b10 /tex/context/base/mkiv/lxml-tex.lua | |
parent | e200230205ec1297f8d3ade3d491585f85d87fff (diff) | |
download | context-975f4f9f2d71d8021900955404f8b144ca6895f5.tar.gz |
2016-01-18 22:24:00
Diffstat (limited to 'tex/context/base/mkiv/lxml-tex.lua')
-rw-r--r-- | tex/context/base/mkiv/lxml-tex.lua | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/tex/context/base/mkiv/lxml-tex.lua b/tex/context/base/mkiv/lxml-tex.lua index 718b8f8c6..aad86ed6d 100644 --- a/tex/context/base/mkiv/lxml-tex.lua +++ b/tex/context/base/mkiv/lxml-tex.lua @@ -233,9 +233,13 @@ local _, ctxtextcapture_nop = context.newtexthandler { catcodes = ctxcatcodes, } -local xmltextcapture, xmlspacecapture, xmllinecapture, ctxtextcapture +local xmltextcapture = xmltextcapture_yes +local xmlspacecapture = xmlspacecapture_yes +local xmllinecapture = xmllinecapture_yes +local ctxtextcapture = ctxtextcapture_yes +local prefertexentities = true -function lxml.setescapedentities(v) +directives.register("lxml.entities.escaped",function(v) if v then xmltextcapture = xmltextcapture_yes xmlspacecapture = xmlspacecapture_yes @@ -247,11 +251,11 @@ function lxml.setescapedentities(v) xmllinecapture = xmllinecapture_nop ctxtextcapture = ctxtextcapture_nop end -end - -lxml.setescapedentities() -- off by default (for now) +end) -directives.register("lxml.escapedentities",lxml.setescapedentities) +directives.register("lxml.entities.prefertex",function(v) + prefertex = v +end) -- cdata @@ -464,8 +468,16 @@ function xml.load(filename,settings) return xmltable end -local function entityconverter(id,str,ent) -- todo ent optional - return xmlentities[str] or ent[str] or xmlprivatetoken(str) or "" -- roundtrip handler +-- local function entityconverter(id,str,ent) -- todo ent optional +-- return xmlentities[str] or ent[str] or xmlprivatetoken(str) or "" -- roundtrip handler +-- end + +local function entityconverter(id,str,ent) -- todo: disable tex entities when raw + if prefertexentities then + return xmlentities[str] or (texentities[str] and xmlprivatetoken(str)) or ent[str] or xmlprivatetoken(str) or "" -- roundtrip handler + else + return xmlentities[str] or ent[str] or (texentities[str] and xmlprivatetoken(str)) or xmlprivatetoken(str) or "" -- roundtrip handler + end end local function lxmlconvert(id,data,compress,currentresource) |