rss & podcast-feeds w/ <description/> & <content:encoded/>

This commit is contained in:
Astro 2011-07-12 02:08:24 +02:00
parent 49312d0701
commit e633a97350
2 changed files with 26 additions and 92 deletions

View File

@ -8,6 +8,7 @@
xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:date="http://exslt.org/dates-and-times"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
exclude-result-prefixes="xsl date">
<xsl:output method="xml"
@ -145,11 +146,13 @@
<xsl:param name="newsfile"/>
<xsl:choose>
<!-- Gibts ein MP3? -->
<xsl:when test="count(alternative[@type='audio/mpeg']) &gt; 0">
<xsl:apply-templates test="alternative[@type='audio/mpeg'][1]">
<xsl:with-param name="newsfile" select="$newsfile"/>
</xsl:apply-templates>
</xsl:when>
<!-- Nimm was da ist (OGG) -->
<xsl:otherwise>
<xsl:apply-templates select=".">
<xsl:with-param name="newsfile" select="$newsfile"/>
@ -234,6 +237,17 @@
</xsl:call-template>
</pubDate>
<description>
<xsl:value-of select="string(document($newsfile))"/>
</description>
<content:encoded>
<xsl:text disable-output-escaping="yes">&lt;![CDATA[</xsl:text>
<div xmlns="http://www.w3.org/1999/xhtml">
<xsl:apply-templates select="document($newsfile)/item"/>
</div>
<xsl:text disable-output-escaping="yes">]]&gt;</xsl:text>
</content:encoded>
<!-- iTunes-Extensions zum Schluss, sonst validiert es nicht -->
<itunes:subtitle><xsl:value-of select="$resource_title"/></itunes:subtitle>

View File

@ -2,6 +2,7 @@
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:date="http://exslt.org/dates-and-times"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
exclude-result-prefixes="xsl date">
<xsl:include href="common.xsl" />
@ -51,7 +52,17 @@
</xsl:variable>
<title><xsl:value-of select="@title"/></title>
<description><xsl:apply-templates mode="escaped"/></description>
<description>
<xsl:value-of select="string(.)"/>
</description>
<content:encoded>
<xsl:text disable-output-escaping="yes">&lt;![CDATA[</xsl:text>
<div xmlns="http://www.w3.org/1999/xhtml">
<xsl:apply-templates/>
</div>
<xsl:text disable-output-escaping="yes">]]&gt;</xsl:text>
</content:encoded>
<link><xsl:value-of select="$href"/></link>
<author><xsl:value-of select="@author"/></author>
@ -94,95 +105,4 @@
</item>
</xsl:template>
<xsl:template match="pre" mode="escaped">
&lt;pre&gt;<xsl:apply-templates mode="escaped"/>&lt;/pre&gt;
</xsl:template>
<xsl:template match="p" mode="escaped">
&lt;p&gt;<xsl:apply-templates mode="escaped"/>&lt;/p&gt;
</xsl:template>
<xsl:template match="image" mode="escaped">
<xsl:variable name="url"><xsl:choose>
<xsl:when test="contains(., '://')"><xsl:value-of select="."/></xsl:when>
<xsl:otherwise><xsl:value-of select="concat($baseurl, 'images/news/', .)"/></xsl:otherwise>
</xsl:choose></xsl:variable>
&lt;img src="<xsl:value-of select="$url"/>"<xsl:if test="@title"> title="<xsl:value-of select="@title"/>" alt="<xsl:value-of select="@title"/>"</xsl:if><xsl:if test="@class"> class="<xsl:value-of select="@class"/>"</xsl:if>/&gt;
</xsl:template>
<xsl:template match="link" mode="escaped">
<xsl:variable name="href"><xsl:choose>
<xsl:when test="@href"><xsl:value-of select="@href"/></xsl:when>
<xsl:otherwise><xsl:value-of select="."/></xsl:otherwise>
</xsl:choose></xsl:variable>
&lt;a href="<xsl:choose>
<xsl:when test="contains($href, ':')"><xsl:value-of select="$href"/></xsl:when>
<xsl:otherwise><xsl:value-of select="concat($baseurl, $href)"/></xsl:otherwise>
</xsl:choose>"&gt;<xsl:apply-templates mode="escaped"/>&lt;/a&gt;
</xsl:template>
<xsl:template match="dl" mode="escaped">
&lt;dl&gt;<xsl:apply-templates mode="escaped"/>&lt;/dl&gt;
</xsl:template>
<xsl:template match="dh" mode="escaped">
&lt;dt&gt;<xsl:apply-templates mode="escaped"/>&lt;/dt&gt;
</xsl:template>
<xsl:template match="dt" mode="escaped">
&lt;dt&gt;<xsl:apply-templates mode="escaped"/>&lt;/dt&gt;
</xsl:template>
<xsl:template match="dd" mode="escaped">
&lt;dd&gt;<xsl:apply-templates mode="escaped"/>&lt;/dd&gt;
</xsl:template>
<xsl:template match="ul" mode="escaped">
&lt;ul&gt;<xsl:apply-templates mode="escaped"/>&lt;/ul&gt;
</xsl:template>
<xsl:template match="ol" mode="escaped">
&lt;ol&gt;<xsl:apply-templates mode="escaped"/>&lt;/ol&gt;
</xsl:template>
<xsl:template match="li" mode="escaped">
&lt;li&gt;<xsl:apply-templates mode="escaped"/>&lt;/li&gt;
</xsl:template>
<xsl:template match="resource" mode="escaped"/>
<!-- Support für <event/> -->
<xsl:template match="item/event/start" mode="escaped">
&lt;dl&gt;
&lt;dt&gt;
<xsl:choose>
<xsl:when test="../end">Beginn</xsl:when>
<xsl:otherwise>Datum</xsl:otherwise>
</xsl:choose>
&lt;/dt&gt;
&lt;dd&gt;
<xsl:call-template name="get-datestring">
<xsl:with-param name="date" select="."/>
</xsl:call-template>
&lt;/dd&gt;
&lt;/dl&gt;
</xsl:template>
<xsl:template match="item/event/end" mode="escaped">
&lt;dl&gt;
&lt;dt&gt;Ende&lt;/dt&gt;
&lt;dd&gt;
<xsl:call-template name="get-datestring">
<xsl:with-param name="date" select="."/>
</xsl:call-template>
&lt;/dd&gt;
&lt;/dl&gt;
</xsl:template>
<xsl:template match="item/event/location" mode="escaped">
&lt;dl&gt;
&lt;dt&gt;Ort&lt;/dt&gt;
&lt;dd&gt;<xsl:apply-templates mode="escaped"/>&lt;/dd&gt;
&lt;/dl&gt;
</xsl:template>
</xsl:stylesheet>