{ lib, stdenvNoCC, # build inputs nixos-render-docs, documentation-highlighter, # nrd configuration manpageUrls, revision, options, outputPath ? "share/doc/nvf", }: stdenvNoCC.mkDerivation { name = "nvf-manual"; src = builtins.path { path = lib.sourceFilesBySuffices ./manual [".md"]; name = "nvf-manual"; }; nativeBuildInputs = [nixos-render-docs]; buildPhase = '' mkdir -p out/{highlightjs,media} cp -vt out/highlightjs \ ${documentation-highlighter}/highlight.pack.js \ ${documentation-highlighter}/LICENSE \ ${documentation-highlighter}/mono-blue.css \ ${documentation-highlighter}/loader.js substituteInPlace ./options.md \ --subst-var-by \ OPTIONS_JSON \ ${options.nvf}/share/doc/nixos/options.json substituteInPlace ./manual.md \ --subst-var-by \ NVF_VERSION \ ${revision} # copy stylesheet cp ${./static/style.css} out/style.css # copy release notes cp -vr ${./release-notes} release-notes # generate manual from nixos-render-docs manual html \ --manpage-urls ${manpageUrls} \ --revision ${lib.trivial.revisionWithDefault revision} \ --stylesheet style.css \ --script highlightjs/highlight.pack.js \ --script highlightjs/loader.js \ --toc-depth 2 \ --section-toc-depth 1 \ manual.md \ out/index.xhtml ''; installPhase = '' dest="$out/${outputPath}" mkdir -p "$(dirname "$dest")" mv out "$dest" mkdir -p $out/nix-support/ echo "doc manual $dest index.html" >> $out/nix-support/hydra-build-products ''; }