ds-rss/index.xsl

312 lines
12 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" encoding="UTF-8" version="1.0">
<xsl:output omit-xml-declaration="yes"/>
<xsl:template match="/schleudern">
<xsl:variable name="limitelements">0</xsl:variable><!-- limit as integer, 0:no limit -->
<xsl:text disable-output-escaping='yes'>&lt;!DOCTYPE html&gt;</xsl:text>
<xsl:element name="html">
<xsl:attribute name="xml:lang">de</xsl:attribute>
<xsl:attribute name="lang">de</xsl:attribute>
<xsl:element name="head">
<meta charset="utf-8"/>
<title>Die Datenschleuder</title>
<meta name="robots" content="index,follow"/>
<link rel="schema.DC" href="http://purl.org/dc/terms/"/>
<link rel="alternate" type="application/rss+xml" title="Datenschleuder als RSS-Feed abonnieren" href="ds-feed.xml"/>
<meta name="dc.publisher" content="Chaos Computer Club" />
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<xsl:element name="style">
<xsl:attribute name="type">text/css</xsl:attribute>
<xsl:attribute name="media">screen,projection</xsl:attribute>
<!--
<xsl:attribute name="src">style.css</xsl:attribute>
-->
<xsl:text> @import "style.css";
time { font-family: Arial, sans-serif; font-size: 10pt; }</xsl:text>
</xsl:element>
<!--
<xsl:element name="style">
<xsl:attribute name="type">text/css</xsl:attribute>
<xsl:attribute name="media">all</xsl:attribute>
</xsl:element>
-->
<!--
<style type="text/css" media="screen,projection" src="style.css"/>
-->
<!--
<style type="text/css">
time { font-family: Arial, sans-serif !important; font-size: 12pt !important; }
</style>
-->
</xsl:element>
<xsl:element name="body">
<xsl:element name="p">
<xsl:attribute name="id">top</xsl:attribute>
<xsl:element name="img">
<xsl:attribute name="src">i/ds_headline.gif</xsl:attribute>
<xsl:attribute name="alt">Die Datenschleuder</xsl:attribute>
</xsl:element><xsl:element name="br"/>
<xsl:element name="img">
<xsl:attribute name="src">i/ds_subline.gif</xsl:attribute>
<xsl:attribute name="alt">Das wissenschaftliche Fachblatt für Datenreisende Ein Organ des Chaos Computer Club</xsl:attribute>
</xsl:element>
</xsl:element>
<p>
Die Datenschleuder | <a href="download.html">Download</a> | <a href="contact.html">Kontakt</a> | <a href="imprint.html">Impressum</a> | <a href="order.html">Bestellen</a>
</p>
<xsl:element name="div">
<xsl:attribute name="style">background: #dddddd; padding: 1px 15px 10px 15px;</xsl:attribute>
<xsl:element name="h2">
Wir sind wieder da.
</xsl:element><xsl:text>&#xa;</xsl:text>
<xsl:element name="div">
<xsl:attribute name="style">float:right; margin-left: 10px; margin-right: 20px;</xsl:attribute>
<xsl:element name="img">
<xsl:attribute name="style">width: 140px;</xsl:attribute>
<xsl:attribute name="src"><xsl:value-of select="schleuder[1]/image"/></xsl:attribute>
<xsl:attribute name="alt">Die aktuelle Datenschleuder #<xsl:value-of select="schleuder[1]/@id"/></xsl:attribute>
</xsl:element><xsl:text>&#xa;</xsl:text>
<xsl:element name="a">
<xsl:attribute name="href">/pdfs/ds096.pdf</xsl:attribute>
<xsl:element name="img">
<xsl:attribute name="style">width: 140px;</xsl:attribute>
<xsl:attribute name="src"><xsl:value-of select="schleuder[2]/image"/></xsl:attribute>
<xsl:attribute name="alt">Die etwas ältere Datenschleuder #<xsl:value-of select="schleuder[2]/@id"/></xsl:attribute>
</xsl:element>
</xsl:element>
</xsl:element>
<xsl:text>&#xa;</xsl:text>
<xsl:for-each select="schleuder">
<xsl:element name="p">
<xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
<xsl:text>&#xa;</xsl:text>
<xsl:for-each select="info">
<xsl:element name="time">
<xsl:attribute name="datetime">
<xsl:if test="not(@date)"><xsl:value-of select="date"/></xsl:if>
<xsl:if test="count(@date)&gt;0"><xsl:value-of select="@date"/></xsl:if>
</xsl:attribute>
<xsl:call-template name="GermanDate">
<xsl:with-param name="EmailDate" select="@date" />
</xsl:call-template>
</xsl:element><br/><xsl:text>&#xa;</xsl:text>
<xsl:copy-of select="./node()" />
<xsl:text>&#xa;</xsl:text>
</xsl:for-each>
</xsl:element><xsl:text>&#xa;</xsl:text>
<!-- limit on last n elements -->
<xsl:if test="(($limitelements = 0) or ((position() &lt;= $limitelements) and ($limitelements &gt; 0))) and (count(teaser) &gt; 0)">
<xsl:element name="p">
<xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
<xsl:text>&#xa;</xsl:text>
<xsl:element name="time">
<xsl:attribute name="datetime">
<xsl:if test="count(date) &gt; 0">
<xsl:value-of select="date"/>
</xsl:if>
<xsl:if test="count(date) = 0">
<xsl:value-of select="@date"/>
</xsl:if>
</xsl:attribute>
<xsl:if test="count(date) &gt; 0">
<!--
<xsl:value-of select="date"/>
-->
<xsl:call-template name="GermanDate">
<xsl:with-param name="EmailDate" select="date" />
</xsl:call-template>
</xsl:if>
<xsl:if test="count(date) = 0">
<!--
<xsl:value-of select="@date"/>
-->
<xsl:call-template name="GermanDate">
<xsl:with-param name="EmailDate" select="@date" />
</xsl:call-template>
</xsl:if>
</xsl:element><br/><xsl:text>&#xa;</xsl:text>
<xsl:if test="count(teaser) &gt; 0">
<xsl:copy-of select="teaser/node()" />
</xsl:if>
<xsl:text>&#xa;</xsl:text>
</xsl:element><xsl:text>&#xa;</xsl:text>
</xsl:if>
</xsl:for-each>
<!-- old stuff -->
<!--
<p >
<time datetime="2018-07-20">20. Juli 2018</time><br />
Die 98. Ausgabe der Datenschleuder ist erschienen und auf dem Weg zu den Abonnenten.
Sie ist wie immer im gut sortierten Buchhandel oder <a href="order.html">direkt vom CCC</a> auch als Einzelexemplar zu beziehen.<br />
Zudem gibt es einen neuen Redaktions-PGP-Key, erhältlich auf allen Keyservern oder <a href="public-key.asc">hier.</a>
</p>
<p>
<small>20. November 2014</small><br />
Lange war es ruhig um die Datenschleuder. Fast schon zu lange. Daher freuen wir uns umso mehr, dass die Ausgabe 97 fertig gedruckt und auf dem Weg zu den Mitgliedern und Abonnenten ist. Wie &uuml;blich können Abonnements und Einzelausgaben <a href="order.html">direkt beim CCC</a> erworben werden.
</p>
<p>
<small>3. Juni 2012</small><br />
Es gibt einen neuen Redaktions-PGP-Key, erh&auml;ltlich auf allen Keyservern oder <a href="public-key.asc">hier.</a>
</p>
<p>
<small>18. Dezember 2011</small><br />
Passend zum 28. Chaos Communication Congress ist die 96. Datenschleuder erschienen und befindet sich ATM auf dem Weg zu den Abonnenten. Wie immer gibt es zur Überbrückung der Wartezeit das <a href="096/editorial.html">Editorial online zum Selberausdrucken</a>.
</p>
<p>
<small>7. September 2011</small><br />
Aufgrund eines kleinen «Fuckups» wird die Datenschleuder bei den Abonnenten voraussichtlich. fünf. bis zehn Minu... äh, Tage später eintreffen. Wir bitten um Verständnis.
</p>
<p>
<small>4. September 2011</small><br /> Nach längerer
Wartezeit ist jetzt die 95. Ausgabe der Datenschleuder
erschienen und auf dem Weg zu den Abonnenten. Sie ist wie
immer im gut sortierten Buchhandel
oder <a href="order.html">direkt vom CCC</a> auch als
Einzelexemplar zu beziehen. W&auml;hrend Ihr auf Euer Exemplar
wartet, lest doch solange <a href="095/editorial.html">das
Editorial</a>.
</p>
<p>
<small>18. M&auml;rz 2009</small><br /> Der Vorstand des CCC
hat die Wiedereinf&uuml;hrung der beliebten 8-Ausgaben
Miniabos beschlossen. Details gibt
es <a href="order.html">hier.</a>
</p>
<p>
<small>17. Dezember 2008</small><br /> P&uuml;nktlich
zum <a href="http://events.ccc.de/congress/2008/wiki/Main_Page/">25. Chaos
Communication Congress</a> sollten die inzwischen fast 2800
Mitglieder und Abonnenten ihre Datenschleuder im Briefkasten
vorfinden. Schwerpunkte sind in dieser Ausgabe der
dilettantische Umgang des BNDs mit ihren achsogeheimen Netzen
und eine Analyse des XMPP-Protokolls nach kryptografischen
Gesichtspunkten. Wie immer gibt es zum Schm&ouml;kern neben
der bereits
ver&ouml;ffentlichten <a href="vorab/Sicherheitsleck_Infratest.pdf">Vorabmeldung</a>
auch das <a href="093/editorial.html">Editorial</a> zum
Internetausdrucken und vorm Kamin lesen.
</p>
<p>
<small>29. März 2008</small><br /> Die 92. Ausgabe der
Datenschleuder ist erschienen und auf dem Weg zu den
Abonnenten. Als besonderes Gimmick liegt ihr dieses Mal eine
Fingerattrappe nach dem Bild unseres geliebten Innenministers
bei. Sie ist wie immer im gut sortierten Buchhandel
oder <a href="order.html">direkt vom CCC</a> auch als
Einzelexemplar zu beziehen. W&auml;hrend ihr auf Eure Ausgabe
wartet, lest doch solange <a href="092/editorial.html">das
Editorial</a>.
</p>
<p>
<small>03. Oktober 2006</small><br /> Das Experiment ist
beendet. Die Datenschleuder ist dank dem Einsatz hochmoderner
Technologien (HTML) auf dem besten Wege, den dreijährigen
Rückstand wieder aufzuholen. Redaktionssysteme sind im Prinzip
in Ordnung. In der Praxis rockt jedoch vi.
</p>
-->
<p>
In der <a href="download.html">Download-Sektion</a> gibt es
alle Datenschleudern, derer wir in der pdf-Version habhaft
werden konnten, zum kostenlosen Herunterladen. Eventuelle Links
zu einigen Artikeln sind kurzfristig hinüber, werden jedoch
schnellstmöglich wieder hergestellt. Wir bitten um Geduld.
</p>
</xsl:element>
<xsl:element name="p">
<xsl:attribute name="style">text-align: right</xsl:attribute>
<xsl:element name="a">
<xsl:attribute name="href">#top</xsl:attribute>
top
</xsl:element>
</xsl:element>
</xsl:element><!-- /body -->
</xsl:element><!-- /html -->
</xsl:template>
<xsl:template name="copycontent"><!-- match="@*|node()" matches all -->
<xsl:copy><!-- copy subtree -->
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template name="GermanDate">
<xsl:param name="EmailDate" />
<xsl:param name="Date" />
<xsl:param name="Year" />
<xsl:param name="Month" />
<xsl:param name="Day" />
<xsl:if test="not($EmailDate)"><!-- no date --></xsl:if>
<xsl:choose>
<xsl:when test="not($Month)">
<xsl:variable name="EmailMonth">
<xsl:value-of select="substring($EmailDate,9,3)"/>
</xsl:variable>
<xsl:variable name="GermanMonth">
<xsl:choose>
<xsl:when test="$EmailMonth = 'Jan'">Januar</xsl:when>
<xsl:when test="$EmailMonth = 'Feb'">Februar</xsl:when>
<xsl:when test="$EmailMonth = 'Mar'">März</xsl:when>
<xsl:when test="$EmailMonth = 'Apr'">April</xsl:when>
<xsl:when test="$EmailMonth = 'May'">Mai</xsl:when>
<xsl:when test="$EmailMonth = 'Jun'">Juni</xsl:when>
<xsl:when test="$EmailMonth = 'Jul'">Juli</xsl:when>
<xsl:when test="$EmailMonth = 'Aug'">August</xsl:when>
<xsl:when test="$EmailMonth = 'Sep'">September</xsl:when>
<xsl:when test="$EmailMonth = 'Oct'">Oktober</xsl:when>
<xsl:when test="$EmailMonth = 'Nov'">November</xsl:when>
<xsl:when test="$EmailMonth = 'Dec'">Dezember</xsl:when>
</xsl:choose>
</xsl:variable>
<xsl:call-template name="GermanDate">
<xsl:with-param name="Month" select="$GermanMonth" />
<xsl:with-param name="EmailDate" select="$EmailDate" />
</xsl:call-template>
</xsl:when>
<xsl:when test="not($Day)"><!-- 'Thu, 02 May 2019 23:01:34 +0200' -->
<xsl:variable name="EmailDay">
<xsl:value-of select="floor(substring($EmailDate,6,2))"/>
</xsl:variable>
<xsl:call-template name="GermanDate">
<xsl:with-param name="Month" select="$Month" />
<xsl:with-param name="Day" select="$EmailDay" />
<xsl:with-param name="EmailDate" select="$EmailDate" />
</xsl:call-template>
</xsl:when>
<xsl:when test="not($Year)">
<xsl:variable name="EmailYear">
<xsl:value-of select="substring($EmailDate,13,4)"/>
</xsl:variable>
<xsl:call-template name="GermanDate">
<xsl:with-param name="Month" select="$Month" />
<xsl:with-param name="Day" select="$Day" />
<xsl:with-param name="Year" select="$EmailYear" />
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="concat($Day,'. ',$Month,' ',$Year)"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>