diff options
author | pennae <github@quasiparticle.net> | 2023-03-25 21:38:26 +0100 |
---|---|---|
committer | pennae <github@quasiparticle.net> | 2023-07-01 20:59:29 +0200 |
commit | be4d19ff1a9a327ae805fdb344470ed6450256fc (patch) | |
tree | fa5f0b01cc0f081d16d3aef6d9af84c318151c00 /doc/doc-support | |
parent | b521f451a3b2dcee1c72cd11a87d14249b125ce9 (diff) |
doc: render nixpkgs manual with nrd
also updates nixdoc to 2.3.0. the nixdoc update is not a separate commit because that would leave the manual build broken for one commit, potentially breaking bisects and rebases.
Diffstat (limited to 'doc/doc-support')
-rw-r--r-- | doc/doc-support/default.nix | 5 | ||||
-rw-r--r-- | doc/doc-support/lib-function-docs.nix | 17 | ||||
-rw-r--r-- | doc/doc-support/lib-function-locations.nix | 38 |
3 files changed, 22 insertions, 38 deletions
diff --git a/doc/doc-support/default.nix b/doc/doc-support/default.nix index b1d55c10e82b6..34f1982f5c966 100644 --- a/doc/doc-support/default.nix +++ b/doc/doc-support/default.nix @@ -69,7 +69,7 @@ in pkgs.runCommand "doc-support" {} ( cd result ln -s ${functionDocs} ./function-docs - ln -s ${optionsDoc.optionsDocBook} ./config-options.docbook.xml + ln -s ${optionsDoc.optionsJSON} ./config-options.json ln -s ${pkgs.docbook5}/xml/rng/docbook/docbook.rng ./docbook.rng ln -s ${pkgs.docbook_xsl_ns}/xml/xsl ./xsl @@ -77,9 +77,6 @@ in pkgs.runCommand "doc-support" {} ln -s ${xhtml-xsl} ./xhtml.xsl ln -s ${./xmlformat.conf} ./xmlformat.conf - ln -s ${pkgs.documentation-highlighter} ./highlightjs - - echo -n "${version}" > ./version ) mv result $out '' diff --git a/doc/doc-support/lib-function-docs.nix b/doc/doc-support/lib-function-docs.nix index 1d9a056c529f6..018b0bd5e9453 100644 --- a/doc/doc-support/lib-function-docs.nix +++ b/doc/doc-support/lib-function-docs.nix @@ -5,7 +5,7 @@ with pkgs; let - locationsXml = import ./lib-function-locations.nix { inherit pkgs nixpkgs libsets; }; + locationsJSON = import ./lib-function-locations.nix { inherit pkgs nixpkgs libsets; }; in stdenv.mkDerivation { name = "nixpkgs-lib-docs"; @@ -16,26 +16,23 @@ stdenv.mkDerivation { function docgen { # TODO: wrap lib.$1 in <literal>, make nixdoc not escape it if [[ -e "../lib/$1.nix" ]]; then - nixdoc -c "$1" -d "lib.$1: $2" -f "$1.nix" > "$out/$1.xml" + nixdoc -c "$1" -d "lib.$1: $2" -l ${locationsJSON} -f "$1.nix" > "$out/$1.md" else - nixdoc -c "$1" -d "lib.$1: $2" -f "$1/default.nix" > "$out/$1.xml" + nixdoc -c "$1" -d "lib.$1: $2" -l ${locationsJSON} -f "$1/default.nix" > "$out/$1.md" fi - echo "<xi:include href='$1.xml' />" >> "$out/index.xml" + echo "$out/$1.md" >> "$out/index.md" } mkdir -p "$out" - cat > "$out/index.xml" << 'EOF' - <?xml version="1.0" encoding="utf-8"?> - <root xmlns:xi="http://www.w3.org/2001/XInclude"> + cat > "$out/index.md" << 'EOF' + ```{=include=} sections EOF ${lib.concatMapStrings ({ name, description }: '' docgen ${name} ${lib.escapeShellArg description} '') libsets} - echo "</root>" >> "$out/index.xml" - - ln -s ${locationsXml} $out/locations.xml + echo '```' >> "$out/index.md" ''; } diff --git a/doc/doc-support/lib-function-locations.nix b/doc/doc-support/lib-function-locations.nix index 1ee59648330aa..e6794617fdd89 100644 --- a/doc/doc-support/lib-function-locations.nix +++ b/doc/doc-support/lib-function-locations.nix @@ -58,28 +58,18 @@ let [ "-prime" ]; urlPrefix = "https://github.com/NixOS/nixpkgs/blob/${revision}"; - xmlstrings = (nixpkgsLib.strings.concatMapStrings - ({ name, value }: - '' - <section><title>${name}</title> - <para xml:id="${sanitizeId name}"> - Located at - <link - xlink:href="${urlPrefix}/${value.file}#L${builtins.toString value.line}">${value.file}:${builtins.toString value.line}</link> - in <literal><nixpkgs></literal>. - </para> - </section> - '') - relativeLocs); + jsonLocs = builtins.listToAttrs + (builtins.map + ({ name, value }: { + name = sanitizeId name; + value = + let + text = "${value.file}:${builtins.toString value.line}"; + target = "${urlPrefix}/${value.file}#L${builtins.toString value.line}"; + in + "[${text}](${target}) in `<nixpkgs>`"; + }) + relativeLocs); -in pkgs.writeText - "locations.xml" - '' - <section xmlns="http://docbook.org/ns/docbook" - xmlns:xlink="http://www.w3.org/1999/xlink" - version="5"> - <title>All the locations for every lib function</title> - <para>This file is only for inclusion by other files.</para> - ${xmlstrings} - </section> - '' +in +pkgs.writeText "locations.json" (builtins.toJSON jsonLocs) |