diff options
author | Jan Tojnar <jtojnar@gmail.com> | 2021-07-12 04:38:41 +0200 |
---|---|---|
committer | Jan Tojnar <jtojnar@gmail.com> | 2021-07-12 22:57:28 +0200 |
commit | a49d36b979104205d016bb67d5ad6391df43e9ed (patch) | |
tree | 2225262eb047e66a032bec70fb8b5ffe605c5497 /doc/build-aux | |
parent | c29191d61bbba6ea370c56ba3216af90429af84f (diff) | |
download | nixlib-a49d36b979104205d016bb67d5ad6391df43e9ed.tar nixlib-a49d36b979104205d016bb67d5ad6391df43e9ed.tar.gz nixlib-a49d36b979104205d016bb67d5ad6391df43e9ed.tar.bz2 nixlib-a49d36b979104205d016bb67d5ad6391df43e9ed.tar.lz nixlib-a49d36b979104205d016bb67d5ad6391df43e9ed.tar.xz nixlib-a49d36b979104205d016bb67d5ad6391df43e9ed.tar.zst nixlib-a49d36b979104205d016bb67d5ad6391df43e9ed.zip |
doc: Move lua filters to subdirectory
Diffstat (limited to 'doc/build-aux')
-rw-r--r-- | doc/build-aux/pandoc-filters/docbook-writer/labelless-link-is-xref.lua | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/doc/build-aux/pandoc-filters/docbook-writer/labelless-link-is-xref.lua b/doc/build-aux/pandoc-filters/docbook-writer/labelless-link-is-xref.lua new file mode 100644 index 000000000000..67569b020916 --- /dev/null +++ b/doc/build-aux/pandoc-filters/docbook-writer/labelless-link-is-xref.lua @@ -0,0 +1,24 @@ +local function starts_with(start, str) + return str:sub(1, #start) == start +end + +local function escape_xml_arg(arg) + amps = arg:gsub('&', '&') + amps_quotes = amps:gsub('"', '"') + amps_quotes_lt = amps_quotes:gsub('<', '<') + + return amps_quotes_lt +end + +function Link(elem) + has_no_content = #elem.content == 0 + targets_anchor = starts_with('#', elem.target) + has_no_attributes = elem.title == '' and elem.identifier == '' and #elem.classes == 0 and #elem.attributes == 0 + + if has_no_content and targets_anchor and has_no_attributes then + -- xref expects idref without the pound-sign + target_without_hash = elem.target:sub(2, #elem.target) + + return pandoc.RawInline('docbook', '<xref linkend="' .. escape_xml_arg(target_without_hash) .. '" />') + end +end |