diff options
Diffstat (limited to 'source/02_meta/tags.xsl')
-rw-r--r-- | source/02_meta/tags.xsl | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/source/02_meta/tags.xsl b/source/02_meta/tags.xsl new file mode 100644 index 0000000..20b1f10 --- /dev/null +++ b/source/02_meta/tags.xsl @@ -0,0 +1,42 @@ +<?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/datasource.xsl]"/> + +<xsl:variable name="meta"> + <datasource type="main" mode="full" source="01_data/tags.xml" target="tags"/> + <datasource type="support" mode="full" source="01_data/articles.xml" target="articles"/> + <target mode="plain" value="tags.xml"/> +</xsl:variable> + +<xsl:template name="get_article_data"> + <xsl:param name="handle"/> + + <xsl:variable name="article" select="$root/articles/entry[@handle = $handle]/*[self::title | self::date]"/> + + <title> + <xsl:value-of select="$article/self::title"/> + </title> + <date> + <xsl:value-of select="$article/self::date/full"/> + </date> +</xsl:template> + +<xsl:template match="tags/entry"> + <entry handle="{@handle}"> + <xsl:apply-templates /> + </entry> +</xsl:template> + +<xsl:template match="tags/*/article"> + <article handle="{@handle}"> + <xsl:call-template name="get_article_data"> + <xsl:with-param name="handle" select="@handle"/> + </xsl:call-template> + </article> +</xsl:template> + +</xsl:stylesheet> |