| 
									
										
										
										
											2014-08-24 11:02:23 +02:00
										 |  |  | with import ./.. { }; | 
					
						
							|  |  |  | with lib; | 
					
						
							| 
									
										
										
										
											2015-12-19 16:04:36 +01:00
										 |  |  | let | 
					
						
							|  |  |  |   sources = sourceFilesBySuffices ./. [".xml"]; | 
					
						
							|  |  |  |   sources-langs = ./languages-frameworks; | 
					
						
							|  |  |  | in | 
					
						
							| 
									
										
										
										
											2014-08-24 11:02:23 +02:00
										 |  |  | stdenv.mkDerivation { | 
					
						
							|  |  |  |   name = "nixpkgs-manual"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-09-30 17:21:08 +02:00
										 |  |  |   buildInputs = [ pandoc libxml2 libxslt ]; | 
					
						
							| 
									
										
										
										
											2014-08-24 11:02:23 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |   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' | 
					
						
							|  |  |  |   '';
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-09-30 17:21:08 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-12-21 10:50:37 +01:00
										 |  |  |   buildCommand = let toDocbook = { useChapters ? false, inputFile, outputFile }: | 
					
						
							|  |  |  |     let | 
					
						
							|  |  |  |       extraHeader = ''xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" ''; | 
					
						
							|  |  |  |     in ''
 | 
					
						
							|  |  |  |       { | 
					
						
							|  |  |  |         pandoc '${inputFile}' -w docbook ${optionalString useChapters "--chapters"} \ | 
					
						
							|  |  |  |           | 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 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   ''
 | 
					
						
							| 
									
										
										
										
											2015-12-19 16:04:36 +01:00
										 |  |  |     ln -s '${sources}/'*.xml . | 
					
						
							|  |  |  |     mkdir ./languages-frameworks | 
					
						
							|  |  |  |     cp -s '${sources-langs}'/* ./languages-frameworks
 | 
					
						
							| 
									
										
										
										
											2015-12-21 10:50:37 +01:00
										 |  |  |   ''
 | 
					
						
							|  |  |  |   + toDocbook { | 
					
						
							|  |  |  |       inputFile = ./haskell-users-guide.md; | 
					
						
							|  |  |  |       outputFile = "haskell-users-guide.xml"; | 
					
						
							|  |  |  |       useChapters = true; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   + toDocbook { | 
					
						
							|  |  |  |       inputFile = ./../pkgs/development/idris-modules/README.md; | 
					
						
							|  |  |  |       outputFile = "languages-frameworks/idris.xml"; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   + ''
 | 
					
						
							|  |  |  |     cat languages-frameworks/idris.xml | 
					
						
							| 
									
										
										
										
											2014-08-24 11:02:23 +02:00
										 |  |  |     echo ${nixpkgsVersion} > .version | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     xmllint --noout --nonet --xinclude --noxincludenode \ | 
					
						
							|  |  |  |       --relaxng ${docbook5}/xml/rng/docbook/docbook.rng \ | 
					
						
							|  |  |  |       manual.xml | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     dst=$out/share/doc/nixpkgs | 
					
						
							|  |  |  |     mkdir -p $dst | 
					
						
							|  |  |  |     xsltproc $xsltFlags --nonet --xinclude \ | 
					
						
							|  |  |  |       --output $dst/manual.html \ | 
					
						
							|  |  |  |       ${docbook5_xsl}/xml/xsl/docbook/xhtml/docbook.xsl \ | 
					
						
							|  |  |  |       ./manual.xml | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     cp ${./style.css} $dst/style.css | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-30 11:04:46 +02:00
										 |  |  |     mkdir -p $dst/images/callouts | 
					
						
							| 
									
										
										
										
											2015-09-30 16:44:52 +02:00
										 |  |  |     cp "${docbook5_xsl}/xml/xsl/docbook/images/callouts/"*.gif $dst/images/callouts/ | 
					
						
							| 
									
										
										
										
											2015-06-30 11:04:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-08-24 11:02:23 +02:00
										 |  |  |     mkdir -p $out/nix-support | 
					
						
							|  |  |  |     echo "doc manual $dst manual.html" >> $out/nix-support/hydra-build-products | 
					
						
							|  |  |  |   '';
 | 
					
						
							|  |  |  | } |