summaryrefslogtreecommitdiff
path: root/support/make4ht/domfilters/make4ht-fixinlines.lua
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /support/make4ht/domfilters/make4ht-fixinlines.lua
Initial commit
Diffstat (limited to 'support/make4ht/domfilters/make4ht-fixinlines.lua')
-rw-r--r--support/make4ht/domfilters/make4ht-fixinlines.lua57
1 files changed, 57 insertions, 0 deletions
diff --git a/support/make4ht/domfilters/make4ht-fixinlines.lua b/support/make4ht/domfilters/make4ht-fixinlines.lua
new file mode 100644
index 0000000000..25489f59ca
--- /dev/null
+++ b/support/make4ht/domfilters/make4ht-fixinlines.lua
@@ -0,0 +1,57 @@
+local inline_elements = {
+ b=true,
+ big=true,
+ i=true,
+ small=true,
+ tt=true,
+ abbr=true,
+ acronym=true,
+ cite=true,
+ code=true,
+ dfn=true,
+ em=true,
+ kbd=true,
+ strong=true,
+ samp=true,
+ time=true,
+ var=true,
+ a=true,
+ bdo=true,
+ br=true,
+ img=true,
+ map=true,
+ object=true,
+ q=true,
+ script=true,
+ span=true,
+ sub=true,
+ sup=true,
+ button=true,
+ input=true,
+ label=true,
+ select=true,
+ textarea=true,
+ mn=true,
+ mi=true
+}
+
+
+local function fix_inlines(obj)
+ local settings = get_filter_settings "fixinlines"
+ local inline_elements = settings.inline_elements or inline_elements
+ local nodes = obj:get_path("html body")
+ obj:traverse_node_list(nodes, function(jej)
+ if jej._type == "ELEMENT" then
+ local name = string.lower(jej._name)
+ -- local parent = jej:get_parent_node()
+ if inline_elements[name] then
+ local new = obj:create_element("p" )
+ new:add_child_node(obj:copy_node(jej))
+ jej:replace_node(new)
+ end
+ end
+ end)
+ return obj
+end
+
+return fix_inlines