aboutsummaryrefslogtreecommitdiff
path: root/source/99_result
diff options
context:
space:
mode:
Diffstat (limited to 'source/99_result')
-rw-r--r--source/99_result/archive.xsl66
-rw-r--r--source/99_result/article/article.xsl54
-rw-r--r--source/99_result/atom.xsl63
-rw-r--r--source/99_result/category/category.xsl48
-rw-r--r--source/99_result/main.css106
-rw-r--r--source/99_result/media/bottom.pngbin0 -> 1527 bytes
-rw-r--r--source/99_result/media/favicon.icobin0 -> 1150 bytes
-rw-r--r--source/99_result/media/me_header.jpgbin0 -> 621043 bytes
-rw-r--r--source/99_result/media/single.pngbin0 -> 263 bytes
-rw-r--r--source/99_result/media/top.pngbin0 -> 1481 bytes
-rw-r--r--source/99_result/page/page.xsl32
-rw-r--r--source/99_result/stream.xsl97
-rw-r--r--source/99_result/tag/tag.xsl40
13 files changed, 506 insertions, 0 deletions
diff --git a/source/99_result/archive.xsl b/source/99_result/archive.xsl
new file mode 100644
index 0000000..909f77f
--- /dev/null
+++ b/source/99_result/archive.xsl
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet
+ version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+>
+
+<xsl:include href="[utility/master.xsl]"/>
+
+<xsl:variable name="meta">
+ <datasource type="main" mode="full" source="02_meta/articles.xml" target="articles"/>
+ <datasource type="support" mode="full" source="02_meta/meta.xml" target="meta"/>
+ <datasource type="support" mode="full" source="00_content/microblog.xml" target="microblog"/>
+ <target mode="plain" value="archive/index.html"/>
+</xsl:variable>
+
+<xsl:template name="title-text">Archive</xsl:template>
+
+<xsl:template match="datasource">
+ <div class="archiv columns">
+ <xsl:apply-templates />
+ </div>
+</xsl:template>
+
+<xsl:template match="articles">
+ <div class="column articlelist archivlist">
+ <xsl:text>Past articles:</xsl:text>
+ <ol>
+ <xsl:apply-templates select="entry"/>
+ </ol>
+ </div>
+</xsl:template>
+
+<xsl:template match="microblog">
+ <div class="column taglist archivtag">
+ <a href="https://twitter.com/KnairdA">Microblog:</a>
+ <ul class="prettylist">
+ <xsl:apply-templates select="item[substring(text, 1, 1) != '@'][position() &lt;= 9]" />
+ </ul>
+ </div>
+</xsl:template>
+
+<xsl:template match="articles/entry">
+ <li class="dateitem">
+ <xsl:value-of select="@handle"/>
+ </li>
+ <xsl:apply-templates />
+</xsl:template>
+
+<xsl:template match="entry/article">
+ <li>
+ <a href="/article/{@handle}">
+ <xsl:value-of select="title"/>
+ </a>
+ </li>
+</xsl:template>
+
+<xsl:template match="microblog/item">
+ <li>
+ <em>»</em>
+ <a href="{link}">
+ <xsl:value-of select="text" disable-output-escaping="yes" />
+ </a>
+ </li>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/source/99_result/article/article.xsl b/source/99_result/article/article.xsl
new file mode 100644
index 0000000..9ce19df
--- /dev/null
+++ b/source/99_result/article/article.xsl
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet
+ version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+>
+
+<xsl:include href="[utility/master.xsl]"/>
+<xsl:include href="[utility/date-time.xsl]"/>
+
+<xsl:variable name="meta">
+ <datasource type="main" mode="iterate" source="01_data/articles.xml" target="article"/>
+ <datasource type="support" mode="full" source="02_meta/meta.xml" target="meta"/>
+ <target mode="xpath" value="concat($datasource/article/entry/@handle, '/index.html')"/>
+</xsl:variable>
+
+<xsl:template name="title-text">
+ <xsl:value-of select="/datasource/article/entry/title"/>
+</xsl:template>
+
+<xsl:template match="article/entry">
+ <div class="article">
+ <h2>
+ <xsl:text>» </xsl:text>
+ <a href="/article/{@handle}">
+ <xsl:value-of select="title"/>
+ </a>
+ </h2>
+ <p class="info">
+ <xsl:call-template name="format-date">
+ <xsl:with-param name="date" select="date/full"/>
+ <xsl:with-param name="format" select="'M x, Y'"/>
+ </xsl:call-template>
+ <xsl:text> | </xsl:text>
+ <xsl:for-each select="tags/tag">
+ <a href="/tag/{.}">
+ <xsl:value-of select="."/>
+ </a>
+ </xsl:for-each>
+ <xsl:text> | </xsl:text>
+ <xsl:value-of select="$root/meta/author"/>
+ <xsl:text> | </xsl:text>
+ <a href="#isso-thread">Comments</a>
+ </p>
+ <xsl:copy-of select="content/node()"/>
+ </div>
+
+ <div id="isso-thread"></div>
+
+ <script type="text/javascript" src="/comments/js/embed.min.js" data-isso-avatar="false" data-isso-vote="false" data-isso-css="false">
+ <xsl:text> </xsl:text>
+ </script>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/source/99_result/atom.xsl b/source/99_result/atom.xsl
new file mode 100644
index 0000000..e67f89c
--- /dev/null
+++ b/source/99_result/atom.xsl
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet
+ version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+>
+
+<xsl:output
+ method="xml"
+ omit-xml-declaration="no"
+ encoding="UTF-8"
+ indent="no"
+/>
+
+<xsl:variable name="meta">
+ <datasource type="main" mode="full" source="01_data/articles.xml" target="articles"/>
+ <datasource type="support" mode="full" source="02_meta/meta.xml" target="meta"/>
+ <target mode="plain" value="atom.xml"/>
+</xsl:variable>
+
+<xsl:variable name="url" select="datasource/meta/url"/>
+<xsl:variable name="author" select="datasource/meta/author"/>
+
+<xsl:template match="*" mode="xhtml_copy">
+ <xsl:element name="{name()}" namespace="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates select="@*|node()" mode="xhtml_copy" />
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="@*|text()|comment()" mode="xhtml_copy">
+ <xsl:copy/>
+</xsl:template>
+
+<xsl:template match="/">
+ <feed xmlns="http://www.w3.org/2005/Atom">
+ <id><xsl:value-of select="$url"/></id>
+ <title><xsl:value-of select="datasource/meta/title"/></title>
+ <author>
+ <name>
+ <xsl:value-of select="$author"/>
+ </name>
+ </author>
+
+ <xsl:apply-templates select="datasource/articles/entry[position() &lt;= 5]"/>
+ </feed>
+</xsl:template>
+
+<xsl:template match="datasource/articles/entry">
+ <entry xmlns="http://www.w3.org/2005/Atom">
+ <title><xsl:value-of select="title"/></title>
+ <link><xsl:value-of select="$url"/>/article/<xsl:value-of select="@handle"/></link>
+ <content type="xhtml">
+ <div xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates mode="xhtml_copy" select="content/node()" />
+ </div>
+ </content>
+ <updated>
+ <xsl:value-of select="date/full"/>
+ <xsl:text>T00:00:01+02:00</xsl:text>
+ </updated>
+ </entry>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/source/99_result/category/category.xsl b/source/99_result/category/category.xsl
new file mode 100644
index 0000000..4b49705
--- /dev/null
+++ b/source/99_result/category/category.xsl
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet
+ version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:xalan="http://xml.apache.org/xalan"
+ exclude-result-prefixes="xalan"
+>
+
+<xsl:include href="[utility/master.xsl]"/>
+
+<xsl:variable name="meta">
+ <datasource type="main" mode="iterate" source="02_meta/categories.xml" target="category"/>
+ <datasource type="support" mode="full" source="02_meta/meta.xml" target="meta"/>
+ <target mode="xpath" value="concat($datasource/category/entry/@handle, '/index.html')"/>
+</xsl:variable>
+
+<xsl:template name="title-text">
+ <xsl:value-of select="/datasource/category/entry/@handle"/>
+</xsl:template>
+
+<xsl:template match="entry/page">
+ <li>
+ <em>»</em>
+ <a href="/page/{@handle}">
+ <strong><xsl:value-of select="title"/></strong>
+ <p>
+ <xsl:copy-of select="digest/node()"/>
+ </p>
+ </a>
+ </li>
+</xsl:template>
+
+<xsl:template match="category/entry">
+ <h3>
+ <xsl:text>All pages categorized as &#187;</xsl:text>
+ <xsl:value-of select="@handle"/>
+ <xsl:text>&#171;</xsl:text>
+ </h3>
+ <div class="archiv columns">
+ <ul class="prettylist">
+ <xsl:apply-templates select="page">
+ <xsl:sort select="digest/@size" data-type="number" order="descending"/>
+ </xsl:apply-templates>
+ </ul>
+ </div>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/source/99_result/main.css b/source/99_result/main.css
new file mode 100644
index 0000000..4a4aab0
--- /dev/null
+++ b/source/99_result/main.css
@@ -0,0 +1,106 @@
+body{margin:0;padding:0;font:1em Droid Sans,sans-serif,Verdana,Arial,FreeSans;color:#272828;word-wrap:break-word}
+p{margin:0;line-height:1.5em}
+ul{margin:0;padding:0;list-style:none}
+ul li{float:left;padding:0 .2em}
+ul li.last_item{padding-right:0}
+ul li a{text-decoration:none;color:#272828;background:#e3e8e8;border-radius:.3em;padding:.2em}
+ul li a:hover{text-decoration:underline}
+blockquote{border-left:.4em solid #e3e8e8;margin-left:0;padding-left:1em}
+pre{padding:1em;border-radius:.75em;color:#f8f8f2;background:#272822;white-space:pre-wrap}
+#wrapper{width:870px;margin:2em auto;background:url(media/top.png) no-repeat top center,url(media/bottom.png) no-repeat bottom center,url(media/single.png) repeat top center}
+#content{width:720px;margin:0 auto;padding-top:70px;padding-bottom:70px}
+#nav_wrap{overflow:hidden;border-bottom:.3em solid #e3e8e8;padding-bottom:.1em}
+#nav_wrap ul{float:right;padding:.4em 0}
+#nav_wrap h1{color:#F80;font-size:1.2em;font-weight:normal;float:left;padding:.2em;padding-left:0;margin:0}
+#main{overflow:hidden}
+#main .article{border-bottom:.3em dotted #e3e8e8;padding-bottom:.5em;margin-top:1em;text-align:justify}
+#main .last{border:0}
+#main p{margin-bottom:.7em}
+#main h2{font-size:1.4em;margin:0;color:#F80}
+#main h2 a{font-size:.8em;text-decoration:none !important;color:#272828;font-weight:normal;display:inline-block;vertical-align:middle;max-width:95%}
+#main h2 a:hover{text-decoration:underline !important}
+#main h3{font-size:1.05em;font-weight:normal;margin-bottom:.5em;border-bottom:.1em solid #e3e8e8}
+#main h4{font-size:1.05em;font-weight:normal;margin-bottom:.5em;border-bottom:.1em solid #e3e8e8}
+#main .article a{text-decoration:underline;color:#272828}
+#main .article a:hover{color:black}
+#main .article ul{float:none;margin-left:2em;text-align:left}
+#main .article ul li{list-style-type:circle;float:none}
+#main .article ul li a{background:0}
+#main .article .info{font-size:.8em;margin-bottom:.5em;margin-left:1.5em}
+#main .article .info a{text-decoration:none;color:#272828;margin:0 .1em 0 .1em}
+#main .article .info a:hover{text-decoration:underline}
+#main .article table{border-collapse:collapse;border-left:.4em solid #e3e8e8;margin:1em}
+#main .article table thead{border-bottom:.1em solid #272828}
+#main .article table tr{border-bottom:.1em solid #272828}
+#main .article table tr:last-child{border-bottom:0}
+#main .article table tr th{font-weight:normal;padding:.2em 1em}
+#main .article table tr td{padding:.2em 1em}
+#main .footnotes {border-top:.3em dotted #e3e8e8}
+#main img{padding:.2em;border:.1em solid #e3e8e8;display:block;margin-left:auto;margin-right:auto}
+#main img.full{max-width:100%}
+#main img.clear{border:0}
+#pagination{height:1.5em;margin-top:.5em}
+#pagination span.disabled{display:none}
+#pagination span a{text-decoration:none;color:#272828}
+#pagination span a:hover{text-decoration:underline}
+#pagination span a.pagination-previous{float:left}
+#pagination span a.pagination-next{float:right}
+#footer_wrap{overflow:hidden;border-top:.3em solid #e3e8e8}
+#last_line{border-top:.3em solid #e3e8e8;height:1.5em;padding-top:.3em}
+#last_line a{text-decoration:none;color:#272828}
+#last_line a:hover{text-decoration:underline}
+#last_line ul{margin-top:-0.2em;float:right;padding:.4em 0}
+#isso-thread{margin-top:1em;font-size:.95em}
+#isso-thread h4{font-weight:normal;font-size:1.25em;margin:0}
+#isso-thread .form-wrapper{padding:1em;overflow:hidden}
+#isso-thread .form-wrapper input{border:.3em solid #e3e8e8;margin:.3em 0 .3em 0}
+#isso-thread .form-wrapper .textarea{border:.3em solid #e3e8e8;width:100%;height:8em;color:#272828}
+#isso-thread .form-wrapper .placeholder{color:#858585}
+#isso-thread .auth-section .input-wrapper{float:left;margin-right:.3em}
+#isso-root{padding:1em}
+#isso-root a{text-decoration:underline;color:#272828}
+#isso-root a:hover{color:black}
+#isso-root .isso-follow-up{margin-left:2em;padding-top:.5em}
+#isso-root .isso-comment{border-top:.3em solid #e3e8e8;margin-bottom:.5em;text-align:justify}
+#isso-root .isso-comment-header{font-size:.75em;padding:.3em 0 .3em 0}
+#isso-root .isso-comment-header .spacer{visibility:hidden}
+#isso-root .isso-comment-header a{text-decoration:none;margin:0 .1em 0 .1em}
+#isso-root .isso-comment-header a:hover{text-decoration:underline}
+#isso-root .isso-comment-footer{overflow:hidden;font-size:.75em}
+#isso-root .isso-comment-footer .reply{float:right}
+.archiv{margin-top:1em}
+.columns{column-count:2;-moz-column-count:2;-webkit-column-count:2;column-gap:0;-moz-column-gap:0;-webkit-column-gap:0}
+.columns a{color:#272828;text-decoration:none}
+.columns a:hover{text-decoration:underline}
+.column{-webkit-column-break-inside:avoid;-moz-column-break-inside:avoid;column-break-inside:avoid}
+.taglist ul{padding:.2em;float:none;overflow:hidden}
+.taglist ul li{margin:.2em 0 .2em 0;padding:.2em}
+.articlelist ol{margin:0;padding:.3em;list-style:none}
+.articlelist ol li{background:#e3e8e8;border-radius:.3em;margin:.2em;padding:.2em}
+.articlelist ol li a{color:#272828;text-decoration:none}
+.articlelist ol li a:hover{text-decoration:underline}
+.archivlist ol{margin-top:.2em;border-top:.1em solid #e3e8e8}
+.archivlist ol li{background:0;padding-left:1em;font-size:.8em}
+.archivlist ol li.dateitem{padding:0;font-weight:bold}
+.archivtag ul{margin-top:.2em;border-top:.1em solid #e3e8e8}
+.archivtag div{overflow:hidden;margin-bottom:.5em}
+.prettylist li{float:none;display:inline-block}
+.prettylist li a{background:0}
+.prettylist li p{margin:0 !important}
+.prettylist li em{font-style:normal;font-size:1.4em;color:#F80}
+.commentlist ol{margin-top:.2em;border-top:.1em solid #e3e8e8}
+.commentlist ol li{background:0;font-size:.8em}
+.commentlist ol li.dateitem{padding:0;font-weight:bold}
+.lpos{float:left}
+.rpos{float:right}
+.mpos{margin:0 auto;display:block}
+
+@media screen and (max-width:870px){#wrapper{width:100%;margin:0;background:0}
+ #content{margin:0 auto;padding:0}
+}
+@media screen and (max-width:725px){#content{width:98%}
+ #main img{width:98%}
+ #main .article h2 a{max-width:90%}
+ .columns{column-count:1;-moz-column-count:1;-webkit-column-count:1}
+ .columns .column{width:100%}
+}
diff --git a/source/99_result/media/bottom.png b/source/99_result/media/bottom.png
new file mode 100644
index 0000000..ff2afa7
--- /dev/null
+++ b/source/99_result/media/bottom.png
Binary files differ
diff --git a/source/99_result/media/favicon.ico b/source/99_result/media/favicon.ico
new file mode 100644
index 0000000..f5a9ac4
--- /dev/null
+++ b/source/99_result/media/favicon.ico
Binary files differ
diff --git a/source/99_result/media/me_header.jpg b/source/99_result/media/me_header.jpg
new file mode 100644
index 0000000..35249b8
--- /dev/null
+++ b/source/99_result/media/me_header.jpg
Binary files differ
diff --git a/source/99_result/media/single.png b/source/99_result/media/single.png
new file mode 100644
index 0000000..514d39a
--- /dev/null
+++ b/source/99_result/media/single.png
Binary files differ
diff --git a/source/99_result/media/top.png b/source/99_result/media/top.png
new file mode 100644
index 0000000..ca71f84
--- /dev/null
+++ b/source/99_result/media/top.png
Binary files differ
diff --git a/source/99_result/page/page.xsl b/source/99_result/page/page.xsl
new file mode 100644
index 0000000..b703f46
--- /dev/null
+++ b/source/99_result/page/page.xsl
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet
+ version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+>
+
+<xsl:include href="[utility/master.xsl]"/>
+
+<xsl:variable name="meta">
+ <datasource type="main" mode="iterate" source="01_data/pages.xml" target="page"/>
+ <datasource type="support" mode="full" source="02_meta/meta.xml" target="meta"/>
+ <target mode="xpath" value="concat($datasource/page/entry/@handle, '/index.html')"/>
+</xsl:variable>
+
+<xsl:template name="title-text">
+ <xsl:value-of select="/datasource/page/entry/title"/>
+</xsl:template>
+
+<xsl:template match="page/entry">
+ <div class="last article">
+ <h2>
+ <xsl:text>» </xsl:text>
+ <a href="/page/{@handle}">
+ <xsl:value-of select="title"/>
+ </a>
+ </h2>
+ <p class="info"/>
+ <xsl:copy-of select="content/*"/>
+ </div>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/source/99_result/stream.xsl b/source/99_result/stream.xsl
new file mode 100644
index 0000000..3fe93e1
--- /dev/null
+++ b/source/99_result/stream.xsl
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet
+ version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+>
+
+<xsl:include href="[utility/master.xsl]"/>
+<xsl:include href="[utility/date-time.xsl]"/>
+
+<xsl:variable name="meta">
+ <datasource type="main" mode="iterate" source="02_meta/paginated_articles.xml" target="page"/>
+ <datasource type="support" mode="full" source="02_meta/meta.xml" target="meta"/>
+ <datasource type="support" mode="full" source="01_data/articles.xml" target="articles"/>
+ <target mode="xpath" value="concat($datasource/page/entry/@index, '/index.html')"/>
+</xsl:variable>
+
+<xsl:template name="title-text">
+ <xsl:choose>
+ <xsl:when test="/datasource/page/entry/@index = 0">
+ <xsl:text>Start</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>Page </xsl:text>
+ <xsl:value-of select="/datasource/page/entry/@index"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="get_article">
+ <xsl:param name="handle"/>
+
+ <xsl:variable name="article" select="$root/articles/entry[@handle = $handle]"/>
+
+ <h2>
+ <xsl:text>» </xsl:text>
+ <a href="/article/{$handle}">
+ <xsl:value-of select="$article/title"/>
+ </a>
+ </h2>
+ <p class="info">
+ <xsl:call-template name="format-date">
+ <xsl:with-param name="date" select="$article/date/full"/>
+ <xsl:with-param name="format" select="'M x, Y'"/>
+ </xsl:call-template>
+ <xsl:text> | </xsl:text>
+ <xsl:for-each select="$article/tags/tag">
+ <a href="/tag/{.}">
+ <xsl:value-of select="."/>
+ </a>
+ </xsl:for-each>
+ <xsl:text> | </xsl:text>
+ <xsl:value-of select="$root/meta/author"/>
+ </p>
+ <xsl:copy-of select="$article/content/*"/>
+</xsl:template>
+
+<xsl:template match="page/entry">
+ <xsl:apply-templates />
+
+ <div id="pagination">
+ <xsl:if test="@index > 0">
+ <span>
+ <a class="pagination-previous" href="/{@index - 1}">
+ <xsl:text>« newer</xsl:text>
+ </a>
+ </span>
+ </xsl:if>
+ <xsl:if test="@index &lt; @total - 1">
+ <span>
+ <a class="pagination-next" href="/{@index + 1}">
+ <xsl:text>older »</xsl:text>
+ </a>
+ </span>
+ </xsl:if>
+ </div>
+</xsl:template>
+
+<xsl:template match="page/entry/article">
+ <xsl:choose>
+ <xsl:when test="position() = last()">
+ <div class="last article">
+ <xsl:call-template name="get_article">
+ <xsl:with-param name="handle" select="@handle"/>
+ </xsl:call-template>
+ </div>
+ </xsl:when>
+ <xsl:otherwise>
+ <div class="article">
+ <xsl:call-template name="get_article">
+ <xsl:with-param name="handle" select="@handle"/>
+ </xsl:call-template>
+ </div>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/source/99_result/tag/tag.xsl b/source/99_result/tag/tag.xsl
new file mode 100644
index 0000000..a727111
--- /dev/null
+++ b/source/99_result/tag/tag.xsl
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet
+ version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+>
+
+<xsl:include href="[utility/master.xsl]"/>
+
+<xsl:variable name="meta">
+ <datasource type="main" mode="iterate" source="02_meta/tags.xml" target="tag"/>
+ <datasource type="support" mode="full" source="02_meta/meta.xml" target="meta"/>
+ <target mode="xpath" value="concat($datasource/tag/entry/@handle, '/index.html')"/>
+</xsl:variable>
+
+<xsl:template name="title-text">
+ <xsl:value-of select="/datasource/tag/entry/@handle"/>
+</xsl:template>
+
+<xsl:template match="tag/entry">
+ <div class="archiv articlelist archivlist">
+ <xsl:text>All articles tagged as &#187;</xsl:text>
+ <xsl:value-of select="@handle"/>
+ <xsl:text>&#171;</xsl:text>
+ <ol>
+ <xsl:apply-templates />
+ </ol>
+ </div>
+</xsl:template>
+
+<xsl:template match="tag/entry/article">
+ <li>
+ <xsl:value-of select="date"/>
+ <xsl:text> » </xsl:text>
+ <a href="/article/{@handle}">
+ <xsl:value-of select="title"/>
+ </a>
+ </li>
+</xsl:template>
+
+</xsl:stylesheet>