]> granicus.if.org Git - docbook-dsssl/commitdiff
Attempt to support @dir more effectively
authorNorman Walsh <ndw@nwalsh.com>
Wed, 24 Aug 2005 14:04:55 +0000 (14:04 +0000)
committerNorman Walsh <ndw@nwalsh.com>
Wed, 24 Aug 2005 14:04:55 +0000 (14:04 +0000)
xsl/html/block.xsl
xsl/html/component.xsl
xsl/html/division.xsl
xsl/html/html.xsl
xsl/html/inline.xsl
xsl/html/refentry.xsl
xsl/html/sections.xsl

index 500767940b38c820c8c208167b69d3ac0cf6f210..768d0ca5bb8275cf12159853c38c849c608ff1c3 100644 (file)
@@ -56,6 +56,7 @@
 
   <xsl:variable name="p">
     <p>
+      <xsl:call-template name="dir"/>
       <xsl:if test="$class != ''">
         <xsl:attribute name="class">
           <xsl:value-of select="$class"/>
index 88d2a745692371f96ff37c1fd627080e5cef5ce7..0c2f8f16b872d37d4437e7690b11b86530141dc4 100644 (file)
@@ -74,6 +74,9 @@
 
 <xsl:template match="dedication" mode="dedication">
   <div class="{name(.)}">
+    <xsl:call-template name="dir">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
     <xsl:call-template name="language.attribute"/>
     <xsl:call-template name="dedication.titlepage"/>
     <xsl:apply-templates/>
 
 <xsl:template match="colophon">
   <div class="{name(.)}">
+    <xsl:call-template name="dir">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
     <xsl:call-template name="language.attribute"/>
     <xsl:if test="$generate.id.attributes != 0">
       <xsl:attribute name="id">
 
 <xsl:template match="preface">
   <div class="{name(.)}">
+    <xsl:call-template name="dir">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
     <xsl:call-template name="language.attribute"/>
     <xsl:if test="$generate.id.attributes != 0">
       <xsl:attribute name="id">
 
 <xsl:template match="chapter">
   <div class="{name(.)}">
+    <xsl:call-template name="dir">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
     <xsl:call-template name="language.attribute"/>
     <xsl:if test="$generate.id.attributes != 0">
       <xsl:attribute name="id">
   </xsl:variable>
 
   <div class="{name(.)}">
+    <xsl:call-template name="dir">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
     <xsl:call-template name="language.attribute"/>
     <xsl:if test="$generate.id.attributes != 0">
       <xsl:attribute name="id">
 
 <xsl:template match="article">
   <div class="{name(.)}">
+    <xsl:call-template name="dir">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
     <xsl:call-template name="language.attribute"/>
     <xsl:if test="$generate.id.attributes != 0">
       <xsl:attribute name="id">
index c412866544315b440b9a1e134f14c9efa79b866f..15bf0531cff763efe5c6fb1b03bd914c9288a2e9 100644 (file)
@@ -16,6 +16,9 @@
 
 <xsl:template match="set">
   <div class="{name(.)}">
+    <xsl:call-template name="dir">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
     <xsl:call-template name="language.attribute"/>
     <xsl:if test="$generate.id.attributes != 0">
       <xsl:attribute name="id">
@@ -49,6 +52,9 @@
 
 <xsl:template match="book">
   <div class="{name(.)}">
+    <xsl:call-template name="dir">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
     <xsl:call-template name="language.attribute"/>
     <xsl:if test="$generate.id.attributes != 0">
       <xsl:attribute name="id">
@@ -84,6 +90,9 @@
 
 <xsl:template match="part">
   <div class="{name(.)}">
+    <xsl:call-template name="dir">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
     <xsl:call-template name="language.attribute"/>
     <xsl:if test="$generate.id.attributes != 0">
       <xsl:attribute name="id">
 
 <xsl:template match="partintro">
   <div class="{name(.)}">
+    <xsl:call-template name="dir">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
     <xsl:call-template name="language.attribute"/>
     <xsl:if test="$generate.id.attributes != 0">
       <xsl:attribute name="id">
index 90d126c16a5e251dc160f15f73c67cf19810e380..400a9dd54756798612bab60152dce980c6a1a11c 100644 (file)
   </xsl:if>
 </xsl:template>
 
+<xsl:template name="dir">
+  <xsl:param name="inherit" select="0"/>
+
+  <xsl:variable name="dir">
+    <xsl:choose>
+      <xsl:when test="@dir">
+       <xsl:value-of select="@dir"/>
+      </xsl:when>
+      <xsl:when test="$inherit != 0">
+       <xsl:value-of select="ancestor::*/@dir[1]"/>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:if test="$dir != ''">
+    <xsl:attribute name="dir">
+      <xsl:value-of select="$dir"/>
+    </xsl:attribute>
+  </xsl:if>
+</xsl:template>
+
 <xsl:template name="anchor">
   <xsl:param name="node" select="."/>
   <xsl:param name="conditional" select="1"/>
index 15d1e94f8f88bad5b2cf6e64054e28306107a99b..1467d6ab6e7b5f4e087f819881937a7a2618a2cd 100644 (file)
     </xsl:call-template>
   </xsl:param>
   <span class="{local-name(.)}">
+    <xsl:call-template name="dir"/>
     <xsl:call-template name="generate.html.title"/>
-    <xsl:if test="@dir">
-      <xsl:attribute name="dir">
-        <xsl:value-of select="@dir"/>
-      </xsl:attribute>
-    </xsl:if>
     <xsl:copy-of select="$content"/>
     <xsl:call-template name="apply-annotations"/>
   </span>
     </xsl:call-template>
   </xsl:param>
   <code class="{local-name(.)}">
+    <xsl:call-template name="dir"/>
     <xsl:call-template name="generate.html.title"/>
-    <xsl:if test="@dir">
-      <xsl:attribute name="dir">
-        <xsl:value-of select="@dir"/>
-      </xsl:attribute>
-    </xsl:if>
     <xsl:copy-of select="$content"/>
     <xsl:call-template name="apply-annotations"/>
   </code>
 
   <span>
     <xsl:call-template name="generate.html.title"/>
-    <xsl:if test="@dir">
-      <xsl:attribute name="dir">
-        <xsl:value-of select="@dir"/>
-      </xsl:attribute>
-    </xsl:if>
+    <xsl:call-template name="dir"/>
 
     <!-- don't put <strong> inside figure, example, or table titles -->
     <xsl:choose>
   </xsl:param>
   <em class="{local-name(.)}">
     <xsl:call-template name="generate.html.title"/>
-    <xsl:if test="@dir">
-      <xsl:attribute name="dir">
-        <xsl:value-of select="@dir"/>
-      </xsl:attribute>
-    </xsl:if>
+    <xsl:call-template name="dir"/>
     <xsl:copy-of select="$content"/>
     <xsl:call-template name="apply-annotations"/>
   </em>
                          or local-name(../..) = 'formalpara')">
       <code class="{local-name(.)}">
         <xsl:call-template name="generate.html.title"/>
-        <xsl:if test="@dir">
-          <xsl:attribute name="dir">
-            <xsl:value-of select="@dir"/>
-          </xsl:attribute>
-        </xsl:if>
+       <xsl:call-template name="dir"/>
         <xsl:copy-of select="$content"/>
        <xsl:call-template name="apply-annotations"/>
       </code>
       <strong class="{local-name(.)}">
         <code>
           <xsl:call-template name="generate.html.title"/>
-          <xsl:if test="@dir">
-            <xsl:attribute name="dir">
-              <xsl:value-of select="@dir"/>
-            </xsl:attribute>
-          </xsl:if>
+         <xsl:call-template name="dir"/>
           <xsl:copy-of select="$content"/>
         </code>
        <xsl:call-template name="apply-annotations"/>
   <em class="{local-name(.)}">
     <code>
       <xsl:call-template name="generate.html.title"/>
-      <xsl:if test="@dir">
-        <xsl:attribute name="dir">
-          <xsl:value-of select="@dir"/>
-        </xsl:attribute>
-      </xsl:if>
+      <xsl:call-template name="dir"/>
       <xsl:copy-of select="$content"/>
       <xsl:call-template name="apply-annotations"/>
     </code>
   </xsl:param>
   <sup>
     <xsl:call-template name="generate.html.title"/>
-    <xsl:if test="@dir">
-      <xsl:attribute name="dir">
-        <xsl:value-of select="@dir"/>
-      </xsl:attribute>
-    </xsl:if>
+    <xsl:call-template name="dir"/>
     <xsl:copy-of select="$content"/>
     <xsl:call-template name="apply-annotations"/>
   </sup>
   </xsl:param>
   <sub>
     <xsl:call-template name="generate.html.title"/>
-    <xsl:if test="@dir">
-      <xsl:attribute name="dir">
-        <xsl:value-of select="@dir"/>
-      </xsl:attribute>
-    </xsl:if>
+    <xsl:call-template name="dir"/>
     <xsl:copy-of select="$content"/>
     <xsl:call-template name="apply-annotations"/>
   </sub>
         <xsl:value-of select="@role"/>
       </xsl:attribute>
     </xsl:if>
+    <xsl:call-template name="dir"/>
     <xsl:call-template name="anchor"/>
     <xsl:call-template name="simple.xlink">
       <xsl:with-param name="content">
 <xsl:template match="quote">
   <xsl:variable name="depth">
     <xsl:call-template name="dot.count">
-      <xsl:with-param name="string"><xsl:number level="multiple"/></xsl:with-param>
+      <xsl:with-param name="string">
+       <xsl:number level="multiple"/>
+      </xsl:with-param>
     </xsl:call-template>
   </xsl:variable>
   <xsl:choose>
index 72e0e8c13668ec977da81c15152c9c6841247485..28389083d764b86f4b9b4554950ece5529f39813 100644 (file)
@@ -16,6 +16,9 @@
 
 <xsl:template match="reference">
   <div class="{name(.)}">
+    <xsl:call-template name="dir">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
     <xsl:call-template name="language.attribute"/>
     <xsl:if test="$generate.id.attributes != 0">
       <xsl:attribute name="id">
@@ -79,6 +82,9 @@
 
 <xsl:template match="refentry">
   <div class="{name(.)}">
+    <xsl:call-template name="dir">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
     <xsl:call-template name="language.attribute"/>
     <xsl:if test="$refentry.separator != 0 and preceding-sibling::refentry">
       <div class="refentry.separator">
 
 <xsl:template match="refnamediv">
   <div class="{name(.)}">
+    <xsl:call-template name="dir">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
     <xsl:call-template name="anchor"/>
 
     <xsl:choose>
 
 <xsl:template match="refsynopsisdiv">
   <div class="{name(.)}">
+    <xsl:call-template name="dir">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
     <xsl:call-template name="anchor"/>
     <h2>
       <xsl:choose>
 
 <xsl:template match="refsection|refsect1|refsect2|refsect3">
   <div class="{name(.)}">
+    <xsl:call-template name="dir">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
     <xsl:call-template name="language.attribute"/>
     <xsl:call-template name="anchor">
       <xsl:with-param name="conditional" select="0"/>
index 5ad567954bab22c2d458018d6da8ce82cc0f129b..50106a98c27568e2a7bf68f29e6ae99fae86378d 100644 (file)
@@ -18,6 +18,9 @@
   <xsl:variable name="depth" select="count(ancestor::section)+1"/>
 
   <div class="{name(.)}">
+    <xsl:call-template name="dir">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
     <xsl:call-template name="language.attribute"/>
     <xsl:call-template name="section.titlepage"/>
 
@@ -90,6 +93,9 @@
 
 <xsl:template match="sect1">
   <div class="{name(.)}">
+    <xsl:call-template name="dir">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
     <xsl:call-template name="language.attribute"/>
 
     <xsl:choose>
 
 <xsl:template match="sect2">
   <div class="{name(.)}">
+    <xsl:call-template name="dir">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
     <xsl:call-template name="language.attribute"/>
 
     <xsl:choose>
 
 <xsl:template match="sect3">
   <div class="{name(.)}">
+    <xsl:call-template name="dir">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
     <xsl:call-template name="language.attribute"/>
 
     <xsl:choose>
 
 <xsl:template match="sect4">
   <div class="{name(.)}">
+    <xsl:call-template name="dir">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
     <xsl:call-template name="language.attribute"/>
 
     <xsl:choose>
 
 <xsl:template match="sect5">
   <div class="{name(.)}">
+    <xsl:call-template name="dir">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
     <xsl:call-template name="language.attribute"/>
 
     <xsl:choose>
 
 <xsl:template match="simplesect">
   <div class="{name(.)}">
+    <xsl:call-template name="dir">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
     <xsl:call-template name="language.attribute"/>
     <xsl:call-template name="simplesect.titlepage"/>
     <xsl:apply-templates/>