209 lines
6.1 KiB
XML
209 lines
6.1 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<xsl:stylesheet version="1.0"
|
|
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
|
xmlns:rss="http://purl.org/rss/1.0/"
|
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
xmlns:date="http://exslt.org/dates-and-times"
|
|
exclude-result-prefixes="xsl rss rdf date">
|
|
|
|
<xsl:template match="pre">
|
|
<xsl:copy><xsl:apply-templates/></xsl:copy>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="p">
|
|
<xsl:if test="@title">
|
|
<h3>
|
|
<xsl:value-of select="@title"/>
|
|
</h3>
|
|
</xsl:if>
|
|
<p class="{@class}">
|
|
<xsl:apply-templates/>
|
|
</p>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="dl">
|
|
<xsl:copy><xsl:apply-templates/></xsl:copy>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="dh">
|
|
<dt class="main"><xsl:apply-templates/></dt>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="dt">
|
|
<xsl:copy><xsl:apply-templates/></xsl:copy>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="dd">
|
|
<xsl:copy><xsl:apply-templates/></xsl:copy>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="ul">
|
|
<xsl:copy><xsl:apply-templates/></xsl:copy>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="ol">
|
|
<xsl:copy><xsl:apply-templates/></xsl:copy>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="li">
|
|
<xsl:copy><xsl:apply-templates/></xsl:copy>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="image">
|
|
<xsl:element name="img">
|
|
<xsl:attribute name="src"><xsl:value-of select="."/></xsl:attribute>
|
|
<xsl:attribute name="title"><xsl:value-of select="@title"/></xsl:attribute>
|
|
<xsl:attribute name="alt"><xsl:value-of select="@title"/></xsl:attribute>
|
|
<xsl:attribute name="class"><xsl:value-of select="@class"/></xsl:attribute>
|
|
</xsl:element>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="link">
|
|
<xsl:element name="a">
|
|
<xsl:choose>
|
|
<xsl:when test="@href">
|
|
<xsl:attribute name="href"><xsl:value-of select="@href"/></xsl:attribute>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:attribute name="href"><xsl:value-of select="."/></xsl:attribute>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
<xsl:apply-templates/>
|
|
</xsl:element>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="em">
|
|
<xsl:element name="em">
|
|
<xsl:value-of select="."/>
|
|
</xsl:element>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="addendum">
|
|
<!--
|
|
Wenn wir nicht in news/ oder anderem sind, dann
|
|
zeige nicht vollen Newstext (<addendum/>)
|
|
-->
|
|
<xsl:if test="string-length($baseurl) > 0">
|
|
<xsl:apply-templates/>
|
|
</xsl:if>
|
|
</xsl:template>
|
|
|
|
<!-- Resources gehören nicht zum generellen Artikeltext
|
|
und kommen explizit danach -->
|
|
<xsl:template match="resource"/>
|
|
|
|
<xsl:template name="navitem">
|
|
<xsl:param name="file"/>
|
|
<xsl:param name="baseurl"/>
|
|
<xsl:param name="title"/>
|
|
<li>
|
|
<a href="{$baseurl}{$file}.html">
|
|
<xsl:choose>
|
|
<xsl:when test="string-length($title) = 0">
|
|
<xsl:if test="document(concat('../content/pages/', $file, '.xml'))/page/@pagetitle">
|
|
<xsl:attribute name="title"><xsl:value-of select="document(concat('../content/pages/', $file, '.xml'))/page/@pagetitle"/></xsl:attribute>
|
|
</xsl:if>
|
|
|
|
<xsl:value-of select="document(concat('../content/pages/', $file, '.xml'))/page/@title"/>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:value-of select="$title"/>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</a>
|
|
</li>
|
|
</xsl:template>
|
|
|
|
<xsl:template name="navitems">
|
|
<ul>
|
|
<xsl:for-each select="document('../content/navigation.xml')/navigation/file">
|
|
<xsl:call-template name="navitem">
|
|
<xsl:with-param name="file" select="."/>
|
|
<xsl:with-param name="title" select="@title"/>
|
|
<xsl:with-param name="baseurl" select="$baseurl"/>
|
|
</xsl:call-template>
|
|
</xsl:for-each>
|
|
</ul>
|
|
</xsl:template>
|
|
|
|
<xsl:template name="chaosupdates">
|
|
<div id="news">
|
|
<h2>
|
|
<xsl:element name="a">
|
|
<xsl:attribute name="href">
|
|
<xsl:value-of select="document('../chaosupdates.rdf')/rdf:RDF/rss:channel/rss:link"/>
|
|
</xsl:attribute>
|
|
<xsl:value-of select="document('../chaosupdates.rdf')/rdf:RDF/rss:channel/rss:title"/>
|
|
</xsl:element>
|
|
</h2>
|
|
<ul>
|
|
<xsl:for-each select="document('../chaosupdates.rdf')/rdf:RDF/rss:item[position() < 14]">
|
|
<li>
|
|
<xsl:element name="a">
|
|
<xsl:attribute name="href">
|
|
<xsl:value-of select="rss:link"/>
|
|
</xsl:attribute>
|
|
<xsl:value-of select="rss:title"/>
|
|
</xsl:element>
|
|
</li>
|
|
</xsl:for-each>
|
|
</ul>
|
|
</div> <!-- id="news" -->
|
|
</xsl:template>
|
|
|
|
<!-- Support für <event/> bzw. Microformats -->
|
|
<xsl:include href="date.xsl" />
|
|
<xsl:template match="item/event/start">
|
|
<xsl:variable name="date" select="."/>
|
|
|
|
<dl>
|
|
<dt>
|
|
<xsl:choose>
|
|
<xsl:when test="../end">Beginn</xsl:when>
|
|
<xsl:otherwise>Datum</xsl:otherwise>
|
|
</xsl:choose>
|
|
</dt>
|
|
<dd>
|
|
<abbr class="dtstart">
|
|
<xsl:attribute name="title">
|
|
<xsl:call-template name="date-to-hevent">
|
|
<xsl:with-param name="date" select="$date"/>
|
|
</xsl:call-template>
|
|
</xsl:attribute>
|
|
|
|
<xsl:call-template name="get-datestring">
|
|
<xsl:with-param name="date" select="$date"/>
|
|
</xsl:call-template>
|
|
</abbr>
|
|
</dd>
|
|
</dl>
|
|
</xsl:template>
|
|
<xsl:template match="item/event/end">
|
|
<xsl:variable name="date" select="."/>
|
|
|
|
<dl>
|
|
<dt>Ende</dt>
|
|
<dd>
|
|
<abbr class="dtend">
|
|
<xsl:attribute name="title">
|
|
<xsl:call-template name="date-to-hevent">
|
|
<xsl:with-param name="date" select="$date"/>
|
|
</xsl:call-template>
|
|
</xsl:attribute>
|
|
|
|
<xsl:call-template name="get-datestring">
|
|
<xsl:with-param name="date" select="$date"/>
|
|
</xsl:call-template>
|
|
</abbr>
|
|
</dd>
|
|
</dl>
|
|
</xsl:template>
|
|
<xsl:template match="item/event/location">
|
|
<dl>
|
|
<dt>Ort</dt>
|
|
<dd class="location"><xsl:apply-templates/></dd>
|
|
</dl>
|
|
</xsl:template>
|
|
|
|
</xsl:stylesheet>
|