Improved documentation generation, no more hacky sed/awk!
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
-- file: remove-declared-by.lua
|
||||
|
||||
function Para(elem)
|
||||
-- Check if the first element of the paragraph is Emph (italic)
|
||||
if #elem.content >= 1 and elem.content[1].t == "Emph" then
|
||||
-- Convert the first element to plain text to check its content
|
||||
local firstText = pandoc.utils.stringify(elem.content[1])
|
||||
local isExample = firstText:find("^Example:")
|
||||
local isDefault = firstText:find("^Default:")
|
||||
|
||||
-- Check if the text starts with "Declared by:"
|
||||
if isExample or isDefault then
|
||||
local newElems = {}
|
||||
for i, el in ipairs(elem.content) do
|
||||
if el.t == "Code" then
|
||||
-- Convert inline code to fenced code block and add it to new elements
|
||||
-- Note: This will be outside the paragraph due to block-level constraint
|
||||
local addedSpaces = string.gsub(el.text, "^", " ");
|
||||
table.insert(newElems, pandoc.CodeBlock(addedSpaces, pandoc.Attr("", {"nix"})))
|
||||
else
|
||||
-- Keep other elements as inline, to be added to a new paragraph
|
||||
table.insert(newElems, el)
|
||||
end
|
||||
end
|
||||
-- Replace paragraph with new elements (mixing inline and block-level elements isn't directly possible, so this part needs rethinking)
|
||||
return newElems
|
||||
end
|
||||
end
|
||||
-- Otherwise, return the paragraph unmodified
|
||||
return elem
|
||||
end
|
||||
Reference in New Issue
Block a user