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-06 00:47:50 +01:00
|
|
|
|
<xsl:param name="revision" />
|
|
|
|
|
|
2007-01-23 11:39:02 +00:00
|
|
|
|
|
2007-01-23 10:52:51 +00:00
|
|
|
|
<xsl:template match="/expr/list">
|
|
|
|
|
|
|
|
|
|
<variablelist>
|
|
|
|
|
|
|
|
|
|
<xsl:for-each select="attrs">
|
|
|
|
|
|
|
|
|
|
<varlistentry>
|
|
|
|
|
<term>
|
|
|
|
|
<option>
|
2007-11-11 10:46:26 +00:00
|
|
|
|
<xsl:for-each select="attr[@name = 'name']/string">
|
2007-01-23 10:52:51 +00:00
|
|
|
|
<xsl:value-of select="@value" />
|
2007-11-11 10:46:26 +00:00
|
|
|
|
<xsl:if test="position() != last()">.</xsl:if>
|
2007-01-23 10:52:51 +00:00
|
|
|
|
</xsl:for-each>
|
|
|
|
|
</option>
|
|
|
|
|
</term>
|
|
|
|
|
|
2007-01-23 11:39:02 +00:00
|
|
|
|
<listitem>
|
|
|
|
|
|
|
|
|
|
<para>
|
|
|
|
|
<xsl:value-of disable-output-escaping="yes"
|
|
|
|
|
select="attr[@name = 'description']/string/@value" />
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
|
|
<para>
|
|
|
|
|
<emphasis>Default:</emphasis>
|
2009-07-14 16:47:03 +01:00
|
|
|
|
<xsl:text> </xsl:text>
|
2007-01-23 11:39:02 +00:00
|
|
|
|
<xsl:choose>
|
|
|
|
|
<xsl:when test="attr[@name = 'default']">
|
|
|
|
|
<literal>
|
|
|
|
|
<xsl:apply-templates select="attr[@name = 'default']" />
|
|
|
|
|
</literal>
|
|
|
|
|
</xsl:when>
|
|
|
|
|
<xsl:otherwise>
|
|
|
|
|
none
|
|
|
|
|
</xsl:otherwise>
|
|
|
|
|
</xsl:choose>
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
|
|
<xsl:if test="attr[@name = 'example']">
|
2011-09-05 11:14:42 +01:00
|
|
|
|
|
2007-01-23 11:39:02 +00:00
|
|
|
|
<para>
|
|
|
|
|
<emphasis>Example:</emphasis>
|
2009-07-14 16:47:03 +01:00
|
|
|
|
<xsl:text> </xsl:text>
|
2011-09-05 11:14:42 +01:00
|
|
|
|
<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>
|
|
|
|
|
<literal>
|
|
|
|
|
<xsl:apply-templates select="attr[@name = 'example']" />
|
|
|
|
|
</literal>
|
|
|
|
|
</xsl:otherwise>
|
|
|
|
|
</xsl:choose>
|
2007-01-23 11:39:02 +00:00
|
|
|
|
</para>
|
|
|
|
|
</xsl:if>
|
2009-09-18 16:10:32 +01:00
|
|
|
|
|
|
|
|
|
<xsl:if test="count(attr[@name = 'declarations']/list/*) != 0">
|
|
|
|
|
<para>
|
|
|
|
|
<emphasis>Declared by:</emphasis>
|
|
|
|
|
</para>
|
2009-10-06 00:15:06 +01:00
|
|
|
|
<xsl:apply-templates select="attr[@name = 'declarations']" />
|
2009-09-18 16:10:32 +01:00
|
|
|
|
</xsl:if>
|
|
|
|
|
|
|
|
|
|
<xsl:if test="count(attr[@name = 'definitions']/list/*) != 0">
|
|
|
|
|
<para>
|
|
|
|
|
<emphasis>Defined by:</emphasis>
|
|
|
|
|
</para>
|
2009-10-06 00:15:06 +01:00
|
|
|
|
<xsl:apply-templates select="attr[@name = 'definitions']" />
|
2009-09-18 16:10:32 +01:00
|
|
|
|
</xsl:if>
|
2007-01-23 11:39:02 +00:00
|
|
|
|
|
|
|
|
|
</listitem>
|
2007-01-23 10:52:51 +00:00
|
|
|
|
|
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
|
|
</xsl:for-each>
|
|
|
|
|
|
|
|
|
|
</variablelist>
|
|
|
|
|
|
|
|
|
|
</xsl:template>
|
2007-01-23 11:39:02 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<xsl:template match="string">
|
|
|
|
|
<!-- !!! escaping -->
|
2009-07-15 14:40:30 +01:00
|
|
|
|
<xsl:text>"</xsl:text><xsl:value-of select="str:replace(str:replace(str:replace(@value, '\', '\\'), '"', '\"'), '
', '\n')" /><xsl:text>"</xsl:text>
|
2007-01-23 11:39:02 +00:00
|
|
|
|
</xsl:template>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<xsl:template match="int">
|
|
|
|
|
<xsl:value-of select="@value" />
|
|
|
|
|
</xsl:template>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<xsl:template match="list">
|
|
|
|
|
[
|
|
|
|
|
<xsl:for-each select="*">
|
|
|
|
|
<xsl:apply-templates select="." />
|
|
|
|
|
<xsl:text> </xsl:text>
|
|
|
|
|
</xsl:for-each>
|
|
|
|
|
]
|
|
|
|
|
</xsl:template>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<xsl:template match="derivation">
|
|
|
|
|
<xsl:choose>
|
|
|
|
|
<xsl:when test="attr[@name = 'url']/string/@value">
|
2009-10-06 00:15:06 +01:00
|
|
|
|
<replaceable>(download of <xsl:value-of select="attr[@name = 'url']/string/@value" />)</replaceable>
|
2007-01-23 11:39:02 +00:00
|
|
|
|
</xsl:when>
|
|
|
|
|
<xsl:otherwise>
|
2009-10-06 00:15:06 +01:00
|
|
|
|
<replaceable>(build of <xsl:value-of select="attr[@name = 'name']/string/@value" />)</replaceable>
|
2007-01-23 11:39:02 +00:00
|
|
|
|
</xsl:otherwise>
|
|
|
|
|
</xsl:choose>
|
|
|
|
|
</xsl:template>
|
2009-09-18 16:10:37 +01:00
|
|
|
|
|
|
|
|
|
<xsl:template match="attr[@name = 'declarations' or @name = 'definitions']">
|
2009-10-06 00:15:06 +01:00
|
|
|
|
<simplelist>
|
2009-09-18 16:10:37 +01:00
|
|
|
|
<xsl:for-each select="list/string">
|
2009-10-06 00:47:50 +01: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>
|
|
|
|
|
<xsl:when test="$revision != 'local' and contains(@value, '/modules/')">
|
2012-06-08 21:59:26 +01:00
|
|
|
|
<xsl:attribute name="xlink:href">https://github.com/NixOS/nixos/blob/<xsl:value-of select="$revision"/>/modules/<xsl:value-of select="substring-after(@value, '/modules/')"/></xsl:attribute>
|
2009-10-06 00:47:50 +01:00
|
|
|
|
</xsl:when>
|
2012-06-08 22:10:11 +01:00
|
|
|
|
<xsl:when test="$revision != 'local' and contains(@value, 'charon') and contains(@value, '/nix/')">
|
|
|
|
|
<xsl:attribute name="xlink:href">https://github.com/NixOS/charon/blob/<xsl:value-of select="$revision"/>/nix/<xsl:value-of select="substring-after(@value, '/nix/')"/></xsl:attribute>
|
|
|
|
|
</xsl:when>
|
2009-10-06 00:47:50 +01:00
|
|
|
|
<xsl:otherwise>
|
|
|
|
|
<xsl:attribute name="xlink:href">file://<xsl:value-of select="@value"/></xsl:attribute>
|
|
|
|
|
</xsl:otherwise>
|
|
|
|
|
</xsl:choose>
|
2009-10-06 20:07:09 +01: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 10:53:19 +01:00
|
|
|
|
<xsl:choose>
|
2012-06-08 21:59:26 +01:00
|
|
|
|
<xsl:when test="contains(@value, '/modules/')">
|
|
|
|
|
<nixos/modules/<xsl:value-of select="substring-after(@value, '/modules/')"/>>
|
2009-10-06 10:53:19 +01:00
|
|
|
|
</xsl:when>
|
2012-06-08 22:10:11 +01:00
|
|
|
|
<xsl:when test="contains(@value, 'charon') and contains(@value, '/nix/')">
|
|
|
|
|
<charon/<xsl:value-of select="substring-after(@value, '/nix/')"/>>
|
|
|
|
|
</xsl:when>
|
2009-10-06 10:53:19 +01:00
|
|
|
|
<xsl:otherwise>
|
|
|
|
|
<xsl:value-of select="@value" />
|
|
|
|
|
</xsl:otherwise>
|
|
|
|
|
</xsl:choose>
|
2009-10-06 00:47:50 +01:00
|
|
|
|
</filename></member>
|
2009-09-18 16:10:37 +01:00
|
|
|
|
</xsl:for-each>
|
2009-10-06 00:15:06 +01:00
|
|
|
|
</simplelist>
|
2009-09-18 16:10:37 +01:00
|
|
|
|
</xsl:template>
|
2007-01-23 10:52:51 +00:00
|
|
|
|
|
|
|
|
|
</xsl:stylesheet>
|