diff options
author | pennae <github@quasiparticle.net> | 2023-06-24 21:39:20 +0200 |
---|---|---|
committer | pennae <github@quasiparticle.net> | 2023-07-01 20:27:29 +0200 |
commit | a5414c29a06be9e00d1318cdeb609a42586a976a (patch) | |
tree | 125a3a67fe4abeb598bc6da569b242280c5086b1 /doc/default.nix | |
parent | 538b3d1b3c12cc07f00dcec374b16a469b3679ff (diff) |
doc: build placeholder epub in its own derivation
mostly to clean up the main manual build makefile and derivation a bit.
not technically necessary, but will make life easier later.
Diffstat (limited to 'doc/default.nix')
-rw-r--r-- | doc/default.nix | 70 |
1 files changed, 43 insertions, 27 deletions
diff --git a/doc/default.nix b/doc/default.nix index 86b4a8d97814..485af9bd0af9 100644 --- a/doc/default.nix +++ b/doc/default.nix @@ -1,6 +1,48 @@ { pkgs ? (import ./.. { }), nixpkgs ? { }}: let doc-support = import ./doc-support { inherit pkgs nixpkgs; }; + + epub = pkgs.runCommand "manual.epub" { + nativeBuildInputs = with pkgs; [ libxslt zip ]; + + epub = '' + <book xmlns="http://docbook.org/ns/docbook" + xmlns:xlink="http://www.w3.org/1999/xlink" + version="5.0" + xml:id="nixpkgs-manual"> + <info> + <title>Nixpkgs Manual</title> + <subtitle>Version ${pkgs.lib.version}</subtitle> + </info> + <chapter> + <title>Temporarily unavailable</title> + <para> + The Nixpkgs manual is currently not available in EPUB format, + please use the <link xlink:href="https://nixos.org/nixpkgs/manual">HTML manual</link> + instead. + </para> + <para> + If you've used the EPUB manual in the past and it has been useful to you, please + <link xlink:href="https://github.com/NixOS/nixpkgs/issues/237234">let us know</link>. + </para> + </chapter> + </book> + ''; + + passAsFile = [ "epub" ]; + } '' + mkdir scratch + xsltproc \ + --param chapter.autolabel 0 \ + --nonet \ + --output scratch/ \ + ${pkgs.docbook_xsl_ns}/xml/xsl/docbook/epub/docbook.xsl \ + $epubPath + + echo "application/epub+zip" > mimetype + zip -0Xq "$out" mimetype + cd scratch && zip -Xr9D "$out" * + ''; in pkgs.stdenv.mkDerivation { name = "nixpkgs-manual"; @@ -20,33 +62,7 @@ in pkgs.stdenv.mkDerivation { ln -s ${doc-support} ./doc-support/result ''; - epub = '' - <book xmlns="http://docbook.org/ns/docbook" - xmlns:xlink="http://www.w3.org/1999/xlink" - version="5.0" - xml:id="nixpkgs-manual"> - <info> - <title>Nixpkgs Manual</title> - <subtitle>Version ${pkgs.lib.version}</subtitle> - </info> - <chapter> - <title>Temporarily unavailable</title> - <para> - The Nixpkgs manual is currently not available in EPUB format, - please use the <link xlink:href="https://nixos.org/nixpkgs/manual">HTML manual</link> - instead. - </para> - <para> - If you've used the EPUB manual in the past and it has been useful to you, please - <link xlink:href="https://github.com/NixOS/nixpkgs/issues/237234">let us know</link>. - </para> - </chapter> - </book> - ''; - passAsFile = [ "epub" ]; - preBuild = '' - cp $epubPath epub.xml make -j$NIX_BUILD_CORES render-md ''; @@ -56,7 +72,7 @@ in pkgs.stdenv.mkDerivation { mv out/html "$dest" mv "$dest/index.html" "$dest/manual.html" - mv out/epub/manual.epub "$dest/nixpkgs-manual.epub" + cp ${epub} "$dest/nixpkgs-manual.epub" mkdir -p $out/nix-support/ echo "doc manual $dest manual.html" >> $out/nix-support/hydra-build-products |