updated documentation process

This commit is contained in:
rasmus-kirk
2024-02-23 16:31:16 +01:00
parent 19db820823
commit f1e1b59ba5
4 changed files with 58 additions and 55 deletions
+4 -4
View File
@@ -36,12 +36,12 @@ jobs:
- run: nix build .#docs
- run: nix run .#pandoc
- run: mkdir -p out && cp ./result/* out
- name: Store pandoc
- name: Store docs
uses: ./.github/actions/upload-artifact
with:
name: pandoc
name: docs
path: ./out
deploy-docs:
@@ -57,7 +57,7 @@ jobs:
- name: Get nix build output
uses: ./.github/actions/download-artifact
with:
name: pandoc
name: docs
- name: Setup Pages
uses: actions/configure-pages@v3
+4
View File
@@ -122,6 +122,10 @@ nixarr = {
## Todo
### Documentation
Add a wiki with documentation and guides.
### DDNS
Add DDNS-support.
+49 -7
View File
@@ -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" {} ''
in pkgs.stdenv.mkDerivation {
name = "nixdocs2html";
src = ./.;
buildInputs = with pkgs; [ pandoc ];
phases = ["unpackPhase" "buildPhase"];
buildPhase = ''
tmpdir=$(mktemp -d)
mkdir -p $out
cat ${optionsDocNixos.optionsCommonMark} | tail -n +58 >> $out/nixos.md
sed -i '/\*Declared by:\*/{N;d;}' $out/nixos.md
''
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
'';
}
-43
View File
@@ -1,43 +0,0 @@
{pkgs, ...}:
pkgs.writeShellApplication {
name = "my-script";
runtimeInputs = with pkgs; [ pandoc ];
text = ''
tmpdir=$(mktemp -d)
# 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 result/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
mkdir -p out
cp docs/styling/style.css out
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
'';
}