about summary refs log tree commit diff
path: root/doc
diff options
context:
space:
mode:
authorRobert Hensing <roberth@users.noreply.github.com>2022-06-22 15:48:46 +0200
committerGitHub <noreply@github.com>2022-06-22 15:48:46 +0200
commitfa9c83ca7fbf5cde0db56e27406111cb5e5dbcdf (patch)
tree7e62acb814679c5f877ee2c48b1caa17557bc369 /doc
parent9d92bee00a9fb7a1174aa76c80bace3a9e5eeb12 (diff)
parent11b33fcdccf8d40738ba28f9e9eb7133559d9aa8 (diff)
Merge pull request #174460 from hercules-ci/module-docs-Nix-driven-location-links
make-options-doc: Support Nix-provided declaration links
Diffstat (limited to 'doc')
-rw-r--r--doc/doc-support/default.nix15
1 files changed, 15 insertions, 0 deletions
diff --git a/doc/doc-support/default.nix b/doc/doc-support/default.nix
index 7c00195ab3909..429c7a5fbe800 100644
--- a/doc/doc-support/default.nix
+++ b/doc/doc-support/default.nix
@@ -1,5 +1,8 @@
 { pkgs ? (import ../.. {}), nixpkgs ? { }}:
 let
+  inherit (pkgs) lib;
+  inherit (lib) hasPrefix removePrefix;
+
   locationsXml = import ./lib-function-locations.nix { inherit pkgs nixpkgs; };
   functionDocs = import ./lib-function-docs.nix { inherit locationsXml pkgs; };
   version = pkgs.lib.version;
@@ -29,6 +32,18 @@ let
   optionsDoc = pkgs.nixosOptionsDoc {
     inherit (pkgs.lib.evalModules { modules = [ ../../pkgs/top-level/config.nix ]; }) 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" {}