feature: limitenclosure option
This commit is contained in:
parent
67f2e32cc8
commit
25580d3195
173
rss.xsl
173
rss.xsl
|
@ -1,19 +1,28 @@
|
|||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" encoding="UTF-8" version="1.0">
|
||||
<!--
|
||||
xmlns:exsltstr="http://exslt.org/strings"
|
||||
-->
|
||||
<xsl:output omit-xml-declaration="yes"/>
|
||||
|
||||
<xsl:template match="/schleudern">
|
||||
<!--DOCTYPE rss-->
|
||||
<!--
|
||||
|
||||
|
||||
</rss>
|
||||
-->
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||
|
||||
<channel>
|
||||
<xsl:variable name="limitenclosures">0</xsl:variable><!-- 0:no limit, 1:limit is one -->
|
||||
<xsl:variable name="protocol">https://</xsl:variable>
|
||||
<xsl:variable name="baseurl">ds.ccc.de</xsl:variable>
|
||||
<xsl:variable name="feedfile">/ds-feed.xml</xsl:variable>
|
||||
<xsl:element name="atom:link">
|
||||
<xsl:attribute name="rel">self</xsl:attribute>
|
||||
<xsl:attribute name="href"><xsl:value-of select="concat($protocol,$baseurl,$feedfile)"/></xsl:attribute>
|
||||
<xsl:attribute name="type">application/rss+xml</xsl:attribute>
|
||||
</xsl:element>
|
||||
<!--
|
||||
<atom:link href="https://ds.ccc.de/ds-feed.xml" rel="self" type="application/rss+xml" />
|
||||
-->
|
||||
<title>Datenschleuder</title>
|
||||
<link>https://ds.ccc.de</link>
|
||||
<xsl:element name="link"><xsl:value-of select="concat($protocol,$baseurl,'/')"/></xsl:element><!-- <link>https://ds.ccc.de</link> -->
|
||||
<description>Das wissenschaftliche Fachblatt für Datenreisende; ein Organ des Chaos Computer Club.</description>
|
||||
<language>de</language>
|
||||
<!--copyright></copyright-->
|
||||
|
@ -21,9 +30,9 @@
|
|||
<!--lastBuildDate></lastBuildDate-->
|
||||
<ttl>65535</ttl>
|
||||
<image>
|
||||
<url>https://ds.ccc.de/i/ds_headline.gif</url>
|
||||
<xsl:element name="url"><xsl:value-of select="concat($protocol,$baseurl,'/i/ds_headline.gif')"/></xsl:element><!-- <url>https://ds.ccc.de</url> -->
|
||||
<title>Datenschleuder</title>
|
||||
<link>https://ds.ccc.de</link>
|
||||
<xsl:element name="link"><xsl:value-of select="concat($protocol,$baseurl,'/')"/></xsl:element>
|
||||
</image>
|
||||
|
||||
<!--
|
||||
|
@ -40,45 +49,133 @@
|
|||
-->
|
||||
|
||||
<xsl:for-each select="schleuder">
|
||||
<xsl:variable name="type">
|
||||
<xsl:choose>
|
||||
<xsl:when test="substring(link, string-length(link) - 3) = 'html'">html</xsl:when>
|
||||
<xsl:when test="substring(link, string-length(link) - 2) = 'pdf'">pdf</xsl:when>
|
||||
<xsl:otherwise>unknown</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<!--
|
||||
<xsl:for-each select="catalog/cd">
|
||||
-->
|
||||
<xsl:element name="item">
|
||||
<!-- we do not have most optional elements -->
|
||||
<xsl:choose>
|
||||
<xsl:when test="$type = 'pdf'">
|
||||
<xsl:element name="guid">
|
||||
<xsl:attribute name="isPermaLink">true</xsl:attribute>
|
||||
<xsl:value-of select="concat('https://ds.ccc.de',link)"/>
|
||||
</xsl:element>
|
||||
<xsl:element name="enclosure">
|
||||
<xsl:attribute name="url"><xsl:value-of select="concat('https://ds.ccc.de',link)"/></xsl:attribute>
|
||||
<xsl:attribute name="length"><xsl:value-of select="filesize"/></xsl:attribute>
|
||||
<xsl:attribute name="type">application/pdf</xsl:attribute>
|
||||
</xsl:element>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:element name="guid">
|
||||
<xsl:attribute name="isPermaLink">false</xsl:attribute>
|
||||
<xsl:value-of select="concat('ds-',@id)"/>
|
||||
</xsl:element>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<xsl:element name="title"><xsl:value-of select="concat('Datenschleuder #',@id)"/></xsl:element>
|
||||
<xsl:element name="link"><xsl:value-of select="concat('https://ds.ccc.de',link)"/></xsl:element>
|
||||
|
||||
<xsl:element name="description">
|
||||
<xsl:text disable-output-escaping="yes"><![CDATA[</xsl:text>
|
||||
<xsl:value-of select="concat('Ausgabe #',@id)"/>
|
||||
<xsl:text disable-output-escaping="yes">]]></xsl:text>
|
||||
<xsl:text disable-output-escaping="yes"><![CDATA[ </xsl:text>
|
||||
<xsl:value-of select="concat('Ausgabe #',@id,' ')"/>
|
||||
|
||||
<xsl:if test="string-length(preface) > 0">
|
||||
<xsl:element name="a"><xsl:attribute name="href"><xsl:value-of select="concat($protocol,$baseurl,preface)"/></xsl:attribute>Geleitwort</xsl:element>
|
||||
</xsl:if>
|
||||
|
||||
<xsl:if test="string-length(image) > 0">
|
||||
<xsl:text disable-output-escaping="yes"> </xsl:text>
|
||||
<xsl:element name="img"><xsl:attribute name="src">
|
||||
<xsl:value-of select="concat($protocol,$baseurl,'/',image)"/></xsl:attribute>
|
||||
</xsl:element>
|
||||
</xsl:if>
|
||||
|
||||
<xsl:for-each select="link">
|
||||
<xsl:if test="((position() > 1) and ($limitenclosures = 1))">
|
||||
<xsl:text disable-output-escaping="yes"> </xsl:text>
|
||||
<xsl:element name="a"><xsl:attribute name="href"><xsl:value-of select="concat($protocol,$baseurl,.)"/></xsl:attribute><xsl:value-of select="concat('Anhang ',position())"/></xsl:element>
|
||||
</xsl:if>
|
||||
</xsl:for-each>
|
||||
|
||||
<xsl:text disable-output-escaping="yes"> ]]></xsl:text>
|
||||
</xsl:element>
|
||||
|
||||
<xsl:choose>
|
||||
<xsl:when test="not(date)"></xsl:when>
|
||||
<xsl:otherwise><xsl:element name="pubDate"><xsl:value-of select="date"/></xsl:element></xsl:otherwise>
|
||||
</xsl:choose>
|
||||
|
||||
<xsl:variable name="id">
|
||||
<xsl:value-of select="@id"/>
|
||||
</xsl:variable>
|
||||
|
||||
<xsl:for-each select="link">
|
||||
|
||||
<xsl:variable name="position">
|
||||
<xsl:value-of select="position()"/>
|
||||
</xsl:variable>
|
||||
|
||||
<xsl:variable name="href">
|
||||
<xsl:value-of select="concat($protocol,$baseurl,.)"/>
|
||||
</xsl:variable>
|
||||
|
||||
<xsl:variable name="filesize">
|
||||
<xsl:choose>
|
||||
<xsl:when test="string-length(@filesize) > 0">
|
||||
<xsl:value-of select="@filesize"/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:value-of select="../filesize"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
|
||||
<xsl:variable name="type">
|
||||
<xsl:choose>
|
||||
<xsl:when test="substring($href, string-length($href) - 2) = 'pdf'">pdf</xsl:when>
|
||||
<xsl:when test="substring($href, string-length($href) - 3) = 'html'">html</xsl:when>
|
||||
<xsl:when test="substring($href, string-length($href) - 3) = 'epub'">epub</xsl:when>
|
||||
<xsl:otherwise>unknown</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
|
||||
<xsl:if test="$position = 1">
|
||||
<xsl:if test="$type != 'html'">
|
||||
<xsl:element name="guid">
|
||||
<xsl:attribute name="isPermaLink">true</xsl:attribute>
|
||||
<xsl:value-of select="$href"/>
|
||||
</xsl:element>
|
||||
</xsl:if>
|
||||
<xsl:if test="$type = 'html'">
|
||||
<xsl:element name="guid">
|
||||
<xsl:attribute name="isPermaLink">true</xsl:attribute>
|
||||
<xsl:value-of select="concat('https://www.offiziere.ch/trust-us/ds/',substring($id, 0, 3))"/>
|
||||
</xsl:element>
|
||||
</xsl:if>
|
||||
<xsl:element name="link">
|
||||
<xsl:value-of select="$href"/>
|
||||
</xsl:element>
|
||||
</xsl:if>
|
||||
|
||||
<xsl:if test="((($position > 1) and ($limitenclosures = 0)) or ($position = 1))">
|
||||
<xsl:choose>
|
||||
<xsl:when test="$type = 'pdf'">
|
||||
|
||||
<xsl:element name="enclosure">
|
||||
<xsl:attribute name="url"><xsl:value-of select="$href"/></xsl:attribute>
|
||||
<xsl:attribute name="length"><xsl:value-of select="$filesize"/></xsl:attribute>
|
||||
<xsl:attribute name="type">application/pdf</xsl:attribute>
|
||||
</xsl:element>
|
||||
|
||||
</xsl:when>
|
||||
<xsl:when test="$type = 'epub'">
|
||||
|
||||
<xsl:element name="enclosure">
|
||||
<xsl:attribute name="url"><xsl:value-of select="$href"/></xsl:attribute>
|
||||
<xsl:attribute name="length"><xsl:value-of select="$filesize"/></xsl:attribute>
|
||||
<xsl:attribute name="type">application/epub+zip</xsl:attribute>
|
||||
</xsl:element>
|
||||
|
||||
</xsl:when>
|
||||
<!--
|
||||
<xsl:otherwise>
|
||||
</xsl:otherwise>
|
||||
-->
|
||||
</xsl:choose>
|
||||
</xsl:if>
|
||||
|
||||
</xsl:for-each>
|
||||
|
||||
<xsl:if test="count(link) = 0">
|
||||
<xsl:element name="guid">
|
||||
<xsl:attribute name="isPermaLink">true</xsl:attribute>
|
||||
<!--
|
||||
<xsl:value-of select="concat($protocol,$baseurl,'/#',exsltstr:encode-uri(@id, 'true', 'UTF-8'))"/>
|
||||
-->
|
||||
<xsl:value-of select="concat($protocol,$baseurl,'/#',@id)"/>
|
||||
</xsl:element>
|
||||
</xsl:if>
|
||||
</xsl:element>
|
||||
</xsl:for-each>
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user