| 
									
										
										
										
											2007-01-23 10:52:51 +00:00
										 |  |  |  | <?xml version="1.0"?> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | <xsl:stylesheet version="1.0" | 
					
						
							|  |  |  |  |                 xmlns:xsl="http://www.w3.org/1999/XSL/Transform" | 
					
						
							|  |  |  |  |                 xmlns:str="http://exslt.org/strings" | 
					
						
							| 
									
										
										
										
											2007-01-23 11:06:31 +00:00
										 |  |  |  |                 xmlns:xlink="http://www.w3.org/1999/xlink" | 
					
						
							| 
									
										
										
										
											2007-01-23 10:52:51 +00:00
										 |  |  |  |                 xmlns="http://docbook.org/ns/docbook" | 
					
						
							|  |  |  |  |                 extension-element-prefixes="str" | 
					
						
							|  |  |  |  |                 > | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   <xsl:output method='xml' encoding="UTF-8" /> | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-05 23:47:50 +00:00
										 |  |  |  |   <xsl:param name="revision" /> | 
					
						
							| 
									
										
										
										
											2016-06-03 15:55:01 +01:00
										 |  |  |  |   <xsl:param name="program" /> | 
					
						
							| 
									
										
										
										
											2009-10-05 23:47:50 +00:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-06-18 09:34:30 +02:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-01-23 10:52:51 +00:00
										 |  |  |  |   <xsl:template match="/expr/list"> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |       <variablelist> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         <xsl:for-each select="attrs"> | 
					
						
							| 
									
										
										
										
											2014-04-14 10:19:30 +02:00
										 |  |  |  |           <xsl:variable name="id" select="concat('opt-', str:replace(str:replace(str:replace(str:replace(attr[@name = 'name']/string/@value, '*', '_'), '<', '_'), '>', '_'), '?', '_'))" /> | 
					
						
							| 
									
										
										
										
											2007-01-23 10:52:51 +00:00
										 |  |  |  |           <varlistentry> | 
					
						
							| 
									
										
										
										
											2014-04-14 10:19:30 +02:00
										 |  |  |  |             <term xlink:href="#{$id}"> | 
					
						
							|  |  |  |  |               <xsl:attribute name="xml:id"><xsl:value-of select="$id"/></xsl:attribute> | 
					
						
							| 
									
										
										
										
											2014-03-08 19:33:41 +01:00
										 |  |  |  |               <option> | 
					
						
							| 
									
										
										
										
											2014-04-14 10:23:02 +02:00
										 |  |  |  |                 <xsl:value-of select="attr[@name = 'name']/string/@value" /> | 
					
						
							| 
									
										
										
										
											2014-03-08 19:33:41 +01:00
										 |  |  |  |               </option> | 
					
						
							| 
									
										
										
										
											2015-07-30 13:27:09 +02:00
										 |  |  |  |             </term> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             <listitem> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |               <para> | 
					
						
							|  |  |  |  |                 <xsl:value-of disable-output-escaping="yes" | 
					
						
							|  |  |  |  |                               select="attr[@name = 'description']/string/@value" /> | 
					
						
							|  |  |  |  |               </para> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |               <xsl:if test="attr[@name = 'type']"> | 
					
						
							|  |  |  |  |                 <para> | 
					
						
							|  |  |  |  |                   <emphasis>Type:</emphasis> | 
					
						
							|  |  |  |  |                   <xsl:text> </xsl:text> | 
					
						
							| 
									
										
										
										
											2015-07-30 13:44:08 +02:00
										 |  |  |  |                   <xsl:value-of select="attr[@name = 'type']/string/@value"/> | 
					
						
							| 
									
										
										
										
											2015-07-30 13:36:57 +02:00
										 |  |  |  |                   <xsl:if test="attr[@name = 'readOnly']/bool/@value = 'true'"> | 
					
						
							|  |  |  |  |                     <xsl:text> </xsl:text> | 
					
						
							|  |  |  |  |                     <emphasis>(read only)</emphasis> | 
					
						
							|  |  |  |  |                   </xsl:if> | 
					
						
							| 
									
										
										
										
											2015-07-30 13:27:09 +02:00
										 |  |  |  |                 </para> | 
					
						
							|  |  |  |  |               </xsl:if> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |               <xsl:if test="attr[@name = 'default']"> | 
					
						
							|  |  |  |  |                 <para> | 
					
						
							|  |  |  |  |                   <emphasis>Default:</emphasis> | 
					
						
							|  |  |  |  |                   <xsl:text> </xsl:text> | 
					
						
							|  |  |  |  |                   <xsl:apply-templates select="attr[@name = 'default']" mode="top" /> | 
					
						
							|  |  |  |  |                 </para> | 
					
						
							|  |  |  |  |               </xsl:if> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |               <xsl:if test="attr[@name = 'example']"> | 
					
						
							|  |  |  |  |                 <para> | 
					
						
							|  |  |  |  |                   <emphasis>Example:</emphasis> | 
					
						
							|  |  |  |  |                   <xsl:text> </xsl:text> | 
					
						
							|  |  |  |  |                   <xsl:choose> | 
					
						
							|  |  |  |  |                     <xsl:when test="attr[@name = 'example']/attrs[attr[@name = '_type' and string[@value = 'literalExample']]]"> | 
					
						
							|  |  |  |  |                       <programlisting><xsl:value-of select="attr[@name = 'example']/attrs/attr[@name = 'text']/string/@value" /></programlisting> | 
					
						
							|  |  |  |  |                     </xsl:when> | 
					
						
							|  |  |  |  |                     <xsl:otherwise> | 
					
						
							|  |  |  |  |                       <xsl:apply-templates select="attr[@name = 'example']" mode="top" /> | 
					
						
							|  |  |  |  |                     </xsl:otherwise> | 
					
						
							|  |  |  |  |                   </xsl:choose> | 
					
						
							|  |  |  |  |                 </para> | 
					
						
							|  |  |  |  |               </xsl:if> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |               <xsl:if test="count(attr[@name = 'declarations']/list/*) != 0"> | 
					
						
							|  |  |  |  |                 <para> | 
					
						
							|  |  |  |  |                   <emphasis>Declared by:</emphasis> | 
					
						
							|  |  |  |  |                 </para> | 
					
						
							|  |  |  |  |                 <xsl:apply-templates select="attr[@name = 'declarations']" /> | 
					
						
							|  |  |  |  |               </xsl:if> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |               <xsl:if test="count(attr[@name = 'definitions']/list/*) != 0"> | 
					
						
							|  |  |  |  |                 <para> | 
					
						
							|  |  |  |  |                   <emphasis>Defined by:</emphasis> | 
					
						
							|  |  |  |  |                 </para> | 
					
						
							|  |  |  |  |                 <xsl:apply-templates select="attr[@name = 'definitions']" /> | 
					
						
							|  |  |  |  |               </xsl:if> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             </listitem> | 
					
						
							| 
									
										
										
										
											2007-01-23 10:52:51 +00:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |           </varlistentry> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         </xsl:for-each> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |       </variablelist> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   </xsl:template> | 
					
						
							| 
									
										
										
										
											2007-01-23 11:39:02 +00:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-29 17:29:37 +01:00
										 |  |  |  |   <xsl:template match="*" mode="top"> | 
					
						
							|  |  |  |  |     <xsl:choose> | 
					
						
							|  |  |  |  |       <xsl:when test="string[contains(@value, '
')]"> | 
					
						
							|  |  |  |  | <programlisting> | 
					
						
							|  |  |  |  | <xsl:text>'' | 
					
						
							|  |  |  |  | </xsl:text><xsl:value-of select='str:replace(string/@value, "${", "''${")' /><xsl:text>''</xsl:text></programlisting> | 
					
						
							|  |  |  |  |       </xsl:when> | 
					
						
							|  |  |  |  |       <xsl:otherwise> | 
					
						
							|  |  |  |  |         <literal><xsl:apply-templates /></literal> | 
					
						
							|  |  |  |  |       </xsl:otherwise> | 
					
						
							|  |  |  |  |     </xsl:choose> | 
					
						
							|  |  |  |  |   </xsl:template> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-29 14:55:33 +01:00
										 |  |  |  |   <xsl:template match="null"> | 
					
						
							|  |  |  |  |     <xsl:text>null</xsl:text> | 
					
						
							|  |  |  |  |   </xsl:template> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-01-23 11:39:02 +00:00
										 |  |  |  |   <xsl:template match="string"> | 
					
						
							| 
									
										
										
										
											2013-10-29 16:52:40 +01:00
										 |  |  |  |     <xsl:choose> | 
					
						
							|  |  |  |  |       <xsl:when test="(contains(@value, '"') or contains(@value, '\')) and not(contains(@value, '
'))"> | 
					
						
							|  |  |  |  |         <xsl:text>''</xsl:text><xsl:value-of select='str:replace(@value, "${", "''${")' /><xsl:text>''</xsl:text> | 
					
						
							|  |  |  |  |       </xsl:when> | 
					
						
							|  |  |  |  |       <xsl:otherwise> | 
					
						
							| 
									
										
										
										
											2013-10-29 16:54:03 +01:00
										 |  |  |  |         <xsl:text>"</xsl:text><xsl:value-of select="str:replace(str:replace(str:replace(str:replace(@value, '\', '\\'), '"', '\"'), '
', '\n'), '$', '\$')" /><xsl:text>"</xsl:text> | 
					
						
							| 
									
										
										
										
											2013-10-29 16:52:40 +01:00
										 |  |  |  |       </xsl:otherwise> | 
					
						
							|  |  |  |  |     </xsl:choose> | 
					
						
							| 
									
										
										
										
											2007-01-23 11:39:02 +00:00
										 |  |  |  |   </xsl:template> | 
					
						
							| 
									
										
										
										
											2013-06-18 09:34:30 +02:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-01-23 11:39:02 +00:00
										 |  |  |  |   <xsl:template match="int"> | 
					
						
							|  |  |  |  |     <xsl:value-of select="@value" /> | 
					
						
							|  |  |  |  |   </xsl:template> | 
					
						
							| 
									
										
										
										
											2013-06-18 09:34:30 +02:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-01-23 11:39:02 +00:00
										 |  |  |  |   <xsl:template match="bool[@value = 'true']"> | 
					
						
							| 
									
										
										
										
											2007-11-21 14:39:52 +00:00
										 |  |  |  |     <xsl:text>true</xsl:text> | 
					
						
							| 
									
										
										
										
											2007-01-23 11:39:02 +00:00
										 |  |  |  |   </xsl:template> | 
					
						
							| 
									
										
										
										
											2013-06-18 09:34:30 +02:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-01-23 11:39:02 +00:00
										 |  |  |  |   <xsl:template match="bool[@value = 'false']"> | 
					
						
							| 
									
										
										
										
											2007-11-21 14:39:52 +00:00
										 |  |  |  |     <xsl:text>false</xsl:text> | 
					
						
							| 
									
										
										
										
											2007-01-23 11:39:02 +00:00
										 |  |  |  |   </xsl:template> | 
					
						
							| 
									
										
										
										
											2013-06-18 09:34:30 +02:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-01-23 11:39:02 +00:00
										 |  |  |  |   <xsl:template match="list"> | 
					
						
							|  |  |  |  |     [ | 
					
						
							|  |  |  |  |     <xsl:for-each select="*"> | 
					
						
							|  |  |  |  |       <xsl:apply-templates select="." /> | 
					
						
							|  |  |  |  |       <xsl:text> </xsl:text> | 
					
						
							|  |  |  |  |     </xsl:for-each> | 
					
						
							|  |  |  |  |     ] | 
					
						
							|  |  |  |  |   </xsl:template> | 
					
						
							| 
									
										
										
										
											2013-06-18 09:34:30 +02:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-23 19:46:11 +02:00
										 |  |  |  |   <xsl:template match="attrs[attr[@name = '_type' and string[@value = 'literalExample']]]"> | 
					
						
							|  |  |  |  |     <xsl:value-of select="attr[@name = 'text']/string/@value" /> | 
					
						
							|  |  |  |  |   </xsl:template> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-01-23 11:39:02 +00:00
										 |  |  |  |   <xsl:template match="attrs"> | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |     <xsl:for-each select="attr"> | 
					
						
							|  |  |  |  |       <xsl:value-of select="@name" /> | 
					
						
							|  |  |  |  |       <xsl:text> = </xsl:text> | 
					
						
							| 
									
										
										
										
											2007-11-21 14:39:52 +00:00
										 |  |  |  |       <xsl:apply-templates select="*" /><xsl:text>; </xsl:text> | 
					
						
							| 
									
										
										
										
											2007-01-23 11:39:02 +00:00
										 |  |  |  |     </xsl:for-each> | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |   </xsl:template> | 
					
						
							| 
									
										
										
										
											2013-06-18 09:34:30 +02:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-01-23 11:39:02 +00:00
										 |  |  |  |   <xsl:template match="derivation"> | 
					
						
							| 
									
										
										
										
											2013-10-30 16:19:07 +01:00
										 |  |  |  |     <replaceable>(build of <xsl:value-of select="attr[@name = 'name']/string/@value" />)</replaceable> | 
					
						
							| 
									
										
										
										
											2007-01-23 11:39:02 +00:00
										 |  |  |  |   </xsl:template> | 
					
						
							| 
									
										
										
										
											2009-09-18 15:10:37 +00:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |   <xsl:template match="attr[@name = 'declarations' or @name = 'definitions']"> | 
					
						
							| 
									
										
										
										
											2009-10-05 23:15:06 +00:00
										 |  |  |  |     <simplelist> | 
					
						
							| 
									
										
										
										
											2009-09-18 15:10:37 +00:00
										 |  |  |  |       <xsl:for-each select="list/string"> | 
					
						
							| 
									
										
										
										
											2009-10-05 23:47:50 +00:00
										 |  |  |  |         <member><filename> | 
					
						
							|  |  |  |  |           <!-- Hyperlink the filename either to the NixOS Subversion
 | 
					
						
							|  |  |  |  |           repository (if it’s a module and we have a revision number), | 
					
						
							|  |  |  |  |           or to the local filesystem. --> | 
					
						
							|  |  |  |  |           <xsl:choose> | 
					
						
							| 
									
										
										
										
											2013-10-23 19:32:19 +02:00
										 |  |  |  |             <xsl:when test="not(starts-with(@value, '/'))"> | 
					
						
							|  |  |  |  |               <xsl:choose> | 
					
						
							|  |  |  |  |                 <xsl:when test="$revision = 'local'"> | 
					
						
							|  |  |  |  |                   <xsl:attribute name="xlink:href">https://github.com/NixOS/nixpkgs/blob/master/<xsl:value-of select="@value"/></xsl:attribute> | 
					
						
							|  |  |  |  |                 </xsl:when> | 
					
						
							|  |  |  |  |                 <xsl:otherwise> | 
					
						
							|  |  |  |  |                   <xsl:attribute name="xlink:href">https://github.com/NixOS/nixpkgs/blob/<xsl:value-of select="$revision"/>/<xsl:value-of select="@value"/></xsl:attribute> | 
					
						
							|  |  |  |  |                 </xsl:otherwise> | 
					
						
							|  |  |  |  |               </xsl:choose> | 
					
						
							| 
									
										
										
										
											2009-10-05 23:47:50 +00:00
										 |  |  |  |             </xsl:when> | 
					
						
							| 
									
										
										
										
											2016-06-03 15:55:01 +01:00
										 |  |  |  |             <xsl:when test="$revision != 'local' and $program = 'nixops' and contains(@value, '/nix/')"> | 
					
						
							| 
									
										
										
										
											2013-06-18 09:34:30 +02:00
										 |  |  |  |               <xsl:attribute name="xlink:href">https://github.com/NixOS/nixops/blob/<xsl:value-of select="$revision"/>/nix/<xsl:value-of select="substring-after(@value, '/nix/')"/></xsl:attribute> | 
					
						
							| 
									
										
										
										
											2012-06-08 21:10:11 +00:00
										 |  |  |  |             </xsl:when> | 
					
						
							| 
									
										
										
										
											2009-10-05 23:47:50 +00:00
										 |  |  |  |             <xsl:otherwise> | 
					
						
							|  |  |  |  |               <xsl:attribute name="xlink:href">file://<xsl:value-of select="@value"/></xsl:attribute> | 
					
						
							|  |  |  |  |             </xsl:otherwise> | 
					
						
							|  |  |  |  |           </xsl:choose> | 
					
						
							| 
									
										
										
										
											2009-10-06 19:07:09 +00:00
										 |  |  |  |           <!-- Print the filename and make it user-friendly by replacing the
 | 
					
						
							|  |  |  |  |           /nix/store/<hash> prefix by the default location of nixos | 
					
						
							|  |  |  |  |           sources. --> | 
					
						
							| 
									
										
										
										
											2009-10-06 09:53:19 +00:00
										 |  |  |  |           <xsl:choose> | 
					
						
							| 
									
										
										
										
											2013-10-23 19:32:19 +02:00
										 |  |  |  |             <xsl:when test="not(starts-with(@value, '/'))"> | 
					
						
							|  |  |  |  |               <nixpkgs/<xsl:value-of select="@value"/>> | 
					
						
							| 
									
										
										
										
											2009-10-06 09:53:19 +00:00
										 |  |  |  |             </xsl:when> | 
					
						
							| 
									
										
										
										
											2013-06-18 09:34:30 +02:00
										 |  |  |  |             <xsl:when test="contains(@value, 'nixops') and contains(@value, '/nix/')"> | 
					
						
							|  |  |  |  |               <nixops/<xsl:value-of select="substring-after(@value, '/nix/')"/>> | 
					
						
							| 
									
										
										
										
											2012-06-08 21:10:11 +00:00
										 |  |  |  |             </xsl:when> | 
					
						
							| 
									
										
										
										
											2009-10-06 09:53:19 +00:00
										 |  |  |  |             <xsl:otherwise> | 
					
						
							|  |  |  |  |               <xsl:value-of select="@value" /> | 
					
						
							|  |  |  |  |             </xsl:otherwise> | 
					
						
							|  |  |  |  |           </xsl:choose> | 
					
						
							| 
									
										
										
										
											2009-10-05 23:47:50 +00:00
										 |  |  |  |         </filename></member> | 
					
						
							| 
									
										
										
										
											2009-09-18 15:10:37 +00:00
										 |  |  |  |       </xsl:for-each> | 
					
						
							| 
									
										
										
										
											2009-10-05 23:15:06 +00:00
										 |  |  |  |     </simplelist> | 
					
						
							| 
									
										
										
										
											2013-06-18 09:34:30 +02:00
										 |  |  |  |   </xsl:template> | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-08-09 16:21:33 +02:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |   <xsl:template match="function"> | 
					
						
							|  |  |  |  |     <xsl:text>λ</xsl:text> | 
					
						
							|  |  |  |  |   </xsl:template> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-01-23 10:52:51 +00:00
										 |  |  |  | </xsl:stylesheet> |