Tei2wikisource1.xsl
TEI to Wikisource (Vicifons)
This is the first in the set of three stylesheets which convert TEI auctores Latini documents to Wikisource (its Latin version, [1]) format, inserting wikisource "formulae" at appropriate places.
This is a stylesheet for simple prose texts.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:tei="http://www.tei-c.org/ns/1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"
exclude-result-prefixes="tei">
<!-- tei to wiki 2 -->
<!-- description: converts prose texts from Croatiae auctores Latini to wikisource (mediawiki) markup -->
<!-- description: adds navigatione elements (vicifons formula liber) -->
<!-- author: Neven Jovanović, Croatiae auctores Latini -->
<!-- filename: 1102wiki-prorsa.xsl -->
<!-- modified: 2011-02-04 -->
<!-- required input: tei xml file, using a CroALa subset (or similar) -->
<!-- expected output: text file conforming to vicifons with titulus2 and liber formulae -->
<!-- vicifons titulus2: http://la.wikisource.org/wiki/Formula:Titulus2 -->
<!-- vicifons liber: http://la.wikisource.org/wiki/Formula:Liber -->
<!-- known restrictions: requires removal of indent spaces -->
<!-- known restrictions: formula Titulus2 should be repeated at the beginning of each chapter -->
<xsl:output method="html"/>
<xsl:template match="//tei:teiHeader">
<!-- content for formula Titulus2 -->
<xsl:text>
{{titulus2
|Scriptor= </xsl:text><xsl:value-of select="normalize-space(tei:fileDesc/tei:titleStmt/tei:author)"/>
<xsl:text>
|OperaeTitulus= </xsl:text><xsl:value-of select="normalize-space(tei:fileDesc/tei:titleStmt/tei:title)"/><!-- Operae Titulus (required) -->
<xsl:text>
|OperaeWikiPagina= </xsl:text><!-- Latina Vicifontis Pagina -->
<xsl:text>
|Liber= </xsl:text><xsl:value-of select="normalize-space(//tei:sourceDesc//tei:biblStruct)"/><!-- Liber -->
<xsl:text>
|SubTitulus= </xsl:text><!-- SubTitulus -->
<xsl:text>
|Annus= </xsl:text><xsl:value-of select="normalize-space(tei:profileDesc//tei:creation/tei:date)"/><!-- Annus/Saeculum -->
<xsl:text>
}}
</xsl:text>
</xsl:template>
<xsl:template match="//tei:front/tei:div">
<xsl:text>
{{Liber
|Ante= Titulus operis
|AnteNomen= </xsl:text><xsl:value-of select="normalize-space(//tei:fileDesc/tei:titleStmt/tei:title)"/><xsl:text>
|Post= Liber
|PostNomen= </xsl:text><xsl:value-of select="normalize-space(//tei:body/tei:div[1]/tei:head)"/><xsl:text>
}}
</xsl:text>
<div class="text">
<xsl:apply-templates/>
</div>
</xsl:template>
<xsl:template match="//tei:body/tei:div/tei:div">
<!-- should be corrected for front and ch. 1! -->
<xsl:text>
{{Liber
|Ante= </xsl:text><xsl:value-of select="normalize-space(preceding-sibling::tei:div[1]/tei:head)"/><xsl:text>
|AnteNomen= </xsl:text><xsl:value-of select="normalize-space(preceding-sibling::tei:div[1]/tei:head)"/><xsl:text>
|Post= </xsl:text><xsl:value-of select="normalize-space(following-sibling::tei:div[1]/tei:head)"/><xsl:text>
|PostNomen= </xsl:text><xsl:value-of select="normalize-space(following-sibling::tei:div[1]/tei:head)"/><xsl:text>
}}</xsl:text>
<div class="text"><xsl:text>
==</xsl:text><xsl:value-of select="normalize-space(tei:head)"/><xsl:text>==
</xsl:text>
<xsl:apply-templates select="tei:p"/>
</div>
<xsl:apply-templates select="." mode="back"/>
<!-- modes for repeating the Liber formula -->
</xsl:template>
<xsl:template match="//tei:body/tei:div/tei:div" mode="back">
<xsl:text>
{{Liber
|Ante= </xsl:text><xsl:value-of select="normalize-space(preceding-sibling::tei:div[1]/tei:head)"/><xsl:text>
|AnteNomen= </xsl:text><xsl:value-of select="normalize-space(preceding-sibling::tei:div[1]/tei:head)"/><xsl:text>
|Post= </xsl:text><xsl:value-of select="normalize-space(following-sibling::tei:div[1]/tei:head)"/><xsl:text>
|PostNomen= </xsl:text><xsl:value-of select="normalize-space(following-sibling::tei:div[1]/tei:head)"/><xsl:text>
}}</xsl:text>
</xsl:template>
<xsl:template match="//tei:back//text()"/>
<!-- remove any notes from the back -->
</xsl:stylesheet>