summaryrefslogtreecommitdiffstats
path: root/doc/default.nix
diff options
context:
space:
mode:
authorGraham Christensen <graham@grahamc.com>2018-03-24 11:36:10 -0400
committerGraham Christensen <graham@grahamc.com>2018-03-25 19:52:07 -0400
commit7e25ff7106f00bdca9957b1109e2fd9beca86ea1 (patch)
tree8b9954e280106dc30557f2d69540eeda63a1c8c1 /doc/default.nix
parent8c7be5927e8ba5c1925dad1d3af09624bd907116 (diff)
docs: Build with a makefile
Diffstat (limited to 'doc/default.nix')
-rw-r--r--doc/default.nix129
1 files changed, 24 insertions, 105 deletions
diff --git a/doc/default.nix b/doc/default.nix
index 1adcd7968204..b04c9c1b5566 100644
--- a/doc/default.nix
+++ b/doc/default.nix
@@ -7,116 +7,35 @@ in
pkgs.stdenv.mkDerivation {
name = "nixpkgs-manual";
-
buildInputs = with pkgs; [ pandoc libxml2 libxslt zip ];
- xsltFlags = ''
- --param section.autolabel 1
- --param section.label.includes.component.label 1
- --param html.stylesheet 'style.css'
- --param xref.with.number.and.title 1
- --param toc.section.depth 3
- --param admon.style '''
- --param callout.graphics.extension '.gif'
- '';
-
-
- buildCommand = let toDocbook = { useChapters ? false, inputFile, outputFile }:
- let
- extraHeader = lib.optionalString (!useChapters)
- ''xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" '';
- in ''
- {
- pandoc '${inputFile}' -w docbook+smart ${lib.optionalString useChapters "--top-level-division=chapter"} \
- -f markdown+smart \
- | sed -e 's|<ulink url=|<link xlink:href=|' \
- -e 's|</ulink>|</link>|' \
- -e 's|<sect. id=|<section xml:id=|' \
- -e 's|</sect[0-9]>|</section>|' \
- -e '1s| id=| xml:id=|' \
- -e '1s|\(<[^ ]* \)|\1${extraHeader}|'
- } > '${outputFile}'
- '';
- in
-
- ''
- ln -s '${sources}/'*.xml .
- mkdir ./languages-frameworks
- cp -s '${sources-langs}'/* ./languages-frameworks
- ''
- + toDocbook {
- inputFile = ./introduction.chapter.md;
- outputFile = "introduction.chapter.xml";
- useChapters = true;
- }
- + toDocbook {
- inputFile = ./shell.section.md;
- outputFile = "shell.section.xml";
- }
- + toDocbook {
- inputFile = ./languages-frameworks/python.section.md;
- outputFile = "./languages-frameworks/python.section.xml";
- }
- + toDocbook {
- inputFile = ./languages-frameworks/haskell.section.md;
- outputFile = "./languages-frameworks/haskell.section.xml";
- }
- + toDocbook {
- inputFile = ./languages-frameworks/idris.section.md;
- outputFile = "languages-frameworks/idris.section.xml";
- }
- + toDocbook {
- inputFile = ./languages-frameworks/node.section.md;
- outputFile = "languages-frameworks/node.section.xml";
- }
- + toDocbook {
- inputFile = ./languages-frameworks/r.section.md;
- outputFile = "languages-frameworks/r.section.xml";
- }
- + toDocbook {
- inputFile = ./languages-frameworks/rust.section.md;
- outputFile = "./languages-frameworks/rust.section.xml";
- }
- + toDocbook {
- inputFile = ./languages-frameworks/vim.section.md;
- outputFile = "./languages-frameworks/vim.section.xml";
- }
- + toDocbook {
- inputFile = ./languages-frameworks/emscripten.section.md;
- outputFile = "./languages-frameworks/emscripten.section.xml";
- }
- + ''
+ src = ./.;
+
+ XSL = "${pkgs.docbook5_xsl}/xml/xsl";
+ RNG = "${pkgs.docbook5}/xml/rng/docbook/docbook.rng";
+ xsltFlags = lib.concatStringsSep " " [
+ "--param section.autolabel 1"
+ "--param section.label.includes.component.label 1"
+ "--param html.stylesheet 'style.css'"
+ "--param xref.with.number.and.title 1"
+ "--param toc.section.depth 3"
+ "--param admon.style ''"
+ "--param callout.graphics.extension '.gif'"
+ ];
+
+ postPatch = ''
echo ${lib.nixpkgsVersion} > .version
+ '';
- # validate against relaxng schema
- xmllint --nonet --xinclude --noxincludenode manual.xml --output manual-full.xml
- ${pkgs.jing}/bin/jing ${pkgs.docbook5}/xml/rng/docbook/docbook.rng manual-full.xml
-
- dst=$out/share/doc/nixpkgs
- mkdir -p $dst
- xsltproc $xsltFlags --nonet --xinclude \
- --output $dst/manual.html \
- ${pkgs.docbook5_xsl}/xml/xsl/docbook/xhtml/docbook.xsl \
- ./manual.xml
-
- cp ${./style.css} $dst/style.css
-
- mkdir -p $dst/images/callouts
- cp "${pkgs.docbook5_xsl}/xml/xsl/docbook/images/callouts/"*.gif $dst/images/callouts/
-
- mkdir -p $out/nix-support
- echo "doc manual $dst manual.html" >> $out/nix-support/hydra-build-products
+ installPhase = ''
+ dest="$out/share/doc/nixpkgs"
+ mkdir -p "$(dirname "$dest")"
+ mv out/html "$dest"
+ mv "$dest/index.html" "$dest/manual.html"
- xsltproc $xsltFlags --nonet --xinclude \
- --output $dst/epub/ \
- ${pkgs.docbook5_xsl}/xml/xsl/docbook/epub/docbook.xsl \
- ./manual.xml
+ mv out/epub/manual.epub "$dest/nixpkgs-manual.epub"
- cp -r $dst/images $dst/epub/OEBPS
- echo "application/epub+zip" > mimetype
- manual="$dst/nixpkgs-manual.epub"
- zip -0Xq "$manual" mimetype
- cd $dst/epub && zip -Xr9D "$manual" *
- rm -rf $dst/epub
+ mkdir -p $out/nix-support/
+ echo "doc manual $dest manual.html" >> $out/nix-support/hydra-build-products
'';
}