40 lines
930 B
Lua
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}
|
|
}
|