diff options
Diffstat (limited to 'dviware/dvisvgm/doc/tweak-db-refentry.xsl')
-rw-r--r-- | dviware/dvisvgm/doc/tweak-db-refentry.xsl | 36 |
1 files changed, 29 insertions, 7 deletions
diff --git a/dviware/dvisvgm/doc/tweak-db-refentry.xsl b/dviware/dvisvgm/doc/tweak-db-refentry.xsl index ef1752142e..088e2ce434 100644 --- a/dviware/dvisvgm/doc/tweak-db-refentry.xsl +++ b/dviware/dvisvgm/doc/tweak-db-refentry.xsl @@ -4,23 +4,45 @@ <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:date="http://exslt.org/dates-and-times" - extension-element-prefixes="date"> + xmlns:func="http://exslt.org/functions" + xmlns:my="my-namespace" + exclude-result-prefixes="my" + extension-element-prefixes="date func"> <xsl:output doctype-public="-//OASIS//DTD DocBook XML V4.5//EN" doctype-system="http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"/> + <!-- adapt ISO date created by keyword expansion --> + <xsl:template match="refentryinfo/date | revision[1]/date"> + <date> + <xsl:value-of select="my:extract-date(.)"/> + </date> + </xsl:template> + <!-- add date to refmeta element --> <xsl:template match="refmeta"> <xsl:copy> <xsl:copy-of select="*"/> - <xsl:variable name="date" select="date:date()"/> - <xsl:if test="$date"> - <refmiscinfo class="date"> - <xsl:value-of select="substring($date, 1, 10)"/> - </refmiscinfo> - </xsl:if> + <refmiscinfo class="date"> + <xsl:value-of select="my:extract-date(../refentryinfo/date)"/> + </refmiscinfo> </xsl:copy> </xsl:template> + <func:function name="my:extract-date"> + <xsl:param name="isodate"/> + <xsl:variable name="shortdate" select="substring($isodate, 1, 10)"/> + <xsl:choose> + <xsl:when test="translate($shortdate, '0123456789', '##########') = '####-##-##'"> + <!-- use date part of expanded keyword --> + <func:result select="$shortdate"/> + </xsl:when> + <xsl:otherwise> + <!-- use current date as fallback --> + <func:result select="substring(date:date(), 1, 10)"/> + </xsl:otherwise> + </xsl:choose> + </func:function> + <!-- copy everything else unchanged --> <xsl:template match="@*|node()"> <xsl:copy> |