1

Generate documentation for my modules

This commit is contained in:
2023-04-26 13:09:57 +02:00
parent 9a457490d4
commit e3e323924e
3 changed files with 71 additions and 2 deletions

View File

@ -3,10 +3,11 @@
pkgs,
}: {
# vital-synth = pkgs.callPackage ./vital-synth {}; # Kept as an example, don't know if I will fix this or keep using distrho
firefox-gnome-theme = pkgs.callPackage ./firefox-gnome-theme {src = inputs.firefox-gnome-theme;};
adwaita-for-steam = pkgs.callPackage ./adwaita-for-steam {src = inputs.adwaita-for-steam;};
dconf-editor-wrapped = pkgs.callPackage ./dconf-editor-wrapped {};
dell-b1160w = pkgs.callPackage ./dell-b1160w {};
xdg-desktop-portal-termfilechooser = pkgs.callPackage ./xdg-desktop-portal-termfilechooser {};
firefox-gnome-theme = pkgs.callPackage ./firefox-gnome-theme {src = inputs.firefox-gnome-theme;};
modules-options-doc = pkgs.callPackage ./modules-options-doc {};
spotdl-4_1_6 = pkgs.callPackage ./spotdl-4_1_6 {};
xdg-desktop-portal-termfilechooser = pkgs.callPackage ./xdg-desktop-portal-termfilechooser {};
}

View File

@ -0,0 +1,63 @@
{
stdenv,
lib,
pkgs,
...
}: let
# evaluate our options
eval = lib.evalModules {
modules = [
../../home/modules/audio/options.nix
../../home/modules/emacs/options.nix
../../home/modules/email/options.nix
../../home/modules/firefox/options.nix
../../home/modules/fish/options.nix
../../home/modules/flatpak/options.nix
../../home/modules/gaming/options.nix
../../home/modules/gnome/options.nix
../../home/modules/hyprland/options.nix
../../home/modules/kitty/options.nix
../../home/modules/misc/options.nix
../../home/modules/neovim/options.nix
../../home/modules/nextcloud/options.nix
../../home/modules/plasma/options.nix
../../home/modules/ranger/options.nix
];
};
# generate our docs
optionsDoc = pkgs.nixosOptionsDoc {
inherit (eval) options;
};
# create a derivation for capturing the markdown output
optionsDocMD = pkgs.runCommand "options-doc.md" {} ''
cat ${optionsDoc.optionsCommonMark} >> $out
'';
in
stdenv.mkDerivation {
src = ./.;
name = "modules-options-doc";
# depend on our options doc derivation
buildInput = [optionsDocMD];
# mkdocs dependencies
nativeBuildInputs = with pkgs; [
mkdocs
python310Packages.mkdocs-material
python310Packages.pygments
];
# symlink our generated docs into the correct folder before generating
buildPhase = ''
ln -s ${optionsDocMD} "./docs/nixos-options.md"
# generate the site
mkdocs build
'';
# copy the resulting output to the derivation's $out directory
installPhase = ''
mv site $out
'';
}

View File

@ -413,8 +413,13 @@ rec {
# Use NixCommunity binary cache
cachix
# Generate documentation
modules-options-doc
];
home.file.".options-doc".source = "${pkgs.modules-options-doc}";
# Packages with extra options managed by HomeManager natively
programs = {
home-manager.enable = true;