docs/man: minor cleanup

- Move lua filter to separate file
- Use a subshell to write `nixvim-header.5`
- Use bash function to avoid repetition
This commit is contained in:
Matt Sturgeon 2025-05-15 17:06:39 +01:00
parent 2a4719f275
commit 61c44d7a7f
No known key found for this signature in database
GPG key ID: 4F91844CED1A8299
2 changed files with 32 additions and 29 deletions

View file

@ -1,4 +1,5 @@
{
lib,
options-json,
runCommand,
installShellFiles,
@ -6,42 +7,29 @@
pandoc,
}:
let
manualFilter = ''
local text = pandoc.text
function Header(el)
if el.level == 1 then
return el:walk {
Str = function(el)
return pandoc.Str(text.upper(el.text))
end
}
end
end
function Link(el)
return el.content
end
'';
manHeader =
let
mkMDSection = file: "<(pandoc --lua-filter <(echo \"$manualFilter\") -f gfm -t man ${file})";
in
runCommand "nixvim-general-doc-manpage"
{
nativeBuildInputs = [ pandoc ];
inherit manualFilter;
}
''
function mkMDSection {
file="$1"
pandoc --lua-filter ${./filter.lua} -f gfm -t man "$file"
}
mkdir -p $out
cat \
${./nixvim-header-start.5} \
${mkMDSection ../user-guide/helpers.md} \
${mkMDSection ../user-guide/faq.md} \
${mkMDSection ../user-guide/config-examples.md} \
${./nixvim-header-end.5} \
>$out/nixvim-header.5
(
cat ${./nixvim-header-start.5}
${lib.concatMapStringsSep "\n" (file: "mkMDSection ${file}") [
../user-guide/helpers.md
../user-guide/faq.md
../user-guide/config-examples.md
]}
cat ${./nixvim-header-end.5}
) >$out/nixvim-header.5
'';
in
# FIXME add platform specific docs to manpage

15
docs/man/filter.lua Normal file
View file

@ -0,0 +1,15 @@
local text = pandoc.text
function Header(el)
if el.level == 1 then
return el:walk({
Str = function(el)
return pandoc.Str(text.upper(el.text))
end,
})
end
end
function Link(el)
return el.content
end