diff --git a/docs/book.nix b/docs/book.nix index 3ebda96..c7878f3 100644 --- a/docs/book.nix +++ b/docs/book.nix @@ -5,7 +5,7 @@ nixdoc, writeShellApplication, python3, - dockerManifestMarkdown, + optionsMarkdown, }: stdenvNoCC.mkDerivation (finalAttrs: { name = "book"; @@ -23,7 +23,7 @@ stdenvNoCC.mkDerivation (finalAttrs: { buildPhase = '' runHook preBuild - ln -s ${dockerManifestMarkdown} src/docker-manifest.md + cp ${optionsMarkdown}/*.md src ln -s ${../README.md} src/README.md nixdoc \ --category "" \ diff --git a/docs/options.nix b/docs/options.nix index 235f525..b2f78f7 100644 --- a/docs/options.nix +++ b/docs/options.nix @@ -1,9 +1,8 @@ { lib, - pkgs, - module, - ... + nixosOptionsDoc, }: +module: let eval = lib.evalModules { modules = [ @@ -17,7 +16,7 @@ let ) ]; }; - docs = pkgs.nixosOptionsDoc { + docs = nixosOptionsDoc { inherit (eval) options; # hide /nix/store/* prefix transformOptions = opt: lib.removeAttrs opt [ "declarations" ]; diff --git a/modules/docs.nix b/modules/docs.nix index fbed4dd..1598cee 100644 --- a/modules/docs.nix +++ b/modules/docs.nix @@ -1,14 +1,23 @@ -{ ... }: +{ lib, ... }: { perSystem = { pkgs, config, ... }: + let + mkOptions = pkgs.callPackage ../docs/options.nix { }; + mkOptionLinks = lib.mapAttrsToList ( + name: value: { + name = "${name}.md"; + path = mkOptions value; + } + ); + in { packages = { - dockerManifestMarkdown = pkgs.callPackage ../docs/options.nix { - module = ../src/docker-manifest/module.nix; - }; + optionsMarkdown = pkgs.linkFarm "options-markdown" (mkOptionLinks { + docker-manifest = ../src/docker-manifest/module.nix; + }); book = pkgs.callPackage ../docs/book.nix { - inherit (config.packages) dockerManifestMarkdown; + inherit (config.packages) optionsMarkdown; }; docs = config.packages.book; };