From 3c36091e77e72aa582c29594048a092b63eae83c Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Wed, 15 Sep 2021 03:01:59 +0000 Subject: CTAN sync 202109150301 --- macros/luatex/generic/luaxml/README | 2 +- macros/luatex/generic/luaxml/luaxml-domobject.lua | 12 ++++++++++++ .../luatex/generic/luaxml/luaxml-parse-query.lua | 5 +++-- macros/luatex/generic/luaxml/luaxml.pdf | Bin 118190 -> 118178 bytes macros/luatex/generic/luaxml/luaxml.tex | 2 +- 5 files changed, 17 insertions(+), 4 deletions(-) (limited to 'macros/luatex') diff --git a/macros/luatex/generic/luaxml/README b/macros/luatex/generic/luaxml/README index e41f3100ea..bea8ba60fc 100644 --- a/macros/luatex/generic/luaxml/README +++ b/macros/luatex/generic/luaxml/README @@ -28,7 +28,7 @@ Author ------ Michal Hoftich Email: michal.h21@gmail.com -Version: v0.1o, 2021-07-23 +Version: v0.1p, 2021-09-10 Original authors: Paul Chakravarti and Manoel Campos (http://manoelcampos.com) diff --git a/macros/luatex/generic/luaxml/luaxml-domobject.lua b/macros/luatex/generic/luaxml/luaxml-domobject.lua index 7829c13b1e..a5c0d29fee 100644 --- a/macros/luatex/generic/luaxml/luaxml-domobject.lua +++ b/macros/luatex/generic/luaxml/luaxml-domobject.lua @@ -392,6 +392,17 @@ local parse = function( return false, msg end + -- restore correct links to parent elements + local function fix_parents(el) + for k,v in ipairs(el._children or {}) do + if v:is_element() then + v._parent = el + fix_parents(v) + end + end + end + + --- Add child node to the current node function DOM_Object:add_child_node( child, --- element to be inserted as a current node child @@ -399,6 +410,7 @@ local parse = function( ) local parent = self child._parent = parent + fix_parents(child) if position then table.insert(parent._children, position, child) else diff --git a/macros/luatex/generic/luaxml/luaxml-parse-query.lua b/macros/luatex/generic/luaxml/luaxml-parse-query.lua index 17ddeb82c5..9ed2aa9385 100644 --- a/macros/luatex/generic/luaxml/luaxml-parse-query.lua +++ b/macros/luatex/generic/luaxml/luaxml-parse-query.lua @@ -18,10 +18,11 @@ local white = S(" \t\n") ^ 0 -- luaxml doesn't support XML namespaces and elements must be queried using -- dom:query_selector("namespace|element") local word = (alphanum + S("_-") + S("|")) ^ 1 +local attr_word = (alphanum + S("_-") + S("|:")) ^ 1 local combinators = S(">~+") -local attr_name = (alphanum + S("_-")) ^ 1 +local attr_name = (alphanum + S("_-:")) ^ 1 local attr_function = S("~|^$*") ^ 0 local attr_content = C((P(1) - quotes) ^ 1) @@ -45,7 +46,7 @@ parse_query = function(query) local first_of_type = P(":first-of-type") / mark("first-of-type") local last = P(":last-child") / mark("last-child") local last_of_type = P(":last-of-type") / mark("last-of-type") - local attr = P("[") * C(word) * P("]") / mark("attr") + local attr = P("[") * C(attr_word) * P("]") / mark("attr") local attr_value = P("[") * C(attr_name ) * C(attr_function)* P("=") * quotes * attr_content * quotes * P("]") / mark("attr_value") local combinator = C(combinators) / mark("combinator") local selector = Ct((any + nth + first + first_of_type + last + last_of_type + tag + cls + id + attr + attr_value + combinator) ^ 1) diff --git a/macros/luatex/generic/luaxml/luaxml.pdf b/macros/luatex/generic/luaxml/luaxml.pdf index ee61139644..89f9c3d1ed 100644 Binary files a/macros/luatex/generic/luaxml/luaxml.pdf and b/macros/luatex/generic/luaxml/luaxml.pdf differ diff --git a/macros/luatex/generic/luaxml/luaxml.tex b/macros/luatex/generic/luaxml/luaxml.tex index 1030422db9..562a298cb0 100644 --- a/macros/luatex/generic/luaxml/luaxml.tex +++ b/macros/luatex/generic/luaxml/luaxml.tex @@ -7,7 +7,7 @@ \usepackage{framed} % Version is defined in the makefile, use default values when compiled directly \ifdefined\version\else -\def\version{v0.1o} +\def\version{v0.1p} \let\gitdate\date \fi \newcommand\modulename[1]{\subsection{#1}\label{sec:#1}} -- cgit v1.2.3