updated documentation process
This commit is contained in:
+50
-8
@@ -3,7 +3,6 @@
|
||||
pkgs,
|
||||
runCommand,
|
||||
nixosOptionsDoc,
|
||||
inputs,
|
||||
...
|
||||
}: let
|
||||
evalNixos = lib.evalModules {
|
||||
@@ -19,10 +18,53 @@
|
||||
optionsDocNixos = nixosOptionsDoc {
|
||||
inherit (evalNixos) options;
|
||||
};
|
||||
in
|
||||
# create a derivation for capturing the markdown output
|
||||
runCommand "options-doc.md" {} ''
|
||||
mkdir -p $out
|
||||
cat ${optionsDocNixos.optionsCommonMark} | tail -n +58 >> $out/nixos.md
|
||||
sed -i '/\*Declared by:\*/{N;d;}' $out/nixos.md
|
||||
''
|
||||
in pkgs.stdenv.mkDerivation {
|
||||
name = "nixdocs2html";
|
||||
src = ./.;
|
||||
buildInputs = with pkgs; [ pandoc ];
|
||||
phases = ["unpackPhase" "buildPhase"];
|
||||
buildPhase = ''
|
||||
tmpdir=$(mktemp -d)
|
||||
mkdir -p $out
|
||||
cp docs/styling/style.css $out
|
||||
|
||||
# Generate md docs
|
||||
cat ${optionsDocNixos.optionsCommonMark} | tail -n +58 >> "$tmpdir"/nixos.md
|
||||
|
||||
# Remove "Declared by" lines
|
||||
sed -i '/\*Declared by:\*/{N;d;}' "$tmpdir"/nixos.md
|
||||
|
||||
# Code blocks to nix code blocks
|
||||
# shellcheck disable=SC2016
|
||||
awk '
|
||||
/^```$/ {
|
||||
if (!block) {
|
||||
print "```nix"; # Start of a code block
|
||||
block = 1;
|
||||
} else {
|
||||
print "```"; # End of a code block
|
||||
block = 0;
|
||||
}
|
||||
next;
|
||||
}
|
||||
{ print } # Print all lines, including those inside code blocks
|
||||
' block=0 "$tmpdir"/nixos.md > "$tmpdir"/1.md
|
||||
# inline code "blocks" to nix code blocks
|
||||
# shellcheck disable=SC2016
|
||||
sed '/^`[^`]*`$/s/`\(.*\)`/```nix\n\1\n```/g' "$tmpdir"/1.md > "$tmpdir"/2.md
|
||||
# Remove bottom util-nixarr options
|
||||
sed '/util-nixarr/,$d' "$tmpdir"/2.md > "$tmpdir"/done.md
|
||||
|
||||
pandoc \
|
||||
--standalone \
|
||||
--highlight-style docs/styling/gruvbox.theme \
|
||||
--metadata title="Nixarr - Option Documentation" \
|
||||
--metadata date="$(date -u '+%Y-%m-%d - %H:%M:%S %Z')" \
|
||||
--css=style.css \
|
||||
-V lang=en \
|
||||
-V --mathjax \
|
||||
-f markdown+smart \
|
||||
-o $out/index.html \
|
||||
"$tmpdir"/done.md
|
||||
'';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user