[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Subject: DOCBOOK-APPS: Additional XEP extensions
Hello, In the XSL stylesheets, fo/xep.xsl only generates rx:meta-fields with name="author" and name="title" attributes. The RenderX extensions also support name="keywords" and name="subject", so I've augmented the xep-document-information template in my customisation layer to add the latter two. It collects keyword and subjectterm elements from the root down and just concatenates them into a comma-separated list, so it is not very sophisticated -- there may be a better way of doing this, such as collecting them only from the highest level *info element. I can file an RFE at SourceForge if anyone else thinks this is useful, though my current approach is fairly crude. ---- <xsl:template name="xep-document-information"> <rx:meta-info> <xsl:if test="//author[1]"> <xsl:element name="rx:meta-field"> <xsl:attribute name="name">author</xsl:attribute> <xsl:attribute name="value"> <xsl:call-template name="person.name"> <xsl:with-param name="node" select="//author[1]"/> </xsl:call-template> </xsl:attribute> </xsl:element> </xsl:if> <xsl:variable name="title"> <xsl:apply-templates select="/*[1]" mode="label.markup"/> <xsl:apply-templates select="/*[1]" mode="title.markup"/> </xsl:variable> <xsl:element name="rx:meta-field"> <xsl:attribute name="name">title</xsl:attribute> <xsl:attribute name="value"> <xsl:value-of select="$title"/> </xsl:attribute> </xsl:element> <xsl:if test="//keyword"> <xsl:element name="rx:meta-field"> <xsl:attribute name="name">keywords</xsl:attribute> <xsl:attribute name="value"> <xsl:for-each select="//keyword"> <xsl:value-of select="."/> <xsl:if test="position() != last()"> <xsl:text>, </xsl:text> </xsl:if> </xsl:for-each> </xsl:attribute> </xsl:element> </xsl:if> <xsl:if test="//subjectterm"> <xsl:element name="rx:meta-field"> <xsl:attribute name="name">subject</xsl:attribute> <xsl:attribute name="value"> <xsl:for-each select="//subjectterm"> <xsl:value-of select="."/> <xsl:if test="position() != last()"> <xsl:text>, </xsl:text> </xsl:if> </xsl:for-each> </xsl:attribute> </xsl:element> </xsl:if> </rx:meta-info> </xsl:template> ---- -- Paul. mailto:paulh@logicsquad.net mailto:paul.hoadley@student.adelaide.edu.au
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Powered by eList eXpress LLC