about summary refs log tree commit diff
path: root/doc/doc-support
diff options
context:
space:
mode:
authorRobert Hensing <robert@roberthensing.nl>2022-06-15 00:44:09 +0200
committerRobert Hensing <robert@roberthensing.nl>2022-06-15 00:45:05 +0200
commit11b33fcdccf8d40738ba28f9e9eb7133559d9aa8 (patch)
tree88143ba763a9e7d5230efa88c731e080056ac6bb /doc/doc-support
parentcee66a8cd5288493c001376e9bf22825777d5326 (diff)
doc: Fix config options reference file links
Diffstat (limited to 'doc/doc-support')
-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" {}