<xsl:variable name='node' select='.' />
<p>
<xsl:choose>
- <xsl:when test='/document/image[license != $node]'>
+ <xsl:when test='/document/image[license/identifier != $node/identifier]'>
<xsl:text>Except as otherwise noted, copying</xsl:text>
</xsl:when>
<xsl:otherwise>Copying</xsl:otherwise>
</xsl:if>
</xsl:template>
-<xsl:template match='xhtml:p[count(*)=1 and normalize-space(text())=""
- and descendant::xhtml:img]'>
+<xsl:template name='imgpara' match='xhtml:p[count(*)=1]
+ [normalize-space(text())=""]
+ [descendant::xhtml:img]'>
<xsl:copy>
<xsl:apply-templates select='@*[local-name() != "class"]' />
<xsl:attribute name='class'>
</xsl:copy>
</xsl:template>
+<xsl:key name='gallery'
+ match='xhtml:html/xhtml:p[descendant::*[@generate-gallery]]'
+ use='generate-id(
+ ( ( preceding-sibling::*[not(descendant::*[@generate-gallery])][1]
+ /following-sibling::* ) | self::* ) [1])' />
+
+<xsl:template match='@generate-gallery' />
+<xsl:template match='xhtml:html/xhtml:p[descendant::*[@generate-gallery]]' />
+<xsl:template match='xhtml:html/xhtml:p[key("gallery", generate-id(.))]'>
+ <xsl:variable name='images' select='key("gallery", generate-id(.))' />
+ <xsl:choose>
+ <xsl:when test='count($images) > 1'>
+ <div class='gallery'>
+ <xsl:for-each select='$images'>
+ <xsl:call-template name='imgpara' />
+ </xsl:for-each>
+ </div>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name='imgpara' />
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
<xsl:template match='/'>
<html>
<head>
<div id='footer'>
<xsl:apply-templates select='/document/copyright' />
<xsl:apply-templates select='/document/license' />
- <xsl:if test='/document/image'>
+ <xsl:if test='/document/image[copyright != /document/copyright
+ or license/identifier != /document/license/identifier]'>
<xsl:call-template name='image-attribution' />
</xsl:if>
<xsl:apply-templates select='/document/source' />