summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/default.nix26
-rw-r--r--doc/doc-support/default.nix27
-rw-r--r--doc/using/configuration.chapter.md2
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
```