<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/TR/xhtml1/strict"> <xsl:output method="xml" encoding="UTF-8" indent="yes"/> <xsl:template match="/document"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta name="generator" content="JRST http://maven-site.nuiton.org/jrst" /> <title><xsl:value-of select="title"/></title> </head> <body> <xsl:apply-templates/> </body> </html> </xsl:template> <xsl:template match="comment"> <xsl:comment> <xsl:text> </xsl:text> <xsl:apply-templates/> <xsl:text> </xsl:text> </xsl:comment> </xsl:template> <xsl:template match="title"> <xsl:if test="name(..)='document'"> <h1 class="mainTitle"> <xsl:apply-templates/> </h1> </xsl:if> <xsl:if test="not(name(..)='document')"> <xsl:element name="h{count(ancestor::section) + 1}"> <xsl:attribute name="class">title</xsl:attribute> <xsl:if test="@refid"> <a class="toc-backref" href="#{@refid}" id="{../@id}"><xsl:apply-templates/></a> </xsl:if> <xsl:if test="not(@refid)"> <xsl:apply-templates/> </xsl:if> </xsl:element> </xsl:if> </xsl:template> <xsl:template match="subtitle"> <xsl:element name="h2"> <xsl:apply-templates/> </xsl:element> </xsl:template> <!-- just eat it --> <xsl:template match="substitution_definition"> </xsl:template> <xsl:template match="docinfo"> <table class="docinfo" frame="void" rules="none"> <col class="docinfo-name" /> <col class="docinfo-content" /> <tbody valign="top"> <xsl:apply-templates/> </tbody> </table> </xsl:template> <xsl:template match="organization|address|contact|version|revision|status|date|copyright"> <tr> <th class="docinfo-name"> <xsl:value-of select="name(.)"/> : </th> <td class="docinfo-content"> <xsl:apply-templates/> </td> </tr> </xsl:template> <xsl:template match="author"> <xsl:if test="not(../../authors)"> <tr> <th class="docinfo-name"> <xsl:value-of select="name(.)"/> : </th> <td class="docinfo-content"> <xsl:apply-templates/> </td> </tr> </xsl:if> <xsl:if test="../../authors"> <xsl:variable name="num" select="position()"/> <xsl:if test="$num=1"> <tr> <th class="docinfo-name"> <xsl:value-of select="authors"/>authors : </th> <td class="docinfo-content"> <xsl:apply-templates/> </td> </tr> </xsl:if> <xsl:if test="$num>1"> <tr> <th> </th> <td class="docinfo-content"> <xsl:apply-templates/> </td> </tr> </xsl:if> </xsl:if> </xsl:template> <xsl:template match="transition"> <hr/> </xsl:template> <xsl:template match="section"> <a name="{@id}"></a> <xsl:apply-templates/> </xsl:template> <xsl:template match="list_item/paragraph[1] | definition_list_item/*/paragraph[1] | field/*/paragraph[1] | option/*/paragraph[1]"> <!--XXX - Unclear how to handle multi-paragraph list items. | Certainly when they're single paragraphs, we don't want them | wrapped in a <P> tag. This seems to work okay. +--> <xsl:apply-templates/> </xsl:template> <xsl:template match="paragraph"> <p><xsl:apply-templates/></p> </xsl:template> <xsl:template match="reference"> <xsl:if test="@refid"> <a href="{@refuri}#{@refid}" id="{@id}"><xsl:apply-templates/></a> </xsl:if> <xsl:if test="not(@refid)"> <a href="{@refuri}" id="{@id}"><xsl:apply-templates/></a> </xsl:if> </xsl:template> <xsl:template match="emphasis"> <em><xsl:apply-templates/></em> </xsl:template> <xsl:template match="strong"> <b><xsl:apply-templates/></b> </xsl:template> <xsl:template match="literal"> <code><xsl:value-of select="text()"/></code> </xsl:template> <xsl:template match="literal_block"> <pre class="literal_block"><xsl:value-of select="text()"/></pre> </xsl:template> <xsl:template match="bullet_list"> <ul><xsl:apply-templates/></ul> </xsl:template> <xsl:template match="enumerated_list"> <ol> <xsl:choose> <xsl:when test="@enumtype='arabic'"> <xsl:attribute name="type">1</xsl:attribute> </xsl:when> <xsl:when test="@enumtype='loweralpha'"> <xsl:attribute name="type">a</xsl:attribute> </xsl:when> <xsl:when test="@enumtype='upperalpha'"> <xsl:attribute name="type">A</xsl:attribute> </xsl:when> <xsl:when test="@enumtype='lowerroman'"> <xsl:attribute name="type">i</xsl:attribute> </xsl:when> <xsl:when test="@enumtype='upperroman'"> <xsl:attribute name="type">I</xsl:attribute> </xsl:when> </xsl:choose> <xsl:copy-of select="@start"/> <xsl:apply-templates/> </ol> </xsl:template> <xsl:template match="list_item"> <li><xsl:apply-templates/></li> </xsl:template> <xsl:template match="field_list"> <div class="field_list"><xsl:apply-templates/></div> </xsl:template> <xsl:template match="field"> <xsl:if test="not(../../docinfo)"> <div class="field"><xsl:apply-templates/></div> </xsl:if> <xsl:if test="../../docinfo"> <tr> <th class="docinfo-name"> <xsl:value-of select="field_name/text()"/> : </th> <td> <xsl:apply-templates select="field_body/*"/> </td> </tr> </xsl:if> </xsl:template> <xsl:template match="field_name"> <span class="field_name"><xsl:apply-templates/></span> </xsl:template> <xsl:template match="field_body"> <span class="field_body"><xsl:apply-templates/></span> </xsl:template> <xsl:template match="definition_list"> <dl class="definition_list"><xsl:apply-templates/></dl> </xsl:template> <xsl:template match="definition_list_item"> <xsl:apply-templates/> </xsl:template> <xsl:template match="term"> <dt class="term"><xsl:apply-templates/><xsl:call-template name="classifier"/></dt> </xsl:template> <xsl:template name="classifier"> <xsl:for-each select="../classifier"> <span class="classifier"><xsl:apply-templates/></span> </xsl:for-each> </xsl:template> <xsl:template match="classifier"> <!-- do nothing --> </xsl:template> <xsl:template match="definition"> <dd class="definition"><xsl:apply-templates/></dd> </xsl:template> <xsl:template match="image"> <xsl:choose> <xsl:when test="(@target) and (@align)"> <div class="align-{@align}" align="{@align}"> <a href="{@target}"> <xsl:call-template name="img" /> </a> </div> </xsl:when> <xsl:when test="@target"> <a href="{@target}"> <xsl:call-template name="img" /> </a> </xsl:when> <xsl:when test="@align"> <div class="align-{@align}" align="{@align}"> <xsl:call-template name="img" /> </div> </xsl:when> <xsl:otherwise> <xsl:call-template name="img" /> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="img"> <xsl:element name="img"> <xsl:attribute name="alt"><xsl:value-of select="@alt"/></xsl:attribute> <xsl:attribute name="src"><xsl:value-of select="@uri"/></xsl:attribute> <xsl:if test="@width"><xsl:attribute name="width"><xsl:value-of select="@width"/></xsl:attribute></xsl:if> <xsl:if test="@height"><xsl:attribute name="height"><xsl:value-of select="@height"/></xsl:attribute></xsl:if> <xsl:apply-templates/> </xsl:element> </xsl:template> <xsl:template match="footer"> <hr/> <p class="footer"><xsl:apply-templates/></p> </xsl:template> <xsl:template match="header"> <p class="header"><xsl:apply-templates/></p> <hr/> </xsl:template> <!-- | Table +--> <xsl:template match="table"> <table border="1"> <colgroup> <xsl:apply-templates select="tgroup/colspec"/> </colgroup> <xsl:apply-templates select="./tgroup/thead|./tgroup/tbody"/> </table> </xsl:template> <xsl:template match="tgroup/colspec"> <col width="{@colwidth}%"/> </xsl:template> <xsl:template match="row"> <tr><xsl:apply-templates/></tr> </xsl:template> <xsl:template match="thead"> <thead><xsl:apply-templates/></thead> </xsl:template> <xsl:template match="thead/row/entry"> <th> <xsl:if test="@morecols"><xsl:attribute name="colspan"><xsl:value-of select="@morecols+1"/></xsl:attribute></xsl:if> <xsl:if test="@morerows"><xsl:attribute name="rowspan"><xsl:value-of select="@morerows+1"/></xsl:attribute></xsl:if> <xsl:apply-templates/> </th> </xsl:template> <xsl:template match="tbody"> <tbody><xsl:apply-templates/></tbody> </xsl:template> <xsl:template match="tbody/row/entry"> <td> <xsl:if test="@morecols"><xsl:attribute name="colspan"><xsl:value-of select="@morecols+1"/></xsl:attribute></xsl:if> <xsl:if test="@morerows"><xsl:attribute name="rowspan"><xsl:value-of select="@morerows+1"/></xsl:attribute></xsl:if> <xsl:apply-templates/> </td> </xsl:template> <xsl:template match="admonition"> <div class="admonition"> <div class="{@class}"> <p class="{title}"> <xsl:apply-templates select="./title"/> </p> <p class="body"> <xsl:apply-templates select="child::*[position()>1]"/> </p> </div> </div> </xsl:template> <xsl:template match="attention|caution|danger|error|hint|important|note|tip|warning"> <div class="{name(.)}"> <p class="title"><xsl:value-of select="name(.)"/> :</p> <p class="body"> <xsl:apply-templates/> </p> </div> </xsl:template> <xsl:template match="block_quote"> <blockquote> <xsl:if test="./attribution"> <p><xsl:apply-templates select="child::*[position()=1]"/></p> <p class="attribution"> <xsl:apply-templates select="./attribution"/> </p> </xsl:if> <xsl:if test="not(./attribution)"> <xsl:apply-templates select="child::*"/> </xsl:if> </blockquote> </xsl:template> <xsl:template match="doctest_block"> <pre class="doctest_block"> <xsl:apply-templates/> </pre> </xsl:template> <xsl:template match="line_block"> <div class="line_block"> <xsl:apply-templates/> </div> </xsl:template> <xsl:template match="line"> <div class="line"> <xsl:apply-templates/> </div> </xsl:template> <xsl:template match="sidebar"> <div class="sidebar"> <p class="title"> <xsl:apply-templates select="./title"/> </p> <xsl:if test="./subtitle"> <p class="subtitle"> <xsl:apply-templates select="./subtitle"/> </p> </xsl:if> <xsl:choose> <xsl:when test="./subtitle"> <xsl:apply-templates select="child::*[position()>2]"/> </xsl:when> <xsl:otherwise> <xsl:apply-templates select="child::*[position()>1]"/> </xsl:otherwise> </xsl:choose> </div> </xsl:template> <xsl:template match="topic"> <div class="topic"> <p class="title"> <xsl:apply-templates select="./title"/> </p> <xsl:apply-templates select="child::*[position()>1]"/> </div> </xsl:template> <xsl:template match="option_list"> <table class="option_list"> <col class="option" /> <col class="description" /> <tbody valign="top"> <xsl:apply-templates/> </tbody> </table> </xsl:template> <xsl:template match="option_list_item"> <tr> <td class="option-group"> <kbd> <xsl:apply-templates select="./option_group/option"/> </kbd> </td> <td> <xsl:apply-templates select="./description"/> </td> </tr> </xsl:template> <xsl:template match="option"> <span class="option"> <xsl:value-of select="option_string/text()"/> <xsl:value-of select="./option_argument/@delimiter"/> <xsl:apply-templates select="./option_argument"/> </span> </xsl:template> <xsl:template match="option_argument"> <var> <xsl:value-of select="text()"/>, </var> </xsl:template> <xsl:template match="footnote"> <table class="footnote" frame="void" id="{@id}" rules="none"> <colgroup> <col class="label"/> <col/> </colgroup> <tbody valign="top"> <tr> <td class="label"> <a class="backref" href="#{@backrefs}" name="{id}"> [<xsl:value-of select="label"/>] </a> </td> <td> <!-- | <xsl:value-of select="child::*[position()>1]"/> +--> <xsl:apply-templates select="child::*[position()>1]"/> </td> </tr> </tbody> </table> </xsl:template> <xsl:template match="footnote_reference"> <a class="footnote_reference" href="#{@refid}" id="{@id}" name="{@id}"> [<xsl:value-of select="text()"/>] </a> </xsl:template> </xsl:stylesheet>