Files
nixarr/docs/pandoc/lua/indent-code-blocks.lua
T
rasmus-kirk f76b9bf1ca Updated docs
2024-03-04 14:05:58 +01:00

40 lines
930 B
Lua

-- pandoc_indent_nix_blocks.lua
-- This Pandoc Lua filter indents all lines in code blocks by 2 spaces
-- TODO: This indents _all_ code blocks, not just example and default...
--if dump_debug then
-- local debug_file = io.open("pandoc_debug.log", "a")
--end
--
--function debug(msg)
-- if debug_file then
-- debug_file:write(msg .. "\n")
-- end
--end
function CodeBlock(block)
-- Check if the code block language is unmarked
if #block.classes == 0 then
-- Split the block text into lines
local lines = {}
for line in block.text:gmatch("[^\r\n]+") do
table.insert(lines, line)
end
-- Indent each line by 2 spaces
for i, line in ipairs(lines) do
lines[i] = " " .. line
end
-- Join the lines back together and update the block text
block.text = table.concat(lines, '\n')
-- Return the modified block
return block
end
end
return {
{CodeBlock = CodeBlock}
}