diff options
author | Hans Hagen <pragma@wxs.nl> | 2018-03-21 09:47:34 +0100 |
---|---|---|
committer | Context Git Mirror Bot <phg42.2a@gmail.com> | 2018-03-21 09:47:34 +0100 |
commit | f47b4939787074397c9ea37c1d892a1f7ccc7290 (patch) | |
tree | 7768be58efe0faab8e2dccb999686c6a674bf0d7 /tex/context/base/mkiv/lxml-tex.lua | |
parent | f923c957a3b322ae3ee8e7a0b20df1580869bee7 (diff) | |
download | context-f47b4939787074397c9ea37c1d892a1f7ccc7290.tar.gz |
2018-03-21 09:24:00
Diffstat (limited to 'tex/context/base/mkiv/lxml-tex.lua')
-rw-r--r-- | tex/context/base/mkiv/lxml-tex.lua | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/tex/context/base/mkiv/lxml-tex.lua b/tex/context/base/mkiv/lxml-tex.lua index 1413159ec..f1abab9e7 100644 --- a/tex/context/base/mkiv/lxml-tex.lua +++ b/tex/context/base/mkiv/lxml-tex.lua @@ -17,7 +17,7 @@ local lpegmatch = lpeg.match local P, S, C, Cc, Cs = lpeg.P, lpeg.S, lpeg.C, lpeg.Cc, lpeg.Cs local patterns = lpeg.patterns local setmetatableindex = table.setmetatableindex -local formatters = string.formatters +local formatters, strip = string.formatters, string.strip local tex, xml = tex, xml local lowerchars, upperchars, lettered = characters.lower, characters.upper, characters.lettered @@ -60,6 +60,7 @@ local xmlpushmatch = xml.pushmatch local xmlpopmatch = xml.popmatch local xmlstring = xml.string local xmlserializetotext = xml.serializetotext +local xmlrename = xml.rename local variables = interfaces and interfaces.variables or { } @@ -2579,3 +2580,20 @@ implement { actions = lxml.applyselectors, arguments = "string" } + +-- bonus: see x-lmx-html.mkiv + +function texfinalizers.xml(collected,name,setup) + local root = collected[1] + if not root then + return + end + if not name or name == "" then + report_lxml("missing name in xml finalizer") + return + end + xmlrename(root,name) + name = "lmx:" .. name + buffers.assign(name,strip(xmltostring(root))) + context.xmlprocessbuffer(name,name,setup or (name..":setup")) +end |