Generate documentation for my modules
This commit is contained in:
@ -3,10 +3,11 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
}: {
|
}: {
|
||||||
# vital-synth = pkgs.callPackage ./vital-synth {}; # Kept as an example, don't know if I will fix this or keep using distrho
|
# 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;};
|
adwaita-for-steam = pkgs.callPackage ./adwaita-for-steam {src = inputs.adwaita-for-steam;};
|
||||||
dconf-editor-wrapped = pkgs.callPackage ./dconf-editor-wrapped {};
|
dconf-editor-wrapped = pkgs.callPackage ./dconf-editor-wrapped {};
|
||||||
dell-b1160w = pkgs.callPackage ./dell-b1160w {};
|
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 {};
|
spotdl-4_1_6 = pkgs.callPackage ./spotdl-4_1_6 {};
|
||||||
|
xdg-desktop-portal-termfilechooser = pkgs.callPackage ./xdg-desktop-portal-termfilechooser {};
|
||||||
}
|
}
|
||||||
|
63
derivations/modules-options-doc/default.nix
Normal file
63
derivations/modules-options-doc/default.nix
Normal 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
|
||||||
|
'';
|
||||||
|
}
|
@ -413,8 +413,13 @@ rec {
|
|||||||
|
|
||||||
# Use NixCommunity binary cache
|
# Use NixCommunity binary cache
|
||||||
cachix
|
cachix
|
||||||
|
|
||||||
|
# Generate documentation
|
||||||
|
modules-options-doc
|
||||||
];
|
];
|
||||||
|
|
||||||
|
home.file.".options-doc".source = "${pkgs.modules-options-doc}";
|
||||||
|
|
||||||
# Packages with extra options managed by HomeManager natively
|
# Packages with extra options managed by HomeManager natively
|
||||||
programs = {
|
programs = {
|
||||||
home-manager.enable = true;
|
home-manager.enable = true;
|
||||||
|
Reference in New Issue
Block a user