diff --git a/CHANGELOG.md b/CHANGELOG.md index c954a1a..7bcf5aa 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +- 2024/08/21 + + - try the HTML parser for DOM filters if XML parser fails. + - 2024/06/18 - changed default scaling in `dvisvgm_hashes` to 1.4. diff --git a/filters/make4ht-domfilter.lua b/filters/make4ht-domfilter.lua index 68dd5a4..a013842 100644 --- a/filters/make4ht-domfilter.lua +++ b/filters/make4ht-domfilter.lua @@ -46,9 +46,18 @@ local function filter(filters, name) return dom.parse(input, void_elements) end) if not status then - log:warning("DOM parsing of " .. filename .. " failed:") + log:warning("XML DOM parsing of " .. filename .. " failed:") log:warning(domobject) - return nil, "DOM parsing failed" + log:debug("Trying HTML DOM parsing") + status, domobject = pcall(function() + return dom.html_parse(input) + end) + if not status then + log:warning("HTML DOM parsing failed as well") + return nil, "DOM parsing failed" + else + log:warning("HTML DOM parsing OK, DOM filters will be executed") + end end for _,f in pairs(sequence) do domobject = f(domobject,parameters)