+<xsl:key name="newsterm"
+ match="/newsdefs/newsitem"
+ use="csc:term(@date)" />
+
+ <xsl:template match="old-news">
+ <xsl:for-each
+ select="document('news.xml')/newsdefs/newsitem">
+
+ <xsl:sort select="translate(@date, '-', '')"
+ order="descending"
+ data-type="number"/>
+
+ <xsl:if
+ test="not(preceding-sibling::*[csc:term(@date)=csc:term(current()/@date)]) and not(csc:term(@date) = csc:term($date))">
+ <p><a href="{translate(concat('old-',
+ csc:term(@date), '.html'), ' ', '_')}">
+ <xsl:value-of
+ select="csc:term(@date)"/></a></p>
+ <xsl:document method="html" href="{translate(concat($root, '/news/old-', csc:term(@date), '.html'), ' ', '_')}">
+<xsl:text disable-output-escaping="yes"><![CDATA[<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">]]>
+</xsl:text>
+<html>
+<head>
+ <title>Events for <xsl:value-of select="csc:term(@date)"/></title>
+ <style type="text/css">
+ <![CDATA[<!-- @import url('/default.css'); -->]]>
+ </style>
+</head>
+<body>
+ <xsl:call-template name="header">
+ <xsl:with-param name="title" select="concat('News for ', csc:term(@date))"/>
+ </xsl:call-template>
+ <xsl:call-template name="news-by-term">
+ <xsl:with-param name="date" select="@date"/>
+ </xsl:call-template>
+ <xsl:call-template name="footer"/>
+</body>
+</html>
+ </xsl:document>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:template>
+