| 
									
										
										
										
											2018-03-24 11:36:10 -04:00
										 |  |  | MD_TARGETS=$(addsuffix .xml, $(basename $(wildcard ./*.md ./**/*.md))) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .PHONY: all | 
					
						
							| 
									
										
										
										
											2018-03-25 07:37:41 -04:00
										 |  |  | all: validate out/html/index.html out/epub/manual.epub | 
					
						
							| 
									
										
										
										
											2018-03-24 11:36:10 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-25 20:01:31 -04:00
										 |  |  | .PHONY: debug | 
					
						
							|  |  |  | debug: | 
					
						
							|  |  |  | 	nix-shell --run "xmloscopy --docbook5 ./manual.xml ./manual-full.xml" | 
					
						
							| 
									
										
										
										
											2018-03-26 08:24:27 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-24 11:36:10 -04:00
										 |  |  | .PHONY: clean | 
					
						
							|  |  |  | clean: | 
					
						
							|  |  |  | 	rm -f ${MD_TARGETS} .version manual-full.xml | 
					
						
							| 
									
										
										
										
											2018-03-26 08:24:27 -04:00
										 |  |  | 	rm -rf ./out/ ./highlightjs | 
					
						
							| 
									
										
										
										
											2018-03-24 11:36:10 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-25 07:37:41 -04:00
										 |  |  | .PHONY: validate | 
					
						
							| 
									
										
										
										
											2018-03-24 11:36:10 -04:00
										 |  |  | validate: manual-full.xml | 
					
						
							|  |  |  | 	jing "$$RNG" manual-full.xml | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-26 08:24:27 -04:00
										 |  |  | out/html/index.html: manual-full.xml style.css highlightjs | 
					
						
							| 
									
										
										
										
											2018-03-24 11:36:10 -04:00
										 |  |  | 	mkdir -p out/html | 
					
						
							| 
									
										
										
										
											2018-03-26 14:04:19 -04:00
										 |  |  | 	xsltproc ${xsltFlags} \
 | 
					
						
							| 
									
										
										
										
											2018-03-24 11:36:10 -04:00
										 |  |  | 		--nonet --xinclude \
 | 
					
						
							|  |  |  | 		--output $@ \
 | 
					
						
							|  |  |  | 		"$$XSL/docbook/xhtml/docbook.xsl" \
 | 
					
						
							|  |  |  | 		./manual-full.xml | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-26 08:24:27 -04:00
										 |  |  | 	mkdir -p out/html/highlightjs/ | 
					
						
							|  |  |  | 	echo "document.onreadystatechange = function () { \
 | 
					
						
							|  |  |  | 	  var listings = document.querySelectorAll('.programlisting, .screen'); \
 | 
					
						
							|  |  |  | 	  for (i = 0; i < listings.length; ++i) { \
 | 
					
						
							|  |  |  | 	     hljs.highlightBlock(listings[i]); \
 | 
					
						
							|  |  |  | 	  } \
 | 
					
						
							|  |  |  | 	} " > out/html/highlightjs/loader.js
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	cp -r highlightjs out/html/ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-26 14:45:00 -04:00
										 |  |  | 	cp ./overrides.css out/html/ | 
					
						
							| 
									
										
										
										
											2018-03-24 11:36:10 -04:00
										 |  |  | 	cp ./style.css out/html/style.css | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	mkdir -p out/html/images/callouts | 
					
						
							| 
									
										
										
										
											2018-03-26 14:04:19 -04:00
										 |  |  | 	cp "$$XSL/docbook/images/callouts/"*.svg out/html/images/callouts/ | 
					
						
							| 
									
										
										
										
											2018-03-26 08:24:27 -04:00
										 |  |  | 	chmod u+w -R out/html/ | 
					
						
							| 
									
										
										
										
											2018-03-24 11:36:10 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-25 07:37:41 -04:00
										 |  |  | out/epub/manual.epub: manual-full.xml | 
					
						
							| 
									
										
										
										
											2018-03-24 11:36:10 -04:00
										 |  |  | 	mkdir -p out/epub/scratch | 
					
						
							| 
									
										
										
										
											2018-03-26 14:04:19 -04:00
										 |  |  | 	xsltproc ${xsltFlags} --nonet \
 | 
					
						
							| 
									
										
										
										
											2018-03-24 11:36:10 -04:00
										 |  |  | 		--output out/epub/scratch/ \
 | 
					
						
							|  |  |  | 		"$$XSL/docbook/epub/docbook.xsl" \
 | 
					
						
							|  |  |  | 		./manual-full.xml | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-26 14:45:00 -04:00
										 |  |  | 	cp ./overrides.css out/epub/scratch/OEBPS | 
					
						
							| 
									
										
										
										
											2018-03-26 14:04:19 -04:00
										 |  |  | 	cp ./style.css out/epub/scratch/OEBPS | 
					
						
							|  |  |  | 	mkdir -p out/epub/scratch/OEBPS/images/callouts/ | 
					
						
							|  |  |  | 	cp "$$XSL/docbook/images/callouts/"*.svg out/epub/scratch/OEBPS/images/callouts/ | 
					
						
							| 
									
										
										
										
											2018-03-24 11:36:10 -04:00
										 |  |  | 	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/" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-26 08:24:27 -04:00
										 |  |  | highlightjs: | 
					
						
							|  |  |  | 	mkdir -p highlightjs | 
					
						
							|  |  |  | 	cp -r "$$HIGHLIGHTJS/highlight.pack.js" highlightjs/ | 
					
						
							|  |  |  | 	cp -r "$$HIGHLIGHTJS/LICENSE" highlightjs/ | 
					
						
							|  |  |  | 	cp -r "$$HIGHLIGHTJS/mono-blue.css" highlightjs/ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-24 11:36:10 -04:00
										 |  |  | 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  > $@ |