]> granicus.if.org Git - docbook-dsssl/commitdiff
Handle case where para html.stylesheet has a space-separated list.
authorBob Stayton <bobs@sagehill.net>
Sun, 6 May 2012 15:49:46 +0000 (15:49 +0000)
committerBob Stayton <bobs@sagehill.net>
Sun, 6 May 2012 15:49:46 +0000 (15:49 +0000)
xsl/epub3/epub3-element-mods.xsl

index 279001db2982de8790bd99f878db5f9512222c9b..64f2629461fcf2a29944be7771d280fe6ffbaf2f 100644 (file)
@@ -1102,13 +1102,9 @@ article  toc,title,figure,table,example,equation
 
 <xsl:template name="manifest.css">
   <xsl:if test="$html.stylesheet != ''">
-    <xsl:element namespace="{$opf.namespace}" name="item">
-      <xsl:attribute name="media-type">text/css</xsl:attribute>
-      <xsl:attribute name="id">html-css</xsl:attribute>
-      <xsl:attribute name="href">
-        <xsl:value-of select="$html.stylesheet"/>
-      </xsl:attribute>
-    </xsl:element>
+    <xsl:call-template name="css.item">
+      <xsl:with-param name="stylesheets" select="$html.stylesheet"/>
+    </xsl:call-template>
   </xsl:if>
   <xsl:if test="string-length($docbook.css.source) != 0">
     <xsl:variable name="dfilename">
@@ -1140,6 +1136,52 @@ article  toc,title,figure,table,example,equation
   </xsl:if>
 </xsl:template>
 
+<xsl:template name="css.item">
+  <xsl:param name="stylesheets" select="''"/>
+  <xsl:param name="count" select="1"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($stylesheets, ' ')">
+      <xsl:variable name="css.filename" select="substring-before($stylesheets, ' ')"/>
+      <xsl:if test="$css.filename != ''">
+        <xsl:element namespace="{$opf.namespace}" name="item">
+          <xsl:attribute name="media-type">text/css</xsl:attribute>
+          <xsl:attribute name="id">
+            <xsl:text>html-css</xsl:text>
+            <xsl:if test="$count &gt; 1">
+              <xsl:value-of select="$count"/>
+            </xsl:if>
+          </xsl:attribute>
+          <xsl:attribute name="href">
+            <xsl:value-of select="$css.filename"/>
+          </xsl:attribute>
+        </xsl:element>
+      </xsl:if>
+
+      <xsl:call-template name="css.item">
+        <xsl:with-param name="stylesheets" select="substring-after($stylesheets, ' ')"/>
+        <xsl:with-param name="count" select="$count + 1"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:if test="$stylesheets != ''">
+        <xsl:element namespace="{$opf.namespace}" name="item">
+          <xsl:attribute name="media-type">text/css</xsl:attribute>
+          <xsl:attribute name="id">
+            <xsl:text>html-css</xsl:text>
+            <xsl:if test="$count &gt; 1">
+              <xsl:value-of select="$count"/>
+            </xsl:if>
+          </xsl:attribute>
+          <xsl:attribute name="href">
+            <xsl:value-of select="$stylesheets"/>
+          </xsl:attribute>
+        </xsl:element>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
 <xsl:template name="manifest.ncx">
   <xsl:element name="item" namespace="{$opf.namespace}">
     <xsl:attribute name="id">