local M = {} -- this extension covnerts links, tables of contents and other dynamic content in the ODT format to plain text local filter = require "make4ht-domfilter" -- this extension only works for the ODT format M.test = function(format) return format=="odt" end local function nodynamiccontent(dom) for _,link in ipairs(dom:query_selector("text|a")) do -- change links to spans link._name = "text:span" -- remove attributes link._attr = {} end for _, bibliography in ipairs(dom:query_selector("text|bibliography")) do -- remove links from bibliography -- use div instead of bibliography bibliography._name = "text:div" -- remove bibliography-source elements for _, source in ipairs(bibliography:query_selector("text:bibliography-source")) do source:remove_node() end for _, index in ipairs(bibliography:query_selector("text|index-body")) do -- use div instead of bibliography-entry index._name = "text:div" end end for _, toc in ipairs(dom:query_selector("text|table-of-content")) do -- remove links from toc -- use div instead of table-of-contents toc._name = "text:div" for _, entry in ipairs(toc:query_selector("text|index-body, text|index-title")) do -- use div instead of table-of-contents-entry entry._name = "text:div" end end return dom end M.modify_build = function(make) local process = filter({nodynamiccontent}, "nodynamiccontent") Make:match("4oo$",process) return make end return M