{ pkgs, lib ? pkgs.lib, self, }: let # Evaluate the hm-module with a minimal mock config so nixosOptionsDoc # can introspect the option declarations without a real home-manager eval. evaledModules = lib.evalModules { modules = [ (import ./hm-module.nix self) { # Stub the home-manager / nixpkgs options the module touches options = { home.packages = lib.mkOption { type = lib.types.listOf lib.types.package; default = [ ]; }; xdg.configFile = lib.mkOption { type = lib.types.attrsOf lib.types.anything; default = { }; }; programs.niri.settings.layer-rules = lib.mkOption { type = lib.types.anything; default = [ ]; }; services.poweralertd.enable = lib.mkOption { type = lib.types.anything; default = false; }; systemd.user.services = lib.mkOption { type = lib.types.attrsOf lib.types.anything; default = { }; }; }; config._module.args = { inherit pkgs; }; } ]; }; optionsDoc = pkgs.nixosOptionsDoc { options = { programs.nova-shell = evaledModules.options.programs.nova-shell; }; documentType = "none"; warningsAreErrors = false; }; in pkgs.runCommand "nova-shell-docs" { } '' mkdir -p $out cp ${optionsDoc.optionsCommonMark} $out/options.md cat > $out/index.html <<'HEADER'
Auto-generated from the home-manager module declarations.
HEADER ${lib.getExe pkgs.pandoc} -f markdown -t html ${optionsDoc.optionsCommonMark} >> $out/index.html cat >> $out/index.html <<'FOOTER' FOOTER ''