Blame xsl/main.xsl

Packit 0f19cf
Packit 0f19cf
Packit 0f19cf
                xmlns:ng="http://docbook.org/docbook-ng"
Packit 0f19cf
                xmlns:db="http://docbook.org/ns/docbook"
Packit 0f19cf
                xmlns:exsl="http://exslt.org/common"
Packit 0f19cf
                exclude-result-prefixes="db ng exsl"
Packit 0f19cf
                version="1.0">
Packit 0f19cf
Packit 0f19cf
Packit 0f19cf
    XSLT Stylesheet DocBook -> LaTeX 
Packit 0f19cf
    ############################################################################ -->
Packit 0f19cf
Packit 0f19cf
<xsl:template match="*" mode="info.copy">
Packit 0f19cf
  
Packit 0f19cf
                        |referenceinfo
Packit 0f19cf
                        |refentryinfo
Packit 0f19cf
                        |articleinfo
Packit 0f19cf
                        |sectioninfo
Packit 0f19cf
                        |appendixinfo
Packit 0f19cf
                        |bibliographyinfo
Packit 0f19cf
                        |chapterinfo
Packit 0f19cf
                        |sect1info
Packit 0f19cf
                        |sect2info
Packit 0f19cf
                        |sect3info
Packit 0f19cf
                        |sect4info
Packit 0f19cf
                        |sect5info
Packit 0f19cf
                        |partinfo
Packit 0f19cf
                        |prefaceinfo
Packit 0f19cf
                        |docinfo)[1]/child::*">
Packit 0f19cf
    <xsl:copy-of select=".|@*"/>
Packit 0f19cf
  </xsl:for-each>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
<xsl:template match="/" mode="doc-wrap-with">
Packit 0f19cf
  <xsl:param name="root"/>
Packit 0f19cf
  <xsl:variable name="rootnode" select="./*[1]"/>
Packit 0f19cf
  <xsl:message>
Packit 0f19cf
    <xsl:text>Warning: </xsl:text>
Packit 0f19cf
    <xsl:value-of select="local-name($rootnode)"/>
Packit 0f19cf
    <xsl:if test="$rootnode/@id or $rootnode/@xml:id">
Packit 0f19cf
      <xsl:text>(</xsl:text>
Packit 0f19cf
      <xsl:value-of select="($rootnode/@id|$rootnode/@xml:id)[1]"/>
Packit 0f19cf
      <xsl:text>)</xsl:text>
Packit 0f19cf
    </xsl:if>
Packit 0f19cf
    <xsl:text> wrapped with </xsl:text>
Packit 0f19cf
    <xsl:value-of select="$root"/>
Packit 0f19cf
  </xsl:message>
Packit 0f19cf
Packit 0f19cf
  <xsl:element name="{$root}">
Packit 0f19cf
    
Packit 0f19cf
    <xsl:for-each select="node()/@*[name(.)!='id' and name(.)!='xml:id']">
Packit 0f19cf
      <xsl:copy-of select="."/>
Packit 0f19cf
    </xsl:for-each>
Packit 0f19cf
Packit 0f19cf
    
Packit 0f19cf
    <xsl:for-each select="node()/title|node()/subtitle|node()/titleabbrev">
Packit 0f19cf
      <xsl:copy-of select="."/>
Packit 0f19cf
    </xsl:for-each>
Packit 0f19cf
Packit 0f19cf
    
Packit 0f19cf
    <xsl:element name="{$root}info">
Packit 0f19cf
      <xsl:apply-templates select="node()" mode="info.copy"/>
Packit 0f19cf
    </xsl:element>
Packit 0f19cf
Packit 0f19cf
    
Packit 0f19cf
    <xsl:copy-of select="node()|@*"/>
Packit 0f19cf
  </xsl:element>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
Packit 0f19cf
<xsl:template match="/" mode="doc-wrap">
Packit 0f19cf
  <xsl:message>
Packit 0f19cf
    <xsl:text>Warning: the root element is not an article nor a book</xsl:text>
Packit 0f19cf
  </xsl:message>
Packit 0f19cf
  <xsl:variable name="root">
Packit 0f19cf
    <xsl:choose>
Packit 0f19cf
    <xsl:when test="part|chapter">
Packit 0f19cf
      <xsl:value-of select="'book'"/>
Packit 0f19cf
    </xsl:when>
Packit 0f19cf
    <xsl:otherwise>
Packit 0f19cf
      <xsl:value-of select="'article'"/>
Packit 0f19cf
    </xsl:otherwise>
Packit 0f19cf
    </xsl:choose>
Packit 0f19cf
  </xsl:variable>
Packit 0f19cf
  <xsl:variable name="rnode">
Packit 0f19cf
    <xsl:apply-templates select="." mode="doc-wrap-with">
Packit 0f19cf
      <xsl:with-param name="root" select="$root"/>
Packit 0f19cf
    </xsl:apply-templates>
Packit 0f19cf
  </xsl:variable>
Packit 0f19cf
Packit 0f19cf
  
Packit 0f19cf
  <xsl:apply-templates select="exsl:node-set($rnode)/*" mode="wrapper"/>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
Packit 0f19cf
<xsl:template match="/">
Packit 0f19cf
  <xsl:param name="rfs" select="0"/>
Packit 0f19cf
  <xsl:if test="$rfs = 0 and $output.quietly = 0">
Packit 0f19cf
    <xsl:message>
Packit 0f19cf
    <xsl:text>XSLT stylesheets DocBook - LaTeX 2e </xsl:text>
Packit 0f19cf
    <xsl:text>(</xsl:text>
Packit 0f19cf
    <xsl:value-of select="$version"/><xsl:text>)</xsl:text>
Packit 0f19cf
    </xsl:message>
Packit 0f19cf
    <xsl:message>===================================================</xsl:message>
Packit 0f19cf
  </xsl:if>
Packit 0f19cf
  <xsl:choose>
Packit 0f19cf
  <xsl:when test="set|book|article">
Packit 0f19cf
    <xsl:apply-templates/>
Packit 0f19cf
  </xsl:when>
Packit 0f19cf
  
Packit 0f19cf
                  and (*/self::ng:* or */self::db:*)">
Packit 0f19cf
    <xsl:if test="$output.quietly = 0">
Packit 0f19cf
      <xsl:message>Stripping NS from DocBook 5/NG document.</xsl:message>
Packit 0f19cf
    </xsl:if>
Packit 0f19cf
    <xsl:variable name="nons">
Packit 0f19cf
      <xsl:apply-templates mode="stripNS"/>
Packit 0f19cf
    </xsl:variable>
Packit 0f19cf
    <xsl:if test="$output.quietly = 0">
Packit 0f19cf
      <xsl:message>Processing stripped document.</xsl:message>
Packit 0f19cf
    </xsl:if>
Packit 0f19cf
    <xsl:apply-templates select="exsl:node-set($nons)">
Packit 0f19cf
      <xsl:with-param name="rfs" select="1"/>
Packit 0f19cf
    </xsl:apply-templates>
Packit 0f19cf
  </xsl:when>
Packit 0f19cf
  <xsl:otherwise>
Packit 0f19cf
    <xsl:apply-templates select="." mode="doc-wrap"/>
Packit 0f19cf
  </xsl:otherwise>
Packit 0f19cf
  </xsl:choose>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
Packit 0f19cf
Packit 0f19cf
     DocBook XSL Stylesheets
Packit 0f19cf
  -->
Packit 0f19cf
Packit 0f19cf
<xsl:template match="*" mode="stripNS">
Packit 0f19cf
  <xsl:choose>
Packit 0f19cf
    <xsl:when test="self::ng:* or self::db:*">
Packit 0f19cf
      <xsl:element name="{local-name(.)}">
Packit 0f19cf
        <xsl:copy-of select="@*"/>
Packit 0f19cf
        <xsl:apply-templates mode="stripNS"/>
Packit 0f19cf
      </xsl:element>
Packit 0f19cf
    </xsl:when>
Packit 0f19cf
    <xsl:otherwise>
Packit 0f19cf
      <xsl:copy>
Packit 0f19cf
        <xsl:copy-of select="@*"/>
Packit 0f19cf
        <xsl:apply-templates mode="stripNS"/>
Packit 0f19cf
      </xsl:copy>
Packit 0f19cf
    </xsl:otherwise>
Packit 0f19cf
  </xsl:choose>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
<xsl:template match="ng:link|db:link" mode="stripNS">
Packit 0f19cf
  
Packit 0f19cf
                name="href" select="@xlink:href|@href"/>
Packit 0f19cf
  <xsl:choose>
Packit 0f19cf
    <xsl:when test="$href != '' and not(starts-with($href,'#'))">
Packit 0f19cf
      <ulink url="{$href}">
Packit 0f19cf
        <xsl:for-each select="@*">
Packit 0f19cf
          <xsl:if test="local-name(.) != 'href'">
Packit 0f19cf
            <xsl:copy/>
Packit 0f19cf
          </xsl:if>
Packit 0f19cf
        </xsl:for-each>
Packit 0f19cf
        <xsl:apply-templates mode="stripNS"/>
Packit 0f19cf
      </ulink>
Packit 0f19cf
    </xsl:when>
Packit 0f19cf
    <xsl:when test="$href != '' and starts-with($href,'#')">
Packit 0f19cf
      <link linkend="{substring-after($href,'#')}">
Packit 0f19cf
        <xsl:for-each select="@*">
Packit 0f19cf
          <xsl:if test="local-name(.) != 'href'">
Packit 0f19cf
            <xsl:copy/>
Packit 0f19cf
          </xsl:if>
Packit 0f19cf
        </xsl:for-each>
Packit 0f19cf
        <xsl:apply-templates mode="stripNS"/>
Packit 0f19cf
      </link>
Packit 0f19cf
    </xsl:when>
Packit 0f19cf
    <xsl:otherwise>
Packit 0f19cf
      <link>
Packit 0f19cf
        <xsl:copy-of select="@*"/>
Packit 0f19cf
        <xsl:apply-templates mode="stripNS"/>
Packit 0f19cf
      </link>
Packit 0f19cf
    </xsl:otherwise>
Packit 0f19cf
  </xsl:choose>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
<xsl:template match="comment()|processing-instruction()|text()" mode="stripNS">
Packit 0f19cf
  <xsl:copy/>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
</xsl:stylesheet>
Packit 0f19cf