| 
									
										
										
										
											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" | 
					
						
							| 
									
										
											  
											
												nixos: Split paras by \n\n in option descriptions
What annoyed me for a long time was the fact, that in order to break
into a new paragraph, you need to insert </para><para> in the
description attribute of an option.
Now we will automatically create <para/> elements for every block that
is separated by two consecutive newlines.
I first tried to do this within options-to-docbook.xsl, but it turns
out[1] that this isn't directly possible with XSLT 1.0, so I added
another XSLT file that postprocesses the option descriptions that are
now enclosed in <nixos:option-description/> by options-to-docbook.xsl.
The splitting itself is a bit more involved, because we can't simply
split on every \n\n because we'd also split text nodes of elements, for
example:
  <screen><![CDATA[
    one line
    another one
  ]]></screen>
This would create one <para/> element for "one line" and another for
"another line", which we obviously don't want because <screen/> is used
to display verbatim contents of what a user is seeing on the screen.
So what we do instead is splitting *only* the top-level text nodes
within the outermost <para/> and leave all elements as-is. If there are
more than one <para/> elements at the top-level, we simply don't process
it at all, because the description then already contains </para><para>.
https://www.mhonarc.org/archive/html/xsl-list/2012-09/msg00319.html
Signed-off-by: aszlig <aszlig@nix.build>
Cc: @edolstra, @domenkozar
											
										 
											2018-09-02 05:05:34 +02:00
										 |  |  |  |                 xmlns:nixos="tag:nixos.org" | 
					
						
							| 
									
										
										
										
											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"> | 
					
						
							| 
									
										
										
										
											2018-09-01 16:15:29 -04:00
										 |  |  |  |     <appendix xml:id="appendix-configuration-options"> | 
					
						
							| 
									
										
										
										
											2018-04-28 04:00:55 -04:00
										 |  |  |  |       <title>Configuration Options</title> | 
					
						
							|  |  |  |  |       <variablelist xml:id="configuration-variable-list"> | 
					
						
							| 
									
										
										
										
											2007-01-23 10:52:51 +00:00
										 |  |  |  |         <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> | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
											  
											
												nixos: Split paras by \n\n in option descriptions
What annoyed me for a long time was the fact, that in order to break
into a new paragraph, you need to insert </para><para> in the
description attribute of an option.
Now we will automatically create <para/> elements for every block that
is separated by two consecutive newlines.
I first tried to do this within options-to-docbook.xsl, but it turns
out[1] that this isn't directly possible with XSLT 1.0, so I added
another XSLT file that postprocesses the option descriptions that are
now enclosed in <nixos:option-description/> by options-to-docbook.xsl.
The splitting itself is a bit more involved, because we can't simply
split on every \n\n because we'd also split text nodes of elements, for
example:
  <screen><![CDATA[
    one line
    another one
  ]]></screen>
This would create one <para/> element for "one line" and another for
"another line", which we obviously don't want because <screen/> is used
to display verbatim contents of what a user is seeing on the screen.
So what we do instead is splitting *only* the top-level text nodes
within the outermost <para/> and leave all elements as-is. If there are
more than one <para/> elements at the top-level, we simply don't process
it at all, because the description then already contains </para><para>.
https://www.mhonarc.org/archive/html/xsl-list/2012-09/msg00319.html
Signed-off-by: aszlig <aszlig@nix.build>
Cc: @edolstra, @domenkozar
											
										 
											2018-09-02 05:05:34 +02:00
										 |  |  |  |               <nixos:option-description> | 
					
						
							|  |  |  |  |                 <para> | 
					
						
							|  |  |  |  |                   <xsl:value-of disable-output-escaping="yes" | 
					
						
							|  |  |  |  |                                 select="attr[@name = 'description']/string/@value" /> | 
					
						
							|  |  |  |  |                 </para> | 
					
						
							|  |  |  |  |               </nixos:option-description> | 
					
						
							| 
									
										
										
										
											2015-07-30 13:27:09 +02:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |               <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> | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-20 21:57:33 +00:00
										 |  |  |  |               <xsl:if test="attr[@name = 'relatedPackages']"> | 
					
						
							|  |  |  |  |                 <para> | 
					
						
							|  |  |  |  |                   <emphasis>Related packages:</emphasis> | 
					
						
							|  |  |  |  |                   <xsl:text> </xsl:text> | 
					
						
							|  |  |  |  |                   <xsl:value-of disable-output-escaping="yes" | 
					
						
							|  |  |  |  |                                 select="attr[@name = 'relatedPackages']/string/@value" /> | 
					
						
							|  |  |  |  |                 </para> | 
					
						
							|  |  |  |  |               </xsl:if> | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-30 13:27:09 +02:00
										 |  |  |  |               <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> | 
					
						
							| 
									
										
										
										
											2018-04-28 04:00:55 -04:00
										 |  |  |  |     </appendix> | 
					
						
							| 
									
										
										
										
											2007-01-23 10:52:51 +00:00
										 |  |  |  |   </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> |