summaryrefslogtreecommitdiffstats
path: root/doc/doc-support
diff options
context:
space:
mode:
authorpennae <github@quasiparticle.net>2023-03-25 21:38:26 +0100
committerpennae <github@quasiparticle.net>2023-07-01 20:59:29 +0200
commitbe4d19ff1a9a327ae805fdb344470ed6450256fc (patch)
treefa5f0b01cc0f081d16d3aef6d9af84c318151c00 /doc/doc-support
parentb521f451a3b2dcee1c72cd11a87d14249b125ce9 (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.nix5
-rw-r--r--doc/doc-support/lib-function-docs.nix17
-rw-r--r--doc/doc-support/lib-function-locations.nix38
3 files changed, 22 insertions, 38 deletions
diff --git a/doc/doc-support/default.nix b/doc/doc-support/default.nix
index b1d55c10e82b..34f1982f5c96 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 1d9a056c529f..018b0bd5e945 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 1ee59648330a..e6794617fdd8 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>&lt;nixpkgs&gt;</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)