From a5414c29a06be9e00d1318cdeb609a42586a976a Mon Sep 17 00:00:00 2001 From: pennae Date: Sat, 24 Jun 2023 21:39:20 +0200 Subject: 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. --- doc/Makefile | 15 +------------ doc/default.nix | 70 +++++++++++++++++++++++++++++++++++---------------------- 2 files changed, 44 insertions(+), 41 deletions(-) diff --git a/doc/Makefile b/doc/Makefile index d5c0eeef69e2..23b27ba15f93 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -17,7 +17,7 @@ pandoc_flags = --extract-media=$(pandoc_media_dir) \ -f commonmark$(pandoc_commonmark_enabled_extensions)+smart .PHONY: all -all: validate format out/html/index.html out/epub/manual.epub +all: validate format out/html/index.html .PHONY: render-md render-md: ${MD_TARGETS} @@ -66,19 +66,6 @@ out/html/index.html: doc-support/result manual-full.xml style.css highlightjs cp doc-support/result/xsl/docbook/images/callouts/*.svg out/html/images/callouts/ chmod u+w -R out/html/ -out/epub/manual.epub: epub.xml - mkdir -p out/epub/scratch - xsltproc --nonet \ - --output out/epub/scratch/ \ - doc-support/result/epub.xsl \ - ./epub.xml - - echo "application/epub+zip" > mimetype - zip -0Xq "out/epub/manual.epub" mimetype - rm mimetype - cd "out/epub/scratch/" && zip -Xr9D "../manual.epub" * - rm -rf "out/epub/scratch/" - highlightjs: doc-support/result mkdir -p highlightjs cp -r doc-support/result/highlightjs/highlight.pack.js highlightjs/ 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 = '' + + + Nixpkgs Manual + Version ${pkgs.lib.version} + + + Temporarily unavailable + + The Nixpkgs manual is currently not available in EPUB format, + please use the HTML manual + instead. + + + If you've used the EPUB manual in the past and it has been useful to you, please + let us know. + + + + ''; + + 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 = '' - - - Nixpkgs Manual - Version ${pkgs.lib.version} - - - Temporarily unavailable - - The Nixpkgs manual is currently not available in EPUB format, - please use the HTML manual - instead. - - - If you've used the EPUB manual in the past and it has been useful to you, please - let us know. - - - - ''; - 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 -- cgit 1.4.1