Showing:

Documentation
Parameters
Used by
References
Overriding
Imported modules
Included from
Source
Stylesheet lists.xsl
Documentation

Description

TEI stylesheet for making Word docx files from TEI XML

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

Author: See AUTHORS

Id: $Id: lists.xsl 7952 2010-08-12 21:14:51Z rahtz $

Copyright: 2008, TEI Consortium

Imported modules
Included from
Stylesheet version 2.0
Template tei:label[following-sibling::tei:*[1]/self::tei:item]
Documentation

Description

Handle value lists
Namespace No namespace
Match tei:label[following-sibling::tei:*[1]/self::tei:item]
Mode #default
Overriding
Parameters
QName Namespace
nop No namespace
Import precedence 11
Source
<xsl:template match="tei:label[following-sibling::tei:*[1]/self::tei:item]">
  <xsl:param name="nop"/>
  <w:p>
    <w:pPr>
      <w:pStyle w:val="dl"/>
      <w:ind w:left="567" w:hanging="567"/>
    </w:pPr>
    <xsl:apply-templates>
      <xsl:with-param name="nop">true</xsl:with-param>
    </xsl:apply-templates>
    <w:r>
      <w:tab/>
    </w:r>
    <xsl:for-each select="following-sibling::tei:item[1]">
      <xsl:apply-templates>
        <xsl:with-param name="nop">true</xsl:with-param>
      </xsl:apply-templates>
    </xsl:for-each>
  </w:p>
</xsl:template>
Stylesheet location ../../../docx/to/lists/lists.xsl
Template tei:item/tei:list
Namespace No namespace
Match tei:item/tei:list
Mode #default
Parameters
QName Namespace
nop No namespace
Import precedence 11
Source
<xsl:template match="tei:item/tei:list">
  <xsl:param name="nop"/>
  <xsl:apply-templates>
    <xsl:with-param name="nop">false</xsl:with-param>
  </xsl:apply-templates>
</xsl:template>
Stylesheet location ../../../docx/to/lists/lists.xsl
Template tei:item[preceding-sibling::tei:*[1]/self::tei:label]
Namespace No namespace
Match tei:item[preceding-sibling::tei:*[1]/self::tei:label]
Mode #default
Import precedence 11
Source
<xsl:template match="tei:item[preceding-sibling::tei:*[1]/self::tei:label]"/>
Stylesheet location ../../../docx/to/lists/lists.xsl
Template comment()
Namespace No namespace
Match comment()
Mode #default
Import precedence 11
Source
<xsl:template match="comment()"/>
Stylesheet location ../../../docx/to/lists/lists.xsl
Template tei:item
Documentation

Description

Handle list items
Namespace No namespace
Match tei:item
Mode #default
References
Parameters
QName Namespace
nop No namespace
Import precedence 11
Source
<xsl:template match="tei:item">
  <xsl:param name="nop"/>
  <xsl:variable name="listStyle">
    <xsl:choose>
      <xsl:when test="../@type='unordered' or ../@type='simple' or not(../@type)">
        <xsl:call-template name="getStyleName">
          <xsl:with-param name="in">
            <xsl:text>List Continue</xsl:text>
            <xsl:call-template name="listNumberDepth"/>
          </xsl:with-param>
        </xsl:call-template>
      </xsl:when>
      <xsl:when test="../@type='ordered'">
        <xsl:call-template name="getStyleName">
          <xsl:with-param name="in">
            <xsl:text>List Number</xsl:text>
            <xsl:call-template name="listNumberDepth"/>
          </xsl:with-param>
        </xsl:call-template>
      </xsl:when>
      <xsl:when test="../@type='termlist'"/>
      <xsl:otherwise>
        <xsl:text>ListParagraph</xsl:text>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:variable>
  <xsl:variable name="pPr">
    <w:pPr>
      <xsl:if test="string-length($listStyle) > 1">
        <w:pStyle w:val="{$listStyle}"/>
      </xsl:if>
      <xsl:choose>
        <xsl:when test="../@type='unordered' or not(../@type)">
          <w:numPr>
            <w:ilvl>
              <xsl:attribute name="w:val">
                <xsl:value-of select="count(ancestor::tei:list) - 1"/>
              </xsl:attribute>
            </w:ilvl>
            <w:numId>
              <xsl:attribute name="w:val">
                <xsl:choose>
                  <xsl:when test="$isofreestanding='true'">
                    <xsl:text>2</xsl:text>
                  </xsl:when>
                  <xsl:otherwise>
                    <xsl:for-each select="document(concat($word-directory,'/word/numbering.xml'))">
                      <xsl:variable name="abstractNumId" select="key('AN',$listStyle)/@w:abstractNumId"/>
                      <xsl:value-of select="key('NUMS',$abstractNumId)/@w:numId"/>
                    </xsl:for-each>
                  </xsl:otherwise>
                </xsl:choose>
              </xsl:attribute>
            </w:numId>
          </w:numPr>
        </xsl:when>
        <xsl:when test="../@type='ordered'">
          <w:numPr>
            <w:ilvl>
              <xsl:attribute name="w:val">
                <xsl:value-of select="count(ancestor::tei:list) - 1"/>
              </xsl:attribute>
            </w:ilvl>
            <w:numId>
              <xsl:attribute name="w:val">
                <!-- @see template: numbering-definition ordered lists -->
                <xsl:variable name="CurrentList">
                  <xsl:value-of select="generate-id(..)"/>
                </xsl:variable>
                <xsl:for-each select="key('OL',1)">
                  <xsl:if test="$CurrentList=generate-id(.)">
                    <xsl:value-of select="position()+100"/>
                  </xsl:if>
                </xsl:for-each>
              </xsl:attribute>
            </w:numId>
          </w:numPr>
        </xsl:when>
      </xsl:choose>
    </w:pPr>
  </xsl:variable>
  <!--
        <xsl:message>List item <xsl:value-of select="."/>, <xsl:value-of
        select="$nop"/>, <xsl:value-of select="$listStyle"/></xsl:message>
    -->
  <xsl:call-template name="block-element">
    <xsl:with-param name="pPr" select="$pPr"/>
    <xsl:with-param name="nop" select="$nop"/>
  </xsl:call-template>
</xsl:template>
Stylesheet location ../../../docx/to/lists/lists.xsl
Template listNumberDepth
Namespace No namespace
Used by
Template tei:item
Import precedence 11
Source
<xsl:template name="listNumberDepth">
  <xsl:choose>
    <xsl:when test="ancestor::tei:glossListEntry">
      <xsl:value-of select="count(ancestor::tei:list)                 + ancestor::tei:glossListEntry/@count"/>
    </xsl:when>
    <xsl:when test="parent::tei:list/ancestor::tei:list">
      <xsl:text> </xsl:text>
      <xsl:value-of select="count(ancestor::tei:list)"/>
    </xsl:when>
  </xsl:choose>
</xsl:template>
Stylesheet location ../../../docx/to/lists/lists.xsl
Key AN
Namespace No namespace
Match w:abstractNum
Use w:lvl/w:pStyle/@w:val
Used by
Template tei:item
Source
<xsl:key name="AN" match="w:abstractNum" use="w:lvl/w:pStyle/@w:val"/>
Stylesheet location ../../../docx/to/lists/lists.xsl
Key NUMS
Namespace No namespace
Match w:num[not(w:lvlOverride)]
Use w:abstractNumId/@w:val
Used by
Template tei:item
Source
<xsl:key name="NUMS" match="w:num[not(w:lvlOverride)]" use="w:abstractNumId/@w:val"/>
Stylesheet location ../../../docx/to/lists/lists.xsl