summary refs log tree commit diff
path: root/doc/Makefile
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/Makefile
parent8c7be5927e8ba5c1925dad1d3af09624bd907116 (diff)
downloadnixlib-7e25ff7106f00bdca9957b1109e2fd9beca86ea1.tar
nixlib-7e25ff7106f00bdca9957b1109e2fd9beca86ea1.tar.gz
nixlib-7e25ff7106f00bdca9957b1109e2fd9beca86ea1.tar.bz2
nixlib-7e25ff7106f00bdca9957b1109e2fd9beca86ea1.tar.lz
nixlib-7e25ff7106f00bdca9957b1109e2fd9beca86ea1.tar.xz
nixlib-7e25ff7106f00bdca9957b1109e2fd9beca86ea1.tar.zst
nixlib-7e25ff7106f00bdca9957b1109e2fd9beca86ea1.zip
docs: Build with a makefile
Diffstat (limited to 'doc/Makefile')
-rw-r--r--doc/Makefile69
1 files changed, 69 insertions, 0 deletions
diff --git a/doc/Makefile b/doc/Makefile
new file mode 100644
index 000000000000..366d971d7819
--- /dev/null
+++ b/doc/Makefile
@@ -0,0 +1,69 @@
+MD_TARGETS=$(addsuffix .xml, $(basename $(wildcard ./*.md ./**/*.md)))
+
+.PHONY: all
+all: out/html/index.html out/epub/manual.epub
+
+.PHONY: clean
+clean:
+	rm -f ${MD_TARGETS} .version manual-full.xml
+	rm -rf ./out/
+
+validate: manual-full.xml
+	jing "$$RNG" manual-full.xml
+
+out/html/index.html: manual-full.xml style.css
+	mkdir -p out/html
+	xsltproc $$xsltFlags \
+		--nonet --xinclude \
+		--output $@ \
+		"$$XSL/docbook/xhtml/docbook.xsl" \
+		./manual-full.xml
+
+	cp ./style.css out/html/style.css
+
+	mkdir -p out/html/images/callouts
+	cp "$$XSL/docbook/images/callouts/"*.gif out/html/images/callouts/
+
+out/epub/manual.epub: manual-full.xml
+	mkdir -p out/epub/scratch
+	xsltproc $$xsltFlags --nonet \
+		--output out/epub/scratch/ \
+		"$$XSL/docbook/epub/docbook.xsl" \
+		./manual-full.xml
+
+	cp "$$XSL/docbook/images/callouts/"*.gif out/epub/scratch/OEBPS
+	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/"
+
+manual-full.xml: ${MD_TARGETS} .version *.xml
+	xmllint --nonet --xinclude --noxincludenode manual.xml --output manual-full.xml
+
+.version:
+	nix-instantiate --eval \
+		-E '(import ../lib).nixpkgsVersion' > .version
+
+%.section.xml: %.section.md
+	pandoc $^ -w docbook+smart \
+		-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|\(<[^ ]* \)|\1xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" |' \
+	| cat  > $@
+
+%.chapter.xml: %.chapter.md
+	pandoc $^ -w docbook+smart \
+		--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|' \
+	| cat  > $@