]> granicus.if.org Git - docbook-dsssl/commitdiff
Added parameter glossterm.auto.link. When set to 1 links from glossterm to glossentry...
authorJirka Kosek <jirka@kosek.cz>
Sun, 18 Nov 2001 14:55:48 +0000 (14:55 +0000)
committerJirka Kosek <jirka@kosek.cz>
Sun, 18 Nov 2001 14:55:48 +0000 (14:55 +0000)
xsl/html/Makefile
xsl/html/glossary.xsl
xsl/html/inline.xsl
xsl/html/param.ent
xsl/html/param.xweb
xsl/params/glossterm.auto.link.xml [new file with mode: 0644]

index 0def7ef605c3c5b52ef5d8ece36940bb5a8f8e5c..7aec549dc8c95a0f7f0c7d232cadb57688fbe277 100644 (file)
@@ -49,6 +49,7 @@ PARAMS=../params/admon.graphics.xml \
        ../params/generate.section.toc.xml \
        ../params/generate.section.toc.level.xml \
        ../params/generate.set.toc.xml \
+       ../params/glossterm.auto.link.xml \
        ../params/graphic.default.extension.xml \
        ../params/html.base.xml \
        ../params/html.longdesc.xml \
index fe3e836d6324303d9cf3be7020949d722ff0fe7b..48e574dfccbdfdf320fee712b13372d5a94f6436 100644 (file)
@@ -114,6 +114,12 @@ GlossEntry ::=
   <dt>
     <xsl:call-template name="anchor">
       <xsl:with-param name="node" select=".."/>
+      <xsl:with-param name="conditional">
+        <xsl:choose>
+          <xsl:when test="$glossterm.auto.link != 0">0</xsl:when>
+          <xsl:otherwise>1</xsl:otherwise>
+        </xsl:choose>
+      </xsl:with-param>
     </xsl:call-template>
     <xsl:apply-templates/>
   </dt>
index 8b7202c0217e3b6bea75d41b231bb6785de2fd51..cea850508fdc7867a21550caab6a0dbad5b93d1c 100644 (file)
 
 <xsl:template match="glossterm">
   <xsl:choose>
+
     <xsl:when test="@linkend">
       <xsl:variable name="targets" select="key('id',@linkend)"/>
       <xsl:variable name="target" select="$targets[1]"/>
         <xsl:call-template name="inline.italicseq"/>
       </a>
     </xsl:when>
+
+    <xsl:when test="$glossterm.auto.link != 0">
+      <xsl:variable name="targets" select="//glossentry[glossterm=string(current())]"/>
+      <xsl:variable name="target" select="$targets[1]"/>
+
+      <xsl:choose>
+        <xsl:when test="count($targets)=0">
+          <xsl:message>
+            <xsl:text>Error: no glossentry for glossterm: </xsl:text>
+            <xsl:value-of select="."/>
+            <xsl:text>.</xsl:text>
+          </xsl:message>
+          <xsl:call-template name="inline.italicseq"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <a>
+            <xsl:if test="@id">
+              <xsl:attribute name="name">
+                <xsl:value-of select="@id"/>
+              </xsl:attribute>
+            </xsl:if>
+            
+            <xsl:attribute name="href">
+              <xsl:call-template name="href.target">
+                <xsl:with-param name="object" select="$target"/>
+              </xsl:call-template>
+            </xsl:attribute>
+            
+            <xsl:call-template name="inline.italicseq"/>
+          </a>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+
     <xsl:otherwise>
       <xsl:call-template name="inline.italicseq"/>
     </xsl:otherwise>
index c0a96fe87d51d9de397a2c7c72081cf1cc3f4efb..4301206d214e691b7db317ba5c755581f5164de7 100644 (file)
@@ -46,6 +46,7 @@
 <!ENTITY generate.section.toc SYSTEM "../params/generate.section.toc.xml">
 <!ENTITY generate.section.toc.level SYSTEM "../params/generate.section.toc.level.xml">
 <!ENTITY generate.set.toc SYSTEM "../params/generate.set.toc.xml">
+<!ENTITY glossterm.auto.link SYSTEM "../params/glossterm.auto.link.xml">
 <!ENTITY graphic.default.extension SYSTEM "../params/graphic.default.extension.xml">
 <!ENTITY html.base SYSTEM "../params/html.base.xml">
 <!ENTITY html.longdesc SYSTEM "../params/html.longdesc.xml">
index 234b41d475083591f72ec10e46925dd335cc43dd..576b37d8c3c4b63f45e7e378f4000e69b6aa88a7 100644 (file)
@@ -200,6 +200,7 @@ to be incomplete. Don't forget to read the source, too :-)</para>
 &olink.pubid;
 &olink.sysid;
 &olink.resolver;
+&glossterm.auto.link;
 </reference>
 
 <reference><title>Bibliography</title>
@@ -324,6 +325,7 @@ around all these parameters.</para>
 <src:fragref linkend="generate.section.toc.frag"/>
 <src:fragref linkend="generate.section.toc.level.frag"/>
 <src:fragref linkend="generate.set.toc.frag"/>
+<src:fragref linkend="glossterm.auto.link.frag"/>
 <src:fragref linkend="graphic.default.extension.frag"/>
 <src:fragref linkend="html.base.frag"/>
 <src:fragref linkend="html.ext.frag"/>
diff --git a/xsl/params/glossterm.auto.link.xml b/xsl/params/glossterm.auto.link.xml
new file mode 100644 (file)
index 0000000..6af580c
--- /dev/null
@@ -0,0 +1,26 @@
+<refentry id="glossterm.auto.link">
+<refmeta>
+<refentrytitle>glossterm.auto.link</refentrytitle>
+<refmiscinfo role="type">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>glossterm.auto.link</refname>
+<refpurpose>Generate links from glossterm to glossentry automaticaly?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment id='glossterm.auto.link.frag'><xsl:param name="glossterm.auto.link" select="'0'"/></src:fragment>
+</refsynopsisdiv>
+
+<refsect1><title>Description</title>
+
+<para>If true, a link will be automatically created from glossterm 
+to glossentry for that glossary term. This is usefull when your
+glossterm names are consistent and you don't want to add links
+manually.</para>
+<para>If there is <sgmltag class="attribute">linkend</sgmltag> on
+<sgmltag>glossterm</sgmltag> then is used instead of autogeneration of
+link.</para>
+
+</refsect1>
+</refentry>