Jan Ulrich Hasecke
2022-06-30 f2839f8bf1bc2fcce725715e35551670a5d71e45
Lua-Skript

Das Skript erkennt die Ordnerhierarchie übergebener Dateien und passt
die Gliederungstiefe der ÜBerschriften entsprechend an.
Damit ist es uns möglich, die Dokumentation in hierarchischen Ordnern
und in Einzeldateien zu pflegen.
1 files added
38 ■■■■■ changed files
source/project.lua 38 ●●●●● patch | view | raw | blame | history
source/project.lua
New file
@@ -0,0 +1,38 @@
-- Dieses Skript iteriert durch die übergebenen Markdown-Dateien
-- und verändert die Gliederungstiefe der Überschrift
-- anhand der Ordnertiefe.
-- Es wird als Reader aufgerufen mit der --from/-f Option:
-- pandoc -f project.lua
--
-- Danke an Albert Krewinkel aus der pandoc Mailingliste
local format = 'markdown+smart'
function Reader (sources, opts)
  local doc = pandoc.Pandoc{}
  for _, source in ipairs(sources) do
    local path_components = #pandoc.path.split(source.name)
    -- last path component is the filename
    local depth = path_components - 1
    doc = doc .. pandoc.read(source, format, opts):walk {
      Header = function (h)
        h.level = h.level + depth
        return h
      end
    }
  end
  return doc
end
if PANDOC_VERSION <= {2, 18} then
  local mt = debug.getmetatable(pandoc.Pandoc{})
  mt.__concat = function (a, b)
    local result = pandoc.Pandoc(a.blocks, a.meta)
    result.blocks:extend(b.blocks)
    for k, v in ipairs(b.meta) do
      result.meta[k] = v
    end
    return result
  end
end