From: <bob...@us...> - 2011-09-30 11:20:54
|
Revision: 9094 http://docbook.svn.sourceforge.net/docbook/?rev=9094&view=rev Author: bobstayton Date: 2011-09-30 11:20:48 +0000 (Fri, 30 Sep 2011) Log Message: ----------- Add editor.property param so editor can be contributor or creator in metadata. Process all children of authorgroup, not just author. Modified Paths: -------------- trunk/xsl/epub3/epub3-element-mods.xsl Modified: trunk/xsl/epub3/epub3-element-mods.xsl =================================================================== --- trunk/xsl/epub3/epub3-element-mods.xsl 2011-09-29 18:58:23 UTC (rev 9093) +++ trunk/xsl/epub3/epub3-element-mods.xsl 2011-09-30 11:20:48 UTC (rev 9094) @@ -127,6 +127,8 @@ <xsl:param name="dc.namespace">http://purl.org/dc/elements/1.1/</xsl:param> <!-- prefix generated ids in package elements so they differ from content ids --> <xsl:param name="epub.package.id.prefix">id-</xsl:param> +<!-- editor is either a creator or contributor --> +<xsl:param name="editor.property">contributor</xsl:param> <!-- Generate full output path --> <xsl:param name="epub.package.dir" select="concat($base.dir, '../')"/> @@ -439,7 +441,7 @@ </xsl:template> <xsl:template match="authorgroup" mode="opf.metadata"> - <xsl:apply-templates select="author|corpauthor" mode="opf.metadata"/> + <xsl:apply-templates select="*" mode="opf.metadata"/> </xsl:template> <xsl:template match="author|corpauthor" mode="opf.metadata"> @@ -470,19 +472,48 @@ </xsl:template> <xsl:template match="editor" mode="opf.metadata"> + <xsl:variable name="name"> + <xsl:choose> + <xsl:when test="string-length($editor.property) != 0"> + <xsl:value-of select="$editor.property"/> + </xsl:when> + <xsl:otherwise> + <xsl:text>contributor</xsl:text> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:element name="meta" namespace="{$opf.namespace}"> - <xsl:attribute name="property">dcterms:creator</xsl:attribute> + <xsl:attribute name="property"> + <xsl:text>dcterms:</xsl:text> + <xsl:value-of select="$name"/> + </xsl:attribute> <xsl:value-of select="normalize-space(.)"/> </xsl:element> <xsl:if test="$epub.include.optional.metadata.dc.elements != 0"> - <dc:creator> - <xsl:value-of select="normalize-space(.)"/> - </dc:creator> + <xsl:choose> + <xsl:when test="$name = 'creator'"> + <dc:creator> + <xsl:value-of select="normalize-space(.)"/> + </dc:creator> + </xsl:when> + <xsl:when test="$name = 'contributor'"> + <dc:contributor> + <xsl:value-of select="normalize-space(.)"/> + </dc:contributor> + </xsl:when> + <xsl:otherwise> + <xsl:element namespace="{$dc.namespace}" name="{$name}"> + <xsl:value-of select="normalize-space(.)"/> + </xsl:element> + </xsl:otherwise> + </xsl:choose> </xsl:if> + </xsl:template> -<xsl:template match="othercredit|collab" mode="opf.metadata"> +<xsl:template match="othercredit|corpcredit|collab" mode="opf.metadata"> <xsl:element name="meta" namespace="{$opf.namespace}"> <xsl:attribute name="property">dcterms:contributor</xsl:attribute> <xsl:value-of select="normalize-space(.)"/> @@ -496,20 +527,6 @@ </xsl:template> -<xsl:template match="editor" mode="opf.metadata"> - <xsl:element name="meta" namespace="{$opf.namespace}"> - <xsl:attribute name="property">dcterms:creator</xsl:attribute> - <xsl:value-of select="normalize-space(.)"/> - </xsl:element> - - <xsl:if test="$epub.include.optional.metadata.dc.elements != 0"> - <dc:creator> - <xsl:value-of select="normalize-space(.)"/> - </dc:creator> - </xsl:if> - -</xsl:template> - <xsl:template match="date|pubdate" mode="opf.metadata"> <xsl:variable name="date"> <xsl:call-template name="format.meta.date"> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |