[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [docbook-apps] xslt for imageobject link
Hi Fredrik,I think you could replace the risky $object.index+1 with @condition='original' in the predicate for $link.
The extra namespace declaration can probably be eliminated by making sure your customization layer adds "d" to the list of namespace prefixes
in the exclude-result-prefixes attribute of the xsl:stylesheet element. Bob Stayton Sagehill Enterprises bobs@sagehill.net On 3/27/2014 5:02 AM, Fredrik Unger wrote:
Hi, I figured out that the select.mediaobject was not involved but the HTML template : <xsl:template match="d:mediaobject|d:mediaobjectco"> With the below script[1] I get what I want. The variable selection link = object.index+1 is not very nice but works for now. Just that an extra xmlns:d="http://docbook.org/ns/docbook" is added. <div xmlns:d="http://docbook.org/ns/docbook" class="mediaobject"><img src="./IMG-500.JPG"/> (<a href="IMG.JPG"><span>Original</span></a>)<div class="caption"><p> This is a picture </p></div></div> More tests are needed to find bugs.. :) Fredrik Unger [1] <xsl:template match="d:mediaobject|d:mediaobjectco"> <xsl:variable name="olist" select="d:imageobject|d:imageobjectco |d:videoobject|d:audioobject |d:textobject"/> <xsl:variable name="object.index"> <xsl:call-template name="select.mediaobject.index"> <xsl:with-param name="olist" select="$olist"/> <xsl:with-param name="count" select="1"/> </xsl:call-template> </xsl:variable> <xsl:variable name="object" select="$olist[position() = $object.index]"/> <xsl:variable name="link" select="$olist[position() = $object.index+1]"/> <xsl:variable name="align"> <xsl:value-of select="$object/descendant::d:imagedata[@align][1]/@align"/> </xsl:variable> <div> <xsl:apply-templates select="." mode="common.html.attributes"/> <xsl:if test="$align != '' "> <xsl:attribute name="align"> <xsl:value-of select="$align"/> </xsl:attribute> </xsl:if> <xsl:call-template name="id.attribute"/> <xsl:call-template name="anchor"/> <xsl:apply-templates select="$object"/> <xsl:apply-templates select="$link"/> <xsl:apply-templates select="d:caption"/> </div> </xsl:template> <xsl:template match="d:imageobject[@condition='original']"> <xsl:text> (</xsl:text> <xsl:element name="a"> <xsl:attribute name="href"> <xsl:value-of select="d:imagedata/@fileref"/> </xsl:attribute> <span>Original</span> </xsl:element> <xsl:text>)</xsl:text> </xsl:template> On 2014-03-26 19:17, Fredrik Unger wrote:Hi, I have the following snippet : <mediaobject> <imageobject> <imagedata fileref="IMG-500.JPG"/> </imageobject> <imageobject condition="original"> <imagedata fileref="IMG.JPG"/> </imageobject> <caption> <para> This is a picture </para> </caption> </mediaobject> I would like to produce this html or some version there of : .. <img src="IMG-500.JPG" /> <a href="IMG.JPG">Original</a> <p> This is a picture</p> ...... --------------------------------------------------------------------- To unsubscribe, e-mail: docbook-apps-unsubscribe@lists.oasis-open.org For additional commands, e-mail: docbook-apps-help@lists.oasis-open.org
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]