Showing:

Documentation
Used by
References
Included from
Source
Stylesheet header.xsl
Documentation

Description

TEI stylesheet dealing with elements from the header module.

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: header.xsl 9494 2011-10-12 22:25:12Z sbauman $

Copyright: 2011, TEI Consortium

Included from
Stylesheet version 2.0
Template generateEditor
Documentation

Description

[common] Find a plausible editor name
Namespace No namespace
Used by
References
Template i18n
Import precedence 1
Source
<xsl:template name="generateEditor">
  <xsl:choose>
    <xsl:when test="ancestor-or-self::tei:TEI/tei:teiHeader/tei:fileDesc/tei:titleStmt/tei:editor">
      <xsl:for-each select="ancestor-or-self::tei:TEI/tei:teiHeader/tei:fileDesc/tei:titleStmt/tei:editor">
        <xsl:apply-templates/>
        <xsl:choose>
          <xsl:when test="count(following-sibling::tei:editor)=1">
            <xsl:if test="count(preceding-sibling::tei:editor)>=1">
              <xsl:text>,</xsl:text>
            </xsl:if>
            <xsl:call-template name="i18n">
              <xsl:with-param name="word">and</xsl:with-param>
            </xsl:call-template>
          </xsl:when>
          <xsl:when test="following-sibling::tei:editor">,</xsl:when>
        </xsl:choose>
      </xsl:for-each>
    </xsl:when>
    <xsl:when test="ancestor-or-self::tei:TEI/tei:teiHeader/tei:revisionDesc/tei:change/tei:respStmt[tei:resp='editor']">
      <xsl:apply-templates select="ancestor-or-self::tei:TEI/tei:teiHeader/tei:revisionDesc/tei:change/tei:respStmt[tei:resp='editor'][1]/tei:name"/>
    </xsl:when>
  </xsl:choose>
</xsl:template>
Stylesheet location ../common2/header.xsl
Template generateAuthor
Documentation

Description

[common] Find a plausible main author name
Namespace No namespace
Used by
References
Parameter useHeaderFrontMatter
Template i18n
Import precedence 1
Source
<xsl:template name="generateAuthor">
  <xsl:choose>
    <xsl:when test="$useHeaderFrontMatter='true' and ancestor-or-self::tei:TEI/tei:text/tei:front//tei:docAuthor">
      <xsl:apply-templates mode="author" select="ancestor-or-self::tei:TEI/tei:text/tei:front//tei:docAuthor"/>
    </xsl:when>
    <xsl:when test="ancestor-or-self::tei:TEI/tei:teiHeader/tei:fileDesc/tei:titleStmt/tei:author">
      <xsl:for-each select="ancestor-or-self::tei:TEI/tei:teiHeader/tei:fileDesc/tei:titleStmt/tei:author">
        <xsl:apply-templates/>
        <xsl:choose>
          <xsl:when test="count(following-sibling::tei:author)=1">
            <xsl:if test="count(preceding-sibling::tei:author)>1">
              <xsl:text>,</xsl:text>
            </xsl:if>
            <xsl:call-template name="i18n">
              <xsl:with-param name="word">and</xsl:with-param>
            </xsl:call-template>
          </xsl:when>
          <xsl:when test="following-sibling::tei:author">,</xsl:when>
        </xsl:choose>
      </xsl:for-each>
    </xsl:when>
    <xsl:when test="ancestor-or-self::tei:TEI/tei:teiHeader/tei:revisionDesc/tei:change/tei:respStmt[tei:resp='author']">
      <xsl:apply-templates select="ancestor-or-self::tei:TEI/tei:teiHeader/tei:revisionDesc/tei:change/tei:respStmt[tei:resp='author'][1]/tei:name"/>
    </xsl:when>
    <xsl:when test="ancestor-or-self::tei:TEI/tei:text/tei:front//tei:docAuthor">
      <xsl:apply-templates mode="author" select="ancestor-or-self::tei:TEI/tei:text/tei:front//tei:docAuthor"/>
    </xsl:when>
  </xsl:choose>
</xsl:template>
Stylesheet location ../common2/header.xsl
Template generateRevAuthor
Documentation

Description

[common] Find a plausible name of person responsible for current revision
Namespace No namespace
Used by
Import precedence 1
Source
<xsl:template name="generateRevAuthor">
  <xsl:variable name="who">
    <xsl:choose>
      <xsl:when test="ancestor-or-self::tei:TEI/tei:teiHeader/tei:revisionDesc/@vcwho">
        <xsl:apply-templates select="ancestor-or-self::tei:TEI/tei:teiHeader/tei:revisionDesc/@vcwho"/>
      </xsl:when>
      <xsl:when test="ancestor-or-self::tei:TEI/tei:teiHeader/tei:revisionDesc/tei:change[1]/tei:respStmt/tei:name">
        <xsl:value-of select="ancestor-or-self::tei:TEI/tei:teiHeader/tei:revisionDesc/tei:change[1]/tei:respStmt/tei:name/text()"/>
      </xsl:when>
    </xsl:choose>
  </xsl:variable>
  <xsl:choose>
    <xsl:when test="normalize-space($who)=concat('$Author', '$')"/>
    <xsl:when test="starts-with($who,'$Author')">
      <!-- it's RCS -->
      <xsl:value-of select="normalize-space(substring-before(substring-after($who,'Author'),'$'))"/>
    </xsl:when>
    <xsl:when test="starts-with($who,'$LastChangedBy')">
      <!-- it's Subversion -->
      <xsl:value-of select="normalize-space(substring-before(substring-after($who,'LastChangedBy:'),'$'))"/>
    </xsl:when>
    <xsl:otherwise>
      <xsl:value-of select="$who"/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location ../common2/header.xsl
Template generateAuthorList
Documentation

Description

[common]
Namespace No namespace
References
Import precedence 1
Source
<xsl:template name="generateAuthorList">
  <xsl:variable name="realauthor">
    <xsl:call-template name="generateAuthor"/>
  </xsl:variable>
  <xsl:variable name="revauthor">
    <xsl:call-template name="generateRevAuthor"/>
  </xsl:variable>
  <xsl:variable name="editor">
    <xsl:call-template name="generateEditor"/>
  </xsl:variable>
  <xsl:if test="not($realauthor = '')">
    <p xmlns="http://www.w3.org/1999/xhtml" class="mainAuthor">
      <xsl:text> </xsl:text>
      <xsl:call-template name="i18n">
        <xsl:with-param name="word">authorWord</xsl:with-param>
      </xsl:call-template>
      <xsl:text>: </xsl:text>
      <xsl:copy-of select="$realauthor"/>
    </p>
  </xsl:if>
  <xsl:if test="not($revauthor = '')">
    <p class="mainRevAuthor" xmlns="http://www.w3.org/1999/xhtml">
      <xsl:text> (</xsl:text>
      <xsl:call-template name="i18n">
        <xsl:with-param name="word">revisedWord</xsl:with-param>
      </xsl:call-template>
      <xsl:text> </xsl:text>
      <xsl:copy-of select="$revauthor"/>
      <xsl:text>)</xsl:text>
    </p>
  </xsl:if>
  <xsl:if test="not($editor = '')">
    <p class="mainEditor" xmlns="http://www.w3.org/1999/xhtml">
      <xsl:call-template name="i18n">
        <xsl:with-param name="word">editorWord</xsl:with-param>
      </xsl:call-template>
      <xsl:text>: </xsl:text>
      <xsl:copy-of select="$editor"/>
    </p>
  </xsl:if>
</xsl:template>
Stylesheet location ../common2/header.xsl
Template generateRevDate
Documentation

Description

[common] Work out the last revision date of the document
Namespace No namespace
Used by
Template mainDocument
Import precedence 1
Source
<xsl:template name="generateRevDate">
  <xsl:variable name="when">
    <xsl:choose>
      <xsl:when test="ancestor-or-self::tei:TEI/tei:teiHeader/tei:revisionDesc/@vcdate">
        <xsl:apply-templates select="ancestor-or-self::tei:TEI/tei:teiHeader/tei:revisionDesc/@vcdate"/>
      </xsl:when>
      <xsl:when test="ancestor-or-self::tei:TEI/tei:teiHeader/tei:revisionDesc/descendant::tei:date">
        <xsl:value-of select="ancestor-or-self::tei:TEI/tei:teiHeader/tei:revisionDesc/descendant::tei:date[1]"/>
      </xsl:when>
      <xsl:when test="ancestor-or-self::tei:TEI/tei:teiHeader/tei:fileDesc/descendant::tei:date">
        <xsl:value-of select="ancestor-or-self::tei:TEI/tei:teiHeader/tei:fileDesc/descendant::tei:date"/>
      </xsl:when>
    </xsl:choose>
  </xsl:variable>
  <xsl:choose>
    <xsl:when test="starts-with($when,'$Date')">
      <!-- it's RCS -->
      <xsl:value-of select="substring($when,16,2)"/>
      <xsl:text>/</xsl:text>
      <xsl:value-of select="substring($when,13,2)"/>
      <xsl:text>/</xsl:text>
      <xsl:value-of select="substring($when,8,4)"/>
    </xsl:when>
    <xsl:when test="starts-with($when,'$LastChangedDate')">
      <!-- it's Subversion-->
      <xsl:value-of select="substring-before(substring-after($when,'('),')')"/>
    </xsl:when>
    <xsl:otherwise>
      <xsl:value-of select="$when"/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location ../common2/header.xsl
Template generateDate
Documentation

Description

[common] Work out the publish date of the document
Namespace No namespace
Used by
Template mainDocument
References
Import precedence 1
Source
<xsl:template name="generateDate">
  <xsl:choose>
    <xsl:when test="$useFixedDate='true'">1970-01-01</xsl:when>
    <xsl:when test="$useHeaderFrontMatter='true' and ancestor-or-self::tei:TEI/tei:text/tei:front//tei:docDate">
      <xsl:apply-templates mode="date" select="ancestor-or-self::tei:TEI/tei:text/tei:front//tei:docDate"/>
    </xsl:when>
    <xsl:when test="ancestor-or-self::tei:TEI/tei:teiHeader/tei:fileDesc/tei:editionStmt/descendant::tei:date[@when]">
      <xsl:value-of select="ancestor-or-self::tei:TEI/tei:teiHeader/tei:fileDesc/tei:editionStmt/descendant::tei:date[@when][1]/@when"/>
    </xsl:when>
    <xsl:when test="ancestor-or-self::tei:TEI/tei:teiHeader/tei:fileDesc/tei:editionStmt/descendant::tei:date">
      <xsl:value-of select="ancestor-or-self::tei:TEI/tei:teiHeader/tei:fileDesc/tei:editionStmt/descendant::tei:date[1]"/>
    </xsl:when>
    <xsl:when test="ancestor-or-self::tei:TEI/tei:teiHeader/tei:fileDesc/tei:publicationStmt/tei:date">
      <xsl:value-of select="ancestor-or-self::tei:TEI/tei:teiHeader/tei:fileDesc/tei:publicationStmt/tei:date"/>
    </xsl:when>
    <xsl:when test="ancestor-or-self::tei:TEI/tei:teiHeader/tei:fileDesc/tei:editionStmt/tei:edition">
      <xsl:apply-templates select="ancestor-or-self::tei:TEI/tei:teiHeader/tei:fileDesc/tei:editionStmt/tei:edition"/>
    </xsl:when>
    <xsl:when test="ancestor-or-self::tei:TEI/tei:teiHeader/tei:revisionDesc/tei:change[@when      or tei:date]">
      <xsl:for-each select="ancestor-or-self::tei:TEI/tei:teiHeader/tei:revisionDesc/tei:change[1]">
        <xsl:choose>
          <xsl:when test="@when">
            <xsl:value-of select="@when"/>
          </xsl:when>
          <xsl:when test="tei:date/@when">
            <xsl:value-of select="tei:date/@when"/>
          </xsl:when>
          <xsl:when test="tei:date">
            <xsl:value-of select="tei:date"/>
          </xsl:when>
          <xsl:otherwise>
            <xsl:value-of select="format-dateTime(current-dateTime(),'[Y]-[M02]-[D02]')"/>
          </xsl:otherwise>
        </xsl:choose>
      </xsl:for-each>
    </xsl:when>
    <xsl:otherwise>
      <xsl:value-of select="format-dateTime(current-dateTime(),'[Y]-[M02]-[D02]')"/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location ../common2/header.xsl
Template generateTitle
Documentation

Description

[common] Generate a title
Namespace No namespace
Used by
Template mainDocument
References
Import precedence 1
Source
<xsl:template name="generateTitle">
  <xsl:choose>
    <xsl:when test="$useHeaderFrontMatter='true' and ancestor-or-self::tei:TEI/tei:text/tei:front//tei:docTitle">
      <xsl:apply-templates select="ancestor-or-self::tei:TEI/tei:text/tei:front//tei:docTitle/tei:titlePart"/>
    </xsl:when>
    <xsl:when test="$useHeaderFrontMatter='true' and ancestor-or-self::tei:teiCorpus/tei:text/tei:front//tei:docTitle">
      <xsl:apply-templates select="ancestor-or-self::tei:teiCorpus/tei:text/tei:front//tei:docTitle/tei:titlePart"/>
    </xsl:when>
    <xsl:when test="self::tei:teiCorpus">
      <xsl:apply-templates select="tei:teiHeader/tei:fileDesc/tei:titleStmt/tei:title[not(@type='subordinate')]"/>
    </xsl:when>
    <xsl:otherwise>
      <xsl:for-each select="ancestor-or-self::tei:TEI/tei:teiHeader/tei:fileDesc/tei:titleStmt">
        <xsl:choose>
          <xsl:when test="tei:title[@type='main']">
            <xsl:apply-templates select="tei:title[@type='main']"/>
          </xsl:when>
          <xsl:otherwise>
            <xsl:apply-templates select="tei:title"/>
          </xsl:otherwise>
        </xsl:choose>
      </xsl:for-each>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location ../common2/header.xsl
Template generateSimpleTitle
Documentation

Description

[common]

Generate simple title with no markup

Namespace No namespace
Used by
Template latexPackages
References
Import precedence 1
Source
<xsl:template name="generateSimpleTitle">
  <xsl:choose>
    <xsl:when test="$useHeaderFrontMatter='true' and ancestor-or-self::tei:TEI/tei:text/tei:front//tei:docTitle">
      <xsl:apply-templates select="ancestor-or-self::tei:TEI/tei:text/tei:front//tei:docTitle" mode="simple"/>
    </xsl:when>
    <xsl:otherwise>
      <xsl:for-each select="ancestor-or-self::tei:TEI/tei:teiHeader/tei:fileDesc/tei:titleStmt">
        <xsl:choose>
          <xsl:when test="tei:title[@type='main']">
            <xsl:apply-templates select="tei:title[@type='main']" mode="simple"/>
          </xsl:when>
          <xsl:otherwise>
            <xsl:apply-templates select="tei:title[1]" mode="simple"/>
          </xsl:otherwise>
        </xsl:choose>
      </xsl:for-each>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location ../common2/header.xsl
Template generateSubTitle
Documentation

Description

[common] Generate sub title
Namespace No namespace
References
Import precedence 1
Source
<xsl:template name="generateSubTitle">
  <xsl:choose>
    <xsl:when test="$useHeaderFrontMatter='true' and ancestor-or-self::tei:TEI/tei:text/tei:front//tei:docTitle">
      <xsl:apply-templates select="ancestor-or-self::tei:TEI/tei:text/tei:front//tei:docTitle"/>
    </xsl:when>
    <xsl:when test="$useHeaderFrontMatter='true' and ancestor-or-self::tei:teiCorpus/tei:text/tei:front//tei:docTitle">
      <xsl:apply-templates select="ancestor-or-self::tei:teiCorpus/tei:text/tei:front//tei:docTitle"/>
    </xsl:when>
    <xsl:otherwise>
      <xsl:for-each select="ancestor-or-self::tei:TEI|ancestor-or-self::tei:teiCorpus">
        <xsl:apply-templates select="tei:teiHeader/tei:fileDesc/tei:titleStmt/tei:title[@type='subordinate']"/>
      </xsl:for-each>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location ../common2/header.xsl
Template tei:div/tei:docAuthor
Documentation

Description

Namespace No namespace
Match tei:div/tei:docAuthor
Mode #default
Import precedence 1
Source
<xsl:template match="tei:div/tei:docAuthor"/>
Stylesheet location ../common2/header.xsl
Template tei:div/tei:docDate
Documentation

Description

Omit docAuthor found outside front matter
Namespace No namespace
Match tei:div/tei:docDate
Mode #default
Import precedence 1
Source
<xsl:template match="tei:div/tei:docDate"/>
Stylesheet location ../common2/header.xsl
Template tei:div/tei:docTitle
Documentation

Description

Omit docDate if found outside front matter
Namespace No namespace
Match tei:div/tei:docTitle
Mode #default
Import precedence 1
Source
<xsl:template match="tei:div/tei:docTitle"/>
Stylesheet location ../common2/header.xsl
Template tei:docAuthorheading
Documentation

Description

Ignore docTitle in a div
Namespace No namespace
Match tei:docAuthor
Mode heading
Import precedence 1
Source
<xsl:template match="tei:docAuthor" mode="heading">
  <xsl:if test="preceding-sibling::tei:docAuthor">
    <xsl:choose>
      <xsl:when test="not(following-sibling::tei:docAuthor)">
        <xsl:text> and </xsl:text>
      </xsl:when>
      <xsl:otherwise>
        <xsl:text>, </xsl:text>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:if>
  <xsl:apply-templates/>
</xsl:template>
Stylesheet location ../common2/header.xsl
Template tei:idno[@type='url']
Namespace No namespace
Match tei:idno[@type='url']
Mode #default
References
Template makeExternalLink
Import precedence 1
Source
<xsl:template match="tei:idno[@type='url']">
  <xsl:text> <</xsl:text>
  <xsl:call-template name="makeExternalLink">
    <xsl:with-param name="ptr" select="true()"/>
    <xsl:with-param name="dest">
      <xsl:value-of select="normalize-space(.)"/>
    </xsl:with-param>
  </xsl:call-template>
  <xsl:text>>.</xsl:text>
</xsl:template>
Stylesheet location ../common2/header.xsl
Template tei:idno
Namespace No namespace
Match tei:idno
Mode #default
Import precedence 1
Source
<xsl:template match="tei:idno">
  <xsl:text> </xsl:text>
  <xsl:apply-templates/>
</xsl:template>
Stylesheet location ../common2/header.xsl
Template tei:idno[@type='doi']
Namespace No namespace
Match tei:idno[@type='doi']
Mode #default
Import precedence 1
Source
<xsl:template match="tei:idno[@type='doi']"/>
Stylesheet location ../common2/header.xsl
Template generateEdition
Namespace No namespace
Import precedence 1
Source
<xsl:template name="generateEdition">
  <p xmlns="http://www.w3.org/1999/xhtml" class="editionStmt">
    <xsl:apply-templates select="/(tei:teiCorpus|tei:TEI)/tei:teiHeader/tei:fileDesc/tei:editionStmt"/>
  </p>
</xsl:template>
Stylesheet location ../common2/header.xsl