From 70cbd8c6c07378c7bf8b6d224d904c33a430914f Mon Sep 17 00:00:00 2001 From: pennae Date: Fri, 23 Jun 2023 01:03:02 +0200 Subject: [PATCH] doc: pull option docs out of doc-support this leaves doc-support as a simple wrapper around function docs. this wrapper will go away very soon as well. --- doc/default.nix | 26 ++++++++++++++++++++++++++ doc/doc-support/default.nix | 27 --------------------------- doc/using/configuration.chapter.md | 2 +- 3 files changed, 27 insertions(+), 28 deletions(-) diff --git a/doc/default.nix b/doc/default.nix index b8b25c3b4e07..2133a06e0f46 100644 --- a/doc/default.nix +++ b/doc/default.nix @@ -1,5 +1,8 @@ { pkgs ? (import ./.. { }), nixpkgs ? { }}: let + inherit (pkgs) lib; + inherit (lib) hasPrefix removePrefix; + doc-support = import ./doc-support { inherit pkgs nixpkgs; }; epub = pkgs.runCommand "manual.epub" { @@ -43,6 +46,28 @@ let zip -0Xq "$out" mimetype cd scratch && zip -Xr9D "$out" * ''; + + # NB: This file describes the Nixpkgs manual, which happens to use module + # docs infra originally developed for NixOS. + optionsDoc = pkgs.nixosOptionsDoc { + inherit (pkgs.lib.evalModules { + modules = [ ../pkgs/top-level/config.nix ]; + class = "nixpkgsConfig"; + }) options; + documentType = "none"; + transformOptions = opt: + opt // { + declarations = + map + (decl: + if hasPrefix (toString ../..) (toString decl) + then + let subpath = removePrefix "/" (removePrefix (toString ../.) (toString decl)); + in { url = "https://github.com/NixOS/nixpkgs/blob/master/${subpath}"; name = subpath; } + else decl) + opt.declarations; + }; + }; in pkgs.stdenv.mkDerivation { name = "nixpkgs-manual"; @@ -54,6 +79,7 @@ in pkgs.stdenv.mkDerivation { postPatch = '' ln -s ${doc-support} ./doc-support/result + ln -s ${optionsDoc.optionsJSON}/share/doc/nixos/options.json ./config-options.json ''; buildPhase = '' diff --git a/doc/doc-support/default.nix b/doc/doc-support/default.nix index 4f013c8edf9d..082b585fc937 100644 --- a/doc/doc-support/default.nix +++ b/doc/doc-support/default.nix @@ -1,8 +1,5 @@ { pkgs ? (import ../.. {}), nixpkgs ? { }}: let - inherit (pkgs) lib; - inherit (lib) hasPrefix removePrefix; - libsets = [ { name = "asserts"; description = "assertion functions"; } { name = "attrsets"; description = "attribute set functions"; } @@ -19,29 +16,6 @@ let ]; functionDocs = import ./lib-function-docs.nix { inherit pkgs nixpkgs libsets; }; - version = pkgs.lib.version; - - # NB: This file describes the Nixpkgs manual, which happens to use module - # docs infra originally developed for NixOS. - optionsDoc = pkgs.nixosOptionsDoc { - inherit (pkgs.lib.evalModules { - modules = [ ../../pkgs/top-level/config.nix ]; - class = "nixpkgsConfig"; - }) options; - documentType = "none"; - transformOptions = opt: - opt // { - declarations = - map - (decl: - if hasPrefix (toString ../..) (toString decl) - then - let subpath = removePrefix "/" (removePrefix (toString ../..) (toString decl)); - in { url = "https://github.com/NixOS/nixpkgs/blob/master/${subpath}"; name = subpath; } - else decl) - opt.declarations; - }; - }; in pkgs.runCommand "doc-support" {} '' @@ -49,7 +23,6 @@ in pkgs.runCommand "doc-support" {} ( cd result ln -s ${functionDocs} ./function-docs - ln -s ${optionsDoc.optionsJSON} ./config-options.json ) mv result $out '' diff --git a/doc/using/configuration.chapter.md b/doc/using/configuration.chapter.md index 94678887a56a..8d246b117b05 100644 --- a/doc/using/configuration.chapter.md +++ b/doc/using/configuration.chapter.md @@ -188,7 +188,7 @@ The following attributes can be passed in [`config`](#chap-packageconfig). ```{=include=} options id-prefix: opt- list-id: configuration-variable-list -source: ../doc-support/result/config-options.json/share/doc/nixos/options.json +source: ../config-options.json ```