diff options
-rw-r--r-- | source/02_data/tags.xsl | 34 | ||||
-rw-r--r-- | source/03_meta/tags.xsl | 14 |
2 files changed, 40 insertions, 8 deletions
diff --git a/source/02_data/tags.xsl b/source/02_data/tags.xsl new file mode 100644 index 0000000..f5d1627 --- /dev/null +++ b/source/02_data/tags.xsl @@ -0,0 +1,34 @@ +<?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" + xmlns:InputXSLT="function.inputxslt.application" + exclude-result-prefixes="xalan InputXSLT" +> + +<xsl:output + method="xml" + omit-xml-declaration="no" + encoding="UTF-8" + indent="yes" +/> + +<xsl:include href="[utility/datasource.xsl]"/> + +<xsl:variable name="meta"> + <datasource type="main" mode="full" source="target/01_files/source.xml" target="files"/> + <target mode="plain" value="tags.xml"/> +</xsl:variable> + +<xsl:template match="files/tags/*"> + <entry handle="{name()}"> + <xsl:apply-templates /> + </entry> +</xsl:template> + +<xsl:template match="tags/*/file[./extension = '.md']"> + <article handle="{substring(./name, 12, string-length(./name))}"/> +</xsl:template> + +</xsl:stylesheet> diff --git a/source/03_meta/tags.xsl b/source/03_meta/tags.xsl index f51f91a..3e11c8b 100644 --- a/source/03_meta/tags.xsl +++ b/source/03_meta/tags.xsl @@ -17,7 +17,7 @@ <xsl:include href="[utility/datasource.xsl]"/> <xsl:variable name="meta"> - <datasource type="main" mode="full" source="target/01_files/source.xml" target="files"/> + <datasource type="main" mode="full" source="target/02_data/tags.xml" target="tags"/> <datasource type="support" mode="full" source="target/02_data/articles.xml" target="articles"/> <target mode="plain" value="tags.xml"/> </xsl:variable> @@ -28,18 +28,16 @@ <xsl:copy-of select="$root/articles/entry[@handle = $handle]/*[self::title | self::date]"/> </xsl:template> -<xsl:template match="files/tags/*"> - <entry handle="{name()}"> +<xsl:template match="tags/entry"> + <entry handle="{@handle}"> <xsl:apply-templates /> </entry> </xsl:template> -<xsl:template match="tags/*/file[./extension = '.md']"> - <xsl:variable name="handle" select="substring(./name, 12, string-length(./name))"/> - - <article handle="{$handle}"> +<xsl:template match="tags/*/article"> + <article handle="{@handle}"> <xsl:call-template name="get_article_data"> - <xsl:with-param name="handle" select="$handle"/> + <xsl:with-param name="handle" select="@handle"/> </xsl:call-template> </article> </xsl:template> |