aboutsummaryrefslogtreecommitdiff
path: root/xsl/inc
diff options
context:
space:
mode:
Diffstat (limited to 'xsl/inc')
-rw-r--r--xsl/inc/indent.xsl102
-rw-r--r--xsl/inc/teientry2txt.xsl444
-rw-r--r--xsl/inc/teiheader2txt.xsl251
3 files changed, 0 insertions, 797 deletions
diff --git a/xsl/inc/indent.xsl b/xsl/inc/indent.xsl
deleted file mode 100644
index db742a8..0000000
--- a/xsl/inc/indent.xsl
+++ /dev/null
@@ -1,102 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
-
- <!-- This is the template intended to be called from outside -->
- <xsl:template name="format">
- <!-- The text to be formatted nicely -->
- <xsl:param name="txt"/>
- <!-- A number giving the column width in which txt is to be formatted indented by $start spaces -->
- <xsl:param name="width" select="78"/>
- <!-- A number giving the columns the txt is to be indented -->
- <xsl:param name="start" select="0"/>
-
- <xsl:choose>
- <!-- Last Line -->
- <xsl:when test="string-length($txt) &lt; $width -$start">
- <xsl:value-of select="$txt"/>
- <xsl:text>&#10;</xsl:text>
- </xsl:when>
-
- <!-- substring() of a NULL string would be bad -->
- <xsl:when test="$txt">
- <!-- Find the word boundary of the last word that completely fits on the current line -->
- <xsl:variable name="real-width">
- <xsl:call-template name="space-backward">
- <xsl:with-param select="$txt" name="txt"/>
- <xsl:with-param select="$width - $start" name="width"/>
- <xsl:with-param select="$start" name="start"/>
- <xsl:with-param name="def">
- <xsl:call-template name="space-forward">
- <xsl:with-param select="$txt" name="txt"/>
- <xsl:with-param select="$width - $start" name="width"/>
- <xsl:with-param select="$start" name="start"/>
- </xsl:call-template>
- </xsl:with-param>
- </xsl:call-template>
- </xsl:variable>
- <!-- Output current line -->
- <xsl:value-of select="substring($txt, 1, $real-width)"/>
- <xsl:text>&#10;</xsl:text>
- <!-- Indent the next line -->
- <xsl:value-of select="substring(' ', 1, $start)"/>
- <!-- Recursively call myself -->
- <xsl:call-template name="format">
- <xsl:with-param select="substring($txt, $real-width + 1)" name="txt"/>
- <xsl:with-param select="$width" name="width"/>
- <xsl:with-param select="$start" name="start"/>
- </xsl:call-template>
- </xsl:when>
- </xsl:choose>
- </xsl:template>
-
- <xsl:template name="space-backward">
- <xsl:param name="txt"/>
- <xsl:param name="width"/>
- <xsl:param name="def"/>
- <xsl:param name="start"/>
- <xsl:choose>
- <xsl:when test="$width = 0">
- <xsl:value-of select="$def"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:choose>
- <xsl:when test="substring($txt, $width, 1) = ' '">
- <xsl:value-of select="$width"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:call-template name="space-backward">
- <xsl:with-param select="$txt" name="txt"/>
- <xsl:with-param select="$width - 1" name="width"/>
- <xsl:with-param select="$def" name="def"/>
- </xsl:call-template>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
-
- <xsl:template name="space-forward">
- <xsl:param name="txt"/>
- <xsl:param name="width"/>
- <xsl:choose>
- <xsl:when test="$width >= string-length($txt)">
- <xsl:value-of select="string-length($txt)"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:choose>
- <xsl:when test="substring($txt, $width, 1) = ' '">
- <xsl:value-of select="$width"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:call-template name="space-forward">
- <xsl:with-param select="$txt" name="txt"/>
- <xsl:with-param select="$width + 1" name="width"/>
- </xsl:call-template>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
-
-</xsl:stylesheet>
diff --git a/xsl/inc/teientry2txt.xsl b/xsl/inc/teientry2txt.xsl
deleted file mode 100644
index 51d506e..0000000
--- a/xsl/inc/teientry2txt.xsl
+++ /dev/null
@@ -1,444 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:tei="http://www.tei-c.org/ns/1.0" xmlns:xd="http://www.pnp-software.com/XSLTdoc"
- version="1.0">
-
- <xsl:include href="indent.xsl"/>
-
- <xsl:strip-space elements="*"/>
-
- <xsl:variable name="stylesheet-entry_svnid">$Id$</xsl:variable>
-
- <!-- I am fully aware of introducing some project-specific features into the P5 mode,
- but let this stuff reside here for a while until we come up with a clean way to
- import project-dependent overrides from the individual project directories... -PB 13-apr-09-->
-
- <!-- TEI entry specific templates -->
- <xsl:template match="tei:entry">
- <xsl:apply-templates select="tei:form"/>
- <!-- force form before gramGrp -->
- <xsl:apply-templates select="tei:gramGrp"/>
- <xsl:text>&#xa;</xsl:text>
- <xsl:apply-templates select="tei:sense | tei:note"/>
- </xsl:template>
-<!--Headword description FORM and GRAMGRP -->
- <xsl:template match="tei:form">
- <xsl:variable name="paren"
- select="count(child::tei:orth) and (count(parent::tei:form) = 1 or @type='infl')"/>
- <!-- parenthesized if nested or (ad hoc) if @type="infl" -->
- <!-- further adhockishness (I'm duly ashamed): you'd better check if the <orth> is really there, because you may be
- looking at nested <form>s; a rewrite is needed here -->
- <xsl:if test="$paren">
- <xsl:text> (</xsl:text>
- </xsl:if>
- <!-- mandatory entry > form > orth -->
- <xsl:apply-templates select="tei:usg | tei:lbl"/>
- <xsl:if test="position() != last()">
- <xsl:text> </xsl:text>
- </xsl:if>
- <!-- added to handle usg info in nested <form>s -->
- <xsl:for-each select="tei:orth">
- <xsl:choose>
- <!-- values from the TEI Guidelines -->
- <xsl:when test="count(@extent)=0 or @extent='full'">
- <xsl:value-of select="."/>
- </xsl:when>
- <xsl:when test="@extent='pref'">
- <xsl:value-of select="concat(.,'-')"/>
- </xsl:when>
- <xsl:when test="@extent='suff'">
- <xsl:value-of select="concat('-',.)"/>
- </xsl:when>
- <xsl:when test="@extent='part'">
- <xsl:value-of select="concat('-',.,'-')"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="."/>
- </xsl:otherwise>
- </xsl:choose>
- <xsl:if test="position() != last()">
- <xsl:text>, </xsl:text>
- </xsl:if>
- </xsl:for-each>
- <xsl:apply-templates select="tei:pron"/>
- <xsl:if test="position() != last()">
- <xsl:text> </xsl:text>
- </xsl:if>
- <!-- then, if nested, gramGrp or gram infos... -->
- <xsl:apply-templates select=" tei:gramGrp"/>
- <xsl:if test="position() != last()">
- <xsl:text> </xsl:text>
- </xsl:if>
- <xsl:apply-templates select="tei:form"/>
- <xsl:if test="following-sibling::tei:form and following-sibling::tei:form[1][not(@type='infl')]">
- <xsl:text>, </xsl:text>
- <!-- cosmetics: no comma before parens -->
- </xsl:if>
- <xsl:if test="$paren">
- <xsl:text>)</xsl:text>
- </xsl:if>
- </xsl:template>
-
- <!-- can't see when this template may be active; see above for enhancement (pref, suff), if necessary -->
- <xsl:template match="tei:orth">
- <xsl:value-of select="."/>
- <xsl:if test="position() != last()">
- <xsl:text>, </xsl:text>
- </xsl:if>
- </xsl:template>
-
- <xsl:template match="tei:pron">
- <xsl:value-of select="concat(' /',.,'/')"/>
- <!--<xsl:text> /</xsl:text><xsl:apply-templates/><xsl:text>/</xsl:text>-->
- </xsl:template>
-
- <!-- allow for empty <pos/>; make it a condition for the presence of angled brackets, too
- the weird "(self::gramGrp or count(tei:pos/text())"
- means "you're either P4 or <pos> in P5 is non-empty"
--->
- <xsl:template match="tei:gramGrp">
- <xsl:variable name="bracket"
- select="count(ancestor::tei:gramGrp)=0 and (count(tei:pos/text()) or count(tei:*[local-name() != 'pos']))"
- />
- <xsl:if test="$bracket">
- <xsl:text> &lt;</xsl:text>
- </xsl:if>
- <xsl:for-each
- select="tei:pos[text()] | tei:subc | tei:num | tei:number | tei:gen | tei:gramGrp | tei:iType | tei:gram | tei:case">
- <xsl:apply-templates select="."/>
- <xsl:if test="position()!=last()">
- <xsl:text>, </xsl:text>
- </xsl:if>
- </xsl:for-each>
- <xsl:if test="$bracket">
- <xsl:text>></xsl:text>
- </xsl:if>
-
- <!-- <xr> elements are not allowed inside <form> or <gramGrp>, so reach out and grab them... -->
- <xsl:if
- test="count(preceding-sibling::tei:xr[@type='plural-form' or @type='imp-form' or
- @type='past-form' or @type='infl-form'])">
- <xsl:text> </xsl:text>
- <xsl:apply-templates
- select="preceding-sibling::tei:xr[@type='plural-form' or @type='imp-form' or
- @type='past-form' or @type='infl-form']"
- />
- </xsl:if>
- <!-- horribly project-specific, will be overridden by project-specific imports later on;
- OTOH, we might make this a project feature, too, if there is a need -->
- <xsl:if test="preceding-sibling::tei:form/@type='N'">
- <xsl:text> [sg=pl]</xsl:text>
- </xsl:if>
- </xsl:template>
-
- <xsl:template match="tei:gram[@type='cl-agr']">
- <xsl:value-of select="concat('agr: ',.)"/>
- </xsl:template>
-
-<!-- senses -->
- <xsl:template match="tei:sense">
- <xsl:variable name="prec_senses">
- <xsl:choose>
- <xsl:when test="not(preceding-sibling::tei:sense)">0</xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="count(preceding-sibling::tei:sense)"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:variable name="pref">
- <xsl:choose>
- <xsl:when test="@n">
- <xsl:value-of select="concat(@n,'. ')"/>
- </xsl:when>
- <xsl:when test="number($prec_senses) > 0 or following-sibling::tei:sense">
- <xsl:value-of select="concat(position(),'. ')"/>
- </xsl:when>
- </xsl:choose>
- </xsl:variable>
- <xsl:if test="number($prec_senses) > 0">
- <xsl:text>&#xa;</xsl:text>
- </xsl:if>
- <xsl:value-of select="concat(' ',$pref)"/>
- <xsl:apply-templates/>
- </xsl:template>
-
- <xsl:template match="tei:cit"><!--cit can be @trans, @example, (@colloc) and simple cit (for idiomatic expression)-->
- <xsl:choose>
- <xsl:when test="@type ='trans'">
-<!-- <xsl:if test="preceding-sibling::tei:cit[@type='trans']"><xsl:text> ◊ </xsl:text></xsl:if> -->
- <xsl:if test="not(preceding-sibling::tei:cit[@type='trans']) and parent::tei:cit"><xsl:text> - </xsl:text></xsl:if>
- <xsl:if test="preceding-sibling::tei:cit[@type='trans']"><xsl:text>, </xsl:text></xsl:if>
- <xsl:apply-templates/>
- </xsl:when>
- <xsl:when test="@type ='example'">
- <xsl:text>&#xa; </xsl:text>
- <xsl:apply-templates/>
- </xsl:when>
- <xsl:when test="@type ='colloc'">
- <xsl:text> (</xsl:text>
- <xsl:apply-templates/>
- <xsl:text>) </xsl:text>
- </xsl:when>
- <xsl:otherwise>
- <xsl:apply-templates/>
- <xsl:text> </xsl:text>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
-
- <xsl:template match="tei:quote">
- <xsl:choose>
- <xsl:when test="parent::tei:cit[@type='example']">
- <xsl:value-of select="concat('&quot;',.,'&quot; ')"/>
- </xsl:when><!--
- <xsl:when test="parent::tei:cit[@type='trans'][parent::tei:cit]">
-
- <xsl:value-of select="concat(' - ',.,' ')"/>
- </xsl:when>-->
- <xsl:when test="preceding-sibling::tei:quote"> <!-- parent::tei:cit[@type='trans'] and -->
- <xsl:value-of select="', '"/>
- <xsl:apply-templates/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:apply-templates/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template><!---->
-
- <xsl:template match="tei:usg">
- <xsl:text> [</xsl:text>
- <xsl:value-of select="."/>
- <xsl:text>] </xsl:text>
- </xsl:template>
-
- <xsl:template match="tei:def">
- <xsl:variable name="stuff">
- <xsl:apply-templates select="*|text()"/>
- </xsl:variable>
- <!-- first question: am I abused? Do I hold a translation equivalent
- within a <sense>, or am I a real definition within a <cit>? -->
- <xsl:choose>
- <xsl:when test="parent::tei:sense">
- <xsl:variable name="separator">
- <xsl:choose>
- <xsl:when test="preceding-sibling::tei:def">
- <xsl:value-of select="'; '"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="' '"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:value-of select="concat($separator,$stuff)"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:call-template name="format">
- <xsl:with-param name="txt" select="normalize-space($stuff)"/>
- <xsl:with-param name="width" select="75"/>
- <xsl:with-param name="start" select="4"/>
- </xsl:call-template>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
-
- <xsl:template match="tei:xr">
- <xsl:choose>
- <xsl:when test="count(@rend) and @rend='as-is'">
- <xsl:apply-templates/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:choose>
- <xsl:when test="not(@type) or @type='cf'">
- <xsl:text>&#xa; See also: </xsl:text>
- <xsl:apply-templates select="tei:ref"/>
- <!-- <xsl:text>&#xa;</xsl:text> -->
- </xsl:when>
- <xsl:when test="@type='syn'">
- <xsl:text>&#xa; </xsl:text>
- <xsl:choose>
- <xsl:when test="count(tei:ref) &gt; 1">
- <xsl:text>Synonyms: </xsl:text>
- </xsl:when>
- <xsl:otherwise>
- <xsl:text>Synonym: </xsl:text>
- </xsl:otherwise>
- </xsl:choose>
- <xsl:apply-templates select="tei:ref"/>
- <!-- <xsl:text>&#xa;</xsl:text> -->
- </xsl:when>
- <xsl:when test="@type='ant'">
- <xsl:text>&#xa; </xsl:text>
- <xsl:choose>
- <xsl:when test="count(tei:ref) &gt; 1">
- <xsl:text>Antonyms: </xsl:text>
- </xsl:when>
- <xsl:otherwise>
- <xsl:text>Antonym: </xsl:text>
- </xsl:otherwise>
- </xsl:choose>
- <xsl:apply-templates select="tei:ref"/>
- <!-- <xsl:text>&#xa;</xsl:text> -->
- </xsl:when>
- <xsl:when test="@type='infl-base'">
- <!-- inflectional base -->
- <xsl:text>&#xa; Inflection of: </xsl:text>
- <xsl:apply-templates select="tei:ref"/>
- <xsl:text>&#xa;</xsl:text>
- </xsl:when>
- <xsl:when test="@type='deriv-base'">
- <!-- derivational/compound base -->
- <xsl:text>&#xa; Derived from: </xsl:text>
- <xsl:apply-templates select="tei:ref"/>
- <xsl:text>&#xa;</xsl:text>
- </xsl:when>
- <!-- the <xr>s below are positioned inline -->
- <xsl:when test="@type='imp-form'">
- <!-- imperative -->
- <xsl:text>(imp: </xsl:text>
- <xsl:apply-templates select="tei:ref"/>
- <xsl:text>)</xsl:text>
- </xsl:when>
- <xsl:when test="@type='plural-form'">
- <!-- plural -->
- <xsl:text>(pl: </xsl:text>
- <xsl:apply-templates select="tei:ref"/>
- <xsl:text>)</xsl:text>
- </xsl:when>
- <xsl:when test="@type='past-form'">
- <!-- past -->
- <xsl:text>(past: </xsl:text>
- <xsl:apply-templates select="tei:ref"/>
- <xsl:text>)</xsl:text>
- </xsl:when>
- <xsl:when test="@type='infl-form'">
- <!-- general inflections, e.g. past/pprt/fut -->
- <xsl:text>(</xsl:text>
- <xsl:apply-templates select="tei:ref"/>
- <xsl:text>)</xsl:text>
- </xsl:when>
- <xsl:otherwise>
- <!-- unknown type: print the value and set it on a separate line -->
- <xsl:text>&#xa; </xsl:text>
- <xsl:value-of select="concat(@type,': ')"/>
- <xsl:apply-templates select="tei:ref"/>
- <xsl:text>&#xa;</xsl:text>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
-
- <xsl:template match="tei:ref">
- <xsl:if test="preceding-sibling::*[1][self::tei:ref]">
- <xsl:text>, </xsl:text>
- </xsl:if>
- <xsl:choose>
- <xsl:when test="ancestor::tei:teiHeader or ancestor::tei:front">
- <xsl:value-of select="concat(.,' [',@target,']')"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="concat('{',.,'}')"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
-
- <xsl:template match="tei:entry//tei:p">
- <xsl:apply-templates/>
- </xsl:template>
-
- <xsl:template match="tei:note[@type='editor']" priority="1"/>
-
- <xsl:template match="tei:entry//tei:note">
- <xsl:variable name="stuff">
- <xsl:apply-templates/>
- </xsl:variable>
- <xsl:variable name="spc">
- <xsl:choose>
- <xsl:when test="(count(preceding-sibling::node())=0) or @rend='noindent'">
- <xsl:value-of select="''"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="' '"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:choose>
- <xsl:when test="count(@*)=0">
- <xsl:value-of select="concat('&#xa; Note: ',$stuff)"/>
- </xsl:when>
- <xsl:when test="@resp='translator'">
- <xsl:text>&#xa; Entry edited by: </xsl:text>
- <xsl:value-of select="."/>
- <xsl:text>&#xa;</xsl:text>
- </xsl:when>
- <!-- a subset of values from the TEI Guidelines -->
- <xsl:when
- test="@type='lbl' or @type='dom' or @type='obj' or @type='subj' or @type='hint' or @type='num' or @type='geo' or @type='syn' or @type='colloc'">
- <xsl:value-of select="concat($spc,'(',.,')')"/>
- </xsl:when>
- <xsl:when test="@type='gram'">
- <xsl:text>&#xa;</xsl:text>
- <xsl:call-template name="format">
- <xsl:with-param name="txt" select="concat(' (',normalize-space($stuff),')')"/>
- <!-- select="concat(' Note (gram.): ',normalize-space($stuff))"-->
- <xsl:with-param name="width" select="75"/>
- <xsl:with-param name="start" select="1"/>
- </xsl:call-template>
- </xsl:when>
- <xsl:when test="@type='usage'">
- <xsl:text>&#xa;</xsl:text>
- <xsl:call-template name="format">
- <xsl:with-param name="txt" select="concat(' (',normalize-space($stuff),')')"/>
- <!-- select="concat(' Usage: ',normalize-space($stuff))"-->
- <xsl:with-param name="width" select="75"/>
- <xsl:with-param name="start" select="1"/>
- </xsl:call-template>
- </xsl:when>
- <xsl:when test="@type='def'">
- <xsl:text>&#xa;</xsl:text>
- <xsl:call-template name="format">
- <!--<xsl:with-param name="txt" select="concat(' Def.: ',normalize-space())"/>-->
- <xsl:with-param name="txt" select="concat(' ',normalize-space($stuff))"/>
- <xsl:with-param name="width" select="75"/>
- <xsl:with-param name="start" select="1"/>
- </xsl:call-template>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="concat($spc,'(',$stuff,')')"/>
- <xsl:text>&#xa;</xsl:text>
- </xsl:otherwise>
- <!--<xsl:when test="text()">
- <xsl:text>&#xa; Note: </xsl:text>
- <xsl:value-of select="text()"/>
- </xsl:when>-->
- </xsl:choose>
- </xsl:template>
-
- <xsl:template match="tei:q">
- <xsl:value-of select="concat('&quot;',.,'&quot;')"/>
- </xsl:template>
-
- <xsl:template match="tei:lbl">
- <xsl:text> (</xsl:text>
- <xsl:value-of select="."/>
- <xsl:text>) </xsl:text>
-</xsl:template>
-
- <xsl:template match="tei:author">
- <xsl:value-of select="concat(.,' ')"/>
-</xsl:template>
-
-<xsl:template match=" tei:pos | tei:subc | tei:num | tei:number | tei:gen | tei:iType | tei:gram | tei:case">
- <xsl:choose>
- <xsl:when test="not(parent::tei:gramGrp)">
- <xsl:value-of select="concat(' ',.)"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="."/>
- </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-</xsl:stylesheet>
-
diff --git a/xsl/inc/teiheader2txt.xsl b/xsl/inc/teiheader2txt.xsl
deleted file mode 100644
index 7c6ecff..0000000
--- a/xsl/inc/teiheader2txt.xsl
+++ /dev/null
@@ -1,251 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:tei="http://www.tei-c.org/ns/1.0" xmlns:xd="http://www.pnp-software.com/XSLTdoc">
-
- <xsl:import href="indent.xsl"/>
-
- <!-- Width of display, so indendation can be done nicely -->
- <xsl:param name="width" select="75"/>
- <xsl:param name="current-date"/>
-
- <xsl:strip-space elements="*"/>
-
-
- <!-- For transforming the teiHeader -->
-
- <xsl:template match="tei:titleStmt">
- <xsl:value-of select="tei:title"/>
- <xsl:text>&#xa;&#xa;</xsl:text>
- <xsl:for-each select="tei:respStmt">
- <xsl:value-of select="tei:resp"/>: <xsl:value-of select="tei:name"/>
- <xsl:text>&#xa;</xsl:text>
- </xsl:for-each>
- <xsl:text>&#xa;</xsl:text>
- </xsl:template>
-
- <!-- editionStmt consists of <edition/> followed by (respStmt)* -->
- <xsl:template match="tei:editionStmt">
- <xsl:text>Edition: </xsl:text>
- <xsl:apply-templates select="tei:edition"/>
- <xsl:text>&#xa;</xsl:text>
-
- <xsl:if test="tei:respStmt">
- <xsl:for-each select="tei:respStmt">
- <xsl:call-template name="format">
- <xsl:with-param name="txt" select="normalize-space(concat(tei:name, ': ', tei:resp))"/>
- <xsl:with-param name="width" select="$width"/>
- <xsl:with-param name="start" select="string-length(tei:name) + 3"/>
- </xsl:call-template>
- </xsl:for-each>
- <xsl:text>&#xa;</xsl:text>
- </xsl:if>
- </xsl:template>
-
- <xsl:template match="tei:extent">
- <xsl:text>Size: </xsl:text>
- <xsl:value-of select="."/>
- <xsl:text>&#xa;&#xa;</xsl:text>
- </xsl:template>
-
- <xd:doc>I understand this is needed for cases where we merely redistribute stuff.</xd:doc>
- <xsl:template match="tei:publisher">
- <xsl:value-of select="concat('Publisher: ',.,'.&#xa;')"/>
- </xsl:template>
-
- <xd:doc>For upstream publishers, I guess.</xd:doc>
- <xsl:template match="tei:publicationStmt/tei:date">
- <xsl:value-of select="concat('Publication date: ',.,'.&#xa;')"/>
- </xsl:template>
-
- <xd:doc>Shouldn't this always be the FreeDict URL?</xd:doc>
- <xsl:template match="tei:pubPlace">
- <xsl:value-of select="concat('Published at: ',tei:ref,'&#xa;')"/>
- </xsl:template>
-
- <xsl:template match="tei:availability">
- <xsl:variable name="spaced_ps">
- <xsl:for-each select="tei:p">
- <xsl:value-of select="concat(.,' ')"/>
- </xsl:for-each>
- </xsl:variable>
- <xsl:text>&#xa;&#xa;Availability:&#xa;&#xa; </xsl:text>
- <xsl:call-template name="format">
- <xsl:with-param name="txt" select="normalize-space($spaced_ps)"/>
- <xsl:with-param name="width" select="$width"/>
- <xsl:with-param name="start" select="2"/>
- </xsl:call-template>
- <xsl:text>&#xa;</xsl:text>
- </xsl:template>
-
- <xsl:template match="tei:publicationStmt">
- <xsl:apply-templates/>
- <xsl:text>&#xa;</xsl:text>
- </xsl:template>
-
- <xsl:template match="tei:seriesStmt">
- <xsl:text>Series: </xsl:text>
- <xsl:value-of select="tei:title"/>
- <xsl:text>&#xa;&#xa;</xsl:text>
- </xsl:template>
-
- <xsl:template match="tei:notesStmt">
- <xsl:text>Notes:&#xa;&#xa;</xsl:text>
- <xsl:apply-templates/>
- <xsl:text>&#xa;</xsl:text>
- </xsl:template>
-
- <xsl:template match="tei:teiHeader//tei:note">
- <xsl:text> * </xsl:text>
- <xsl:if test="@type and (@type = 'status')">
- <xsl:text>Database Status: </xsl:text>
- </xsl:if>
- <xsl:call-template name="format">
- <xsl:with-param name="txt" select="normalize-space()"/>
- <xsl:with-param name="width" select="$width"/>
- <xsl:with-param name="start" select="3"/>
- </xsl:call-template>
- <xsl:text>&#xa;</xsl:text>
- </xsl:template>
-
- <xsl:template match="tei:sourceDesc">
- <xsl:text>Source(s):&#xa;&#xa; </xsl:text>
- <xsl:variable name="sdtext">
- <xsl:apply-templates/>
- </xsl:variable>
- <xsl:call-template name="format">
- <xsl:with-param name="txt" select="normalize-space($sdtext)"/>
- <xsl:with-param name="width" select="$width"/>
- <xsl:with-param name="start" select="2"/>
- </xsl:call-template>
- <xsl:text>&#xa;</xsl:text>
- </xsl:template>
-
- <xsl:template match="tei:p">
- <xsl:text> </xsl:text>
- <xsl:apply-templates/>
- <xsl:text>&#xa;&#xa;</xsl:text>
- </xsl:template>
-
- <xsl:template match="tei:ptr">
- <xsl:value-of select="@target"/>
- </xsl:template>
-
- <xsl:template match="tei:revisionDesc">
- <xsl:text>Changelog:&#xa;&#xa;</xsl:text>
- <xsl:if test="string-length($current-date)>0">
- <!-- Add conversion timestamp -->
- <xsl:text> * </xsl:text>
- <xsl:value-of select="$current-date"/>
- <xsl:text>: Conversion of the TEI source file into c5 format.</xsl:text>
- <xsl:text>&#xa;</xsl:text>
- </xsl:if>
- <xsl:apply-templates/>
- </xsl:template>
-
- <xsl:template match="tei:change">
- <xsl:variable name="when">
- <xsl:choose>
- <xsl:when test="tei:date">
- <xsl:value-of select="tei:date"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="@when"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:variable name="who">
- <xsl:choose>
- <xsl:when test="tei:name">
- <xsl:value-of select="tei:name[1]"/>
- </xsl:when>
- <xsl:when test="@who">
- <xsl:variable name="who-attr" select="@who"/>
- <xsl:variable name="name-elem"
- select="/tei:TEI/tei:teiHeader/tei:fileDesc/tei:titleStmt/tei:respStmt/tei:name[@xml:id = substring-after($who-attr,'#')]"/>
- <xsl:choose>
- <xsl:when test="$name-elem">
- <xsl:value-of select="$name-elem"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="$who-attr"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:when>
- </xsl:choose>
- </xsl:variable>
- <xsl:value-of select="concat(' * ',$when,' ',$who)"/>
-
- <!-- this is for the version information -->
- <xsl:if test="@n">
- <xsl:text> </xsl:text>
- <xsl:value-of select="concat('ver. ',@n)"/>
- </xsl:if>
- <xsl:text>:&#xa;</xsl:text>
- <xsl:apply-templates mode="changelog"/>
-
- </xsl:template>
-
- <!-- we pull these in separately -->
- <xsl:template mode="changelog" match="tei:*[1][local-name() = 'date']"/>
- <xsl:template mode="changelog" match="tei:name[1]"/>
-
- <xsl:template mode="changelog" match="text()[string-length(normalize-space()) > 0]">
- <xsl:variable name="stuff">
- <xsl:choose>
- <xsl:when test="substring(.,1,2)=': '">
- <xsl:value-of select="substring-after(.,': ')"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="."/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:call-template name="format">
- <xsl:with-param name="txt" select="concat(' ',normalize-space($stuff))"/>
- <xsl:with-param name="width" select="$width"/>
- <xsl:with-param name="start" select="3"/>
- </xsl:call-template>
- </xsl:template>
-
- <!-- if the 'change' element has all three attrs: @n, @who and @when set, do not process 'head' -->
- <xsl:template match="tei:list" mode="changelog">
- <xsl:variable name="indent" select="count(ancestor-or-self::tei:list)*3"/>
- <xsl:if test="tei:head and not(string-length(ancestor::tei:change[1]/@n) &gt; 0 and
- string-length(ancestor::tei:change[1]/@who) &gt; 0 and
- string-length(ancestor::tei:change[1]/@when) &gt; 0)">
- <xsl:call-template name="format">
- <xsl:with-param name="txt" select="concat(' ',normalize-space(tei:head))"/>
- <xsl:with-param name="width" select="$width"/>
- <xsl:with-param name="start" select="$indent"/>
- </xsl:call-template>
- <!--<xsl:text>&#xa;</xsl:text>-->
- </xsl:if>
- <xsl:for-each select="tei:item">
- <xsl:variable name="item-content">
- <xsl:choose>
- <xsl:when test="tei:list">
- <xsl:apply-templates select="tei:list/preceding-sibling::tei:*|text()"/>
- <!-- this is obviously a kludge: I assume that a nested <list/> is always the last element in an <item/> -->
- </xsl:when>
- <xsl:otherwise>
- <xsl:apply-templates select="tei:*|text()"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:call-template name="format">
- <xsl:with-param name="txt"
- select="concat(substring(' ', 1, $indent),'* ',normalize-space($item-content))"/>
- <xsl:with-param name="width" select="$width"/>
- <xsl:with-param name="start" select="$indent+2"/>
- </xsl:call-template>
- <!--<xsl:text>&#xa;</xsl:text>-->
- <xsl:if test="tei:list">
- <xsl:apply-templates select="tei:list"/>
- </xsl:if>
- </xsl:for-each>
- </xsl:template>
- <xsl:template match="tei:tagsDecl"/>
- <xsl:template match="tei:langUsage"/>
-
-</xsl:stylesheet>