Build html docs using mdbook

This commit is contained in:
Sandro - 2024-01-08 01:06:56 +01:00
parent 4577195f2e
commit a79f9379c2
Signed by: sandro
GPG Key ID: 3AF5A43A3EECC2E5
3 changed files with 27 additions and 6 deletions

View File

@ -27,7 +27,7 @@ jobs:
uses: cachix/install-nix-action@v24
- name: Build docs
run: nix build .#options-doc
run: nix build .#options-html
- name: Prepare assets for upload
run: cp -r --dereference --no-preserve=mode,ownership result/ public/

View File

@ -32,7 +32,7 @@
in
lib' // {
# some functions get promoted to be directly under libS
inherit (lib'.doc) mkModuleDoc;
inherit (lib'.doc) mkModuleDoc mkMdBook;
inherit (lib'.modules) mkOpinionatedOption mkRecursiveDefault;
inherit (lib'.ssh) mkPubKey;
};
@ -57,9 +57,15 @@
} // flake-utils.lib.eachDefaultSystem (system: let
libS = self.lib { config = { }; inherit lib; pkgs = nixpkgs.legacyPackages.${system}; };
in {
packages.options-doc = libS.mkModuleDoc {
module = self.nixosModule;
urlPrefix = "https://github.com/SuperSandro2000/nixos-modules/tree/master/";
};
packages = rec {
options-doc = libS.mkModuleDoc {
module = self.nixosModule;
urlPrefix = "https://github.com/SuperSandro2000/nixos-modules/tree/master/";
};
options-html = libS.mkMdBook {
projectName = "nixos-modules";
moduleDoc = options-doc;
};
};
});
}

View File

@ -24,4 +24,19 @@
-e 's|file\:///nix/store/.+\-source/(.+)\)|${url}/\1/default\.nix\)|g' \
> $out/options.md
'';
mkMdBook = { projectName, moduleDoc }: with pkgs; stdenv.mkDerivation {
name = "${projectName}-docs";
nativeBuildInputs = [ mdbook ];
buildCommand = ''
mkdir src
echo -e "[book]\ntitle=\"${projectName}\"" > src/book.toml
echo -e "# Summary\n\n- [Options](options.md)" > src/SUMMARY.md
ln -s ${moduleDoc}/options.md ./src
mdbook build
mv book $out
'';
};
}