From 6fa03db360d273d35f35234e8858caa91d89edd7 Mon Sep 17 00:00:00 2001 From: Daniel Thwaites Date: Sat, 4 Feb 2023 12:07:06 +0000 Subject: [PATCH] Generate documentation for NixOS and Home Manager options :memo: --- docs/default.nix | 41 ++++++++++++++++++++++++++++++++++++----- docs/settings.nix | 26 ++++++++++++++++++++++++++ 2 files changed, 62 insertions(+), 5 deletions(-) create mode 100644 docs/settings.nix diff --git a/docs/default.nix b/docs/default.nix index 24222345..f8188b26 100644 --- a/docs/default.nix +++ b/docs/default.nix @@ -9,7 +9,8 @@

Stylix

@@ -25,22 +26,52 @@ tail -n+2 ${../README.md} >$out ''; } + { path = "options.html"; - title = "NixOS Options"; + title = "NixOS options"; body.docbook = let - nixosSystem = pkgsLib.nixosSystem { + configuration = pkgsLib.nixosSystem { inherit (pkgs) system; modules = [ - inputs.home-manager.nixosModules.home-manager inputs.self.nixosModules.stylix + ./settings.nix + { _module.check = false; } ]; }; in coricamuLib.makeOptionsDocBook { - inherit (nixosSystem) options; + inherit (configuration) options; + customFilter = option: builtins.elemAt option.loc 0 == "stylix"; + }; + } + + { + path = "options-hm.html"; + title = "Home Manager options"; + + body.docbook = + let + configuration = inputs.home-manager.lib.homeManagerConfiguration { + inherit pkgs; + modules = [ + inputs.self.homeManagerModules.stylix + ./settings.nix + { + home = { + homeDirectory = "/home/docs"; + stateVersion = "22.11"; + username = "docs"; + }; + } + ]; + check = false; + }; + in + coricamuLib.makeOptionsDocBook { + inherit (configuration) options; customFilter = option: builtins.elemAt option.loc 0 == "stylix"; }; } diff --git a/docs/settings.nix b/docs/settings.nix new file mode 100644 index 00000000..dc1ee73b --- /dev/null +++ b/docs/settings.nix @@ -0,0 +1,26 @@ +# Dummy values to avoid errors when generating the documentation. + +{ + stylix = { + image = "/a/b/c"; + + base16Scheme = { + base00 = "ffffff"; + base01 = "ffffff"; + base02 = "ffffff"; + base03 = "ffffff"; + base04 = "ffffff"; + base05 = "ffffff"; + base06 = "ffffff"; + base07 = "ffffff"; + base08 = "ffffff"; + base09 = "ffffff"; + base0A = "ffffff"; + base0B = "ffffff"; + base0C = "ffffff"; + base0D = "ffffff"; + base0E = "ffffff"; + base0F = "ffffff"; + }; + }; +}