diff options
Diffstat (limited to 'home-manager/doc/default.nix')
-rw-r--r-- | home-manager/doc/default.nix | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/home-manager/doc/default.nix b/home-manager/doc/default.nix new file mode 100644 index 00000000000..acfa1f1e49c --- /dev/null +++ b/home-manager/doc/default.nix @@ -0,0 +1,72 @@ +{ pkgs }: + +let + + lib = pkgs.lib; + + nmdSrc = pkgs.fetchFromGitLab { + name = "nmd"; + owner = "rycee"; + repo = "nmd"; + rev = "9751ca5ef6eb2ef27470010208d4c0a20e89443d"; + sha256 = "0rbx10n8kk0bvp1nl5c8q79lz1w0p1b8103asbvwps3gmqd070hi"; + }; + + nmd = import nmdSrc { inherit pkgs; }; + + # Make sure the used package is scrubbed to avoid actually + # instantiating derivations. + scrubbedPkgsModule = { + imports = [ + { + _module.args = { + pkgs = lib.mkForce (nmd.scrubDerivations "pkgs" pkgs); + pkgs_i686 = lib.mkForce { }; + }; + } + ]; + }; + + hmModulesDocs = nmd.buildModulesDocs { + modules = + import ../modules/modules.nix { inherit lib pkgs; } + ++ [ scrubbedPkgsModule ]; + moduleRootPaths = [ ./.. ]; + mkModuleUrl = path: + "https://github.com/rycee/home-manager/blob/master/${path}#blob-path"; + channelName = "home-manager"; + docBook.id = "home-manager-options"; + }; + + docs = nmd.buildDocBookDocs { + pathName = "home-manager"; + modulesDocs = [ hmModulesDocs ]; + documentsDirectory = ./.; + chunkToc = '' + <toc> + <d:tocentry xmlns:d="http://docbook.org/ns/docbook" linkend="book-home-manager-manual"><?dbhtml filename="index.html"?> + <d:tocentry linkend="ch-options"><?dbhtml filename="options.html"?></d:tocentry> + <d:tocentry linkend="ch-tools"><?dbhtml filename="tools.html"?></d:tocentry> + <d:tocentry linkend="ch-release-notes"><?dbhtml filename="release-notes.html"?></d:tocentry> + </d:tocentry> + </toc> + ''; + }; + +in + +{ + inherit nmdSrc; + + options = { + json = hmModulesDocs.json.override { + path = "share/doc/home-manager/options.json"; + }; + }; + + manPages = docs.manPages; + + manual = { + inherit (docs) html htmlOpenTool; + }; +} |