<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:date="http://exslt.org/dates-and-times"
  exclude-result-prefixes="xsl date">

<xsl:output method="xml"
            version="1.0"
            encoding="utf-8"
            indent="yes"/>

  <xsl:template match="news">
    <xsl:element name="rss">
      <xsl:attribute name="version">2.0</xsl:attribute>
      <xsl:attribute name="xml:lang">de</xsl:attribute>

      <channel>
        <title>www.c3d2.de Newsfeed</title>
        <link>https://www.c3d2.de/</link>
        <description>Neues aus dem Chaos Computer Club Dresden</description>
        <language>de-de</language>
        <!-- TODO: Insert "now": <pubDate><xsl:value-of select="news/item/@date"/></pubDate> -->
        <xsl:for-each select="newsfile">
          <xsl:sort select="date:seconds(document(.)/item/@date)" data-type="number" order="descending" />

          <xsl:apply-templates select="document(.)/item">
            <xsl:with-param name="newsfile" select="."/>
          </xsl:apply-templates>
        </xsl:for-each>
      </channel>

    </xsl:element>
  </xsl:template>

  <xsl:template match="item">
    <xsl:param name="newsfile"/>
    <item>
      <title><xsl:value-of select="@title"/></title>
      <link>https://www.c3d2.de/<xsl:value-of select="substring-before($newsfile, '.xml')"/>.html</link>
      <description><xsl:apply-templates mode="escaped"/></description>
      <author><xsl:value-of select="@author"/></author>
      <category><xsl:value-of select="@category"/></category>
      <pubDate><xsl:value-of select="@date"/></pubDate>
    </item>
  </xsl:template>

  <xsl:template match="pre" mode="escaped">
    &lt;pre&gt;<xsl:apply-templates/>&lt;/pre&gt;
  </xsl:template>

  <xsl:template match="p" mode="escaped">
    &lt;p&gt;<xsl:apply-templates/>&lt;/p&gt;
  </xsl:template>

  <xsl:template match="image" mode="escaped">
    &lt;img src="<xsl:value-of select="."/>"<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">
    &lt;a<xsl:choose>
        <xsl:when test="@href">
          href="<xsl:value-of select="@href"/>"
        </xsl:when>
        <xsl:otherwise>
          href="<xsl:value-of select="."/>"
        </xsl:otherwise>
      </xsl:choose><xsl:apply-templates/>&gt;
  </xsl:template>
</xsl:stylesheet>
