]> granicus.if.org Git - docbook-dsssl/commitdiff
Added trademark/productname template.
authorMichael Smith <xmldoc@users.sourceforge.net>
Tue, 5 Jul 2005 00:22:21 +0000 (00:22 +0000)
committerMichael Smith <xmldoc@users.sourceforge.net>
Tue, 5 Jul 2005 00:22:21 +0000 (00:22 +0000)
This template causes true Unicode characters to be output for the
"copyright" and "registered" symbols (which be default then get
replaced by the apply-string-subst-map template). It outputs the
string "(TM)" for trademark (because roff "\(tm" output is not
good) and "(SM)" for servicemark.

xsl/manpages/inline.xsl

index 6727dc772d6fed2c428262176aba650d6c14fd6e..eec18bb9ab7622deff28c554baf35a0765da4505 100644 (file)
@@ -59,9 +59,9 @@
   </xsl:call-template>
 </xsl:template>
 
-<!-- handle ulink here instead of in xref.xsl, because xref.xsl is -->
-<!-- auto-generated from html/xref.xsl, and we need to do something a -->
-<!-- little different for ulink in manpages output -->
+<!-- handle ulink here instead of in xref.xsl, because xref.xsl is -->
+<!-- * auto-generated from html/xref.xsl, and we need to do something -->
+<!-- * a little different for ulink in manpages output -->
 <xsl:template match="ulink">
   <xsl:variable name="content">
     <xsl:apply-templates/>
   <xsl:apply-templates mode="italic" select="exsl:node-set($url.wrapper)"/>
 </xsl:template>
 
+<xsl:template match="trademark|productname">
+  <xsl:apply-templates/>
+  <xsl:choose>
+    <!-- * Just use true Unicode chars for copyright and registered -->
+    <!-- * symbols (by default, we later automatically translate them -->
+    <!-- * with the apply-string-subst-map template, or with the -->
+    <!-- * default character map, if man.charmap.enabled is true). -->
+    <xsl:when test="@class = 'copyright'">
+      <xsl:text>&#x00a9;</xsl:text>
+    </xsl:when>
+    <xsl:when test="@class = 'registered'">
+      <xsl:text>&#x00ae;</xsl:text>
+    </xsl:when>
+    <!-- * There is no groff equivalent for the servicemark symbol. -->
+    <xsl:when test="@class = 'service'">
+      <xsl:text>(SM)</xsl:text>
+    </xsl:when>
+    <xsl:when test="self::trademark" >
+      <!-- * by default, render trademark symbol for <trademark> -->
+      <!-- * -->
+      <!-- * We don't do "\(tm" for &#x2122; because for console -->
+      <!-- * output, groff just renders that as "tm", without any -->
+      <!-- * preceding space, parens, or anything. So it just gets -->
+      <!-- * run into the preceding word; i.e.: -->
+      <!-- * -->
+      <!-- *  Product&#x2122; -> Producttm -->
+      <!-- * -->
+      <!-- * That it probably not what most people would want. So -->
+      <!-- * we just render it as (TM) instead, Thus: -->
+      <!-- * -->
+      <!-- *  Product&#x2122; -> Product(TM) -->
+      <!-- * -->
+      <xsl:text>(TM)</xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- * don't render any default symbol after productname -->
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
 </xsl:stylesheet>