]> granicus.if.org Git - docbook-dsssl/commitdiff
New parameter: id.warnings. If non-zero, warnings are generated for titled objects...
authorNorman Walsh <ndw@nwalsh.com>
Fri, 28 Oct 2005 12:35:15 +0000 (12:35 +0000)
committerNorman Walsh <ndw@nwalsh.com>
Fri, 28 Oct 2005 12:35:15 +0000 (12:35 +0000)
12 files changed:
xsl/html/biblio.xsl
xsl/html/component.xsl
xsl/html/division.xsl
xsl/html/formal.xsl
xsl/html/glossary.xsl
xsl/html/html.xsl
xsl/html/index.xsl
xsl/html/param.ent
xsl/html/param.xweb
xsl/html/refentry.xsl
xsl/html/sections.xsl
xsl/params/id.warnings.xml [new file with mode: 0644]

index 9ff9fa366a072207549134c244734cb2024521f5..ffb243ef9348e1602923acedbaf3c54a3e1a48f0 100644 (file)
@@ -15,6 +15,8 @@
 <!-- ==================================================================== -->
 
 <xsl:template match="bibliography">
+  <xsl:call-template name="id.warning"/>
+
   <div class="{name(.)}">
     <xsl:if test="$generate.id.attributes != 0">
       <xsl:attribute name="id">
@@ -40,6 +42,8 @@
 <!-- ==================================================================== -->
 
 <xsl:template match="bibliodiv">
+  <xsl:call-template name="id.warning"/>
+
   <div class="{name(.)}">
     <xsl:apply-templates/>
   </div>
index 0c2f8f16b872d37d4437e7690b11b86530141dc4..75b9b2cc43674f3875dc2fb01b32470b82af9b89 100644 (file)
@@ -73,6 +73,8 @@
 <!-- ==================================================================== -->
 
 <xsl:template match="dedication" mode="dedication">
+  <xsl:call-template name="id.warning"/>
+
   <div class="{name(.)}">
     <xsl:call-template name="dir">
       <xsl:with-param name="inherit" select="1"/>
 <!-- ==================================================================== -->
 
 <xsl:template match="colophon">
+  <xsl:call-template name="id.warning"/>
+
   <div class="{name(.)}">
     <xsl:call-template name="dir">
       <xsl:with-param name="inherit" select="1"/>
 <!-- ==================================================================== -->
 
 <xsl:template match="preface">
+  <xsl:call-template name="id.warning"/>
+
   <div class="{name(.)}">
     <xsl:call-template name="dir">
       <xsl:with-param name="inherit" select="1"/>
 <!-- ==================================================================== -->
 
 <xsl:template match="chapter">
+  <xsl:call-template name="id.warning"/>
+
   <div class="{name(.)}">
     <xsl:call-template name="dir">
       <xsl:with-param name="inherit" select="1"/>
     <xsl:call-template name="chunk"/>
   </xsl:variable>
 
+  <xsl:call-template name="id.warning"/>
+
   <div class="{name(.)}">
     <xsl:call-template name="dir">
       <xsl:with-param name="inherit" select="1"/>
 <!-- ==================================================================== -->
 
 <xsl:template match="article">
+  <xsl:call-template name="id.warning"/>
+
   <div class="{name(.)}">
     <xsl:call-template name="dir">
       <xsl:with-param name="inherit" select="1"/>
index 15bf0531cff763efe5c6fb1b03bd914c9288a2e9..50799c9a692d45df853d2c4fbb51d12d6311d45e 100644 (file)
@@ -15,6 +15,8 @@
 <!-- ==================================================================== -->
 
 <xsl:template match="set">
+  <xsl:call-template name="id.warning"/>
+
   <div class="{name(.)}">
     <xsl:call-template name="dir">
       <xsl:with-param name="inherit" select="1"/>
@@ -51,6 +53,8 @@
 <!-- ==================================================================== -->
 
 <xsl:template match="book">
+  <xsl:call-template name="id.warning"/>
+
   <div class="{name(.)}">
     <xsl:call-template name="dir">
       <xsl:with-param name="inherit" select="1"/>
@@ -89,6 +93,8 @@
 <!-- ==================================================================== -->
 
 <xsl:template match="part">
+  <xsl:call-template name="id.warning"/>
+
   <div class="{name(.)}">
     <xsl:call-template name="dir">
       <xsl:with-param name="inherit" select="1"/>
 <xsl:template match="part/subtitle"></xsl:template>
 
 <xsl:template match="partintro">
+  <xsl:call-template name="id.warning"/>
+
   <div class="{name(.)}">
     <xsl:call-template name="dir">
       <xsl:with-param name="inherit" select="1"/>
index deed8544674cc9830b77bc1eff6e809d3451109f..0bf5fb9866771fa6f9da94b6be9b293dcefc8c5e 100644 (file)
@@ -16,6 +16,8 @@
   <xsl:param name="placement" select="'before'"/>
   <xsl:param name="class" select="local-name(.)"/>
 
+  <xsl:call-template name="id.warning"/>
+
   <div class="{$class}">
     <xsl:call-template name="anchor">
       <xsl:with-param name="conditional" select="0"/>
index afad5f84749cba8ad4f2893e1c2328bd9bed44f1..8ca0223b59bc04876f15a92a1082f22256519880 100644 (file)
@@ -15,6 +15,8 @@
 <!-- ==================================================================== -->
 
 <xsl:template match="glossary">
+  <xsl:call-template name="id.warning"/>
+
   <div class="{name(.)}">
     <xsl:if test="$generate.id.attributes != 0">
       <xsl:attribute name="id">
@@ -72,6 +74,8 @@
 <!-- ==================================================================== -->
 
 <xsl:template match="glossdiv">
+  <xsl:call-template name="id.warning"/>
+
   <div class="{name(.)}">
     <xsl:apply-templates select="(glossentry[1]/preceding-sibling::*)"/>
 
@@ -297,6 +301,8 @@ GlossEntry ::=
   <xsl:variable name="terms" select="//glossterm[not(parent::glossdef)]|//firstterm"/>
   <xsl:variable name="collection" select="document($glossary.collection, .)"/>
 
+  <xsl:call-template name="id.warning"/>
+
   <xsl:if test="$glossary.collection = ''">
     <xsl:message>
       <xsl:text>Warning: processing automatic glossary </xsl:text>
index 15fd486e980da5823d71357c047e80fe83843ff0..e14a7b784a1d5d314618332f292d2eb9eb7c4909 100644 (file)
   </xsl:choose>
 </xsl:template>
 
+<xsl:template name="id.warning">
+  <xsl:if test="not(@id) and not(@xml:id) and parent::*">
+    <xsl:variable name="title">
+      <xsl:choose>
+       <xsl:when test="title">
+         <xsl:value-of select="title[1]"/>
+       </xsl:when>
+       <xsl:when test="contains(local-name(*[1]),'info')">
+         <xsl:value-of select="*[1]/title[1]"/>
+       </xsl:when>
+       <xsl:when test="refmeta/refentrytitle">
+         <xsl:value-of select="refmeta/refentrytitle"/>
+       </xsl:when>
+       <xsl:when test="refnamediv/refname">
+         <xsl:value-of select="refnamediv/refname[1]"/>
+       </xsl:when>
+      </xsl:choose>
+    </xsl:variable>
+
+    <xsl:message>
+      <xsl:text>ID recommended on </xsl:text>
+      <xsl:value-of select="local-name(.)"/>
+      <xsl:if test="$title != ''">
+       <xsl:text>: </xsl:text>
+       <xsl:choose>
+         <xsl:when test="string-length($title) &gt; 40">
+           <xsl:value-of select="substring($title,1,40)"/>
+           <xsl:text>...</xsl:text>
+         </xsl:when>
+         <xsl:otherwise>
+           <xsl:value-of select="$title"/>
+         </xsl:otherwise>
+       </xsl:choose>
+      </xsl:if>
+    </xsl:message>
+  </xsl:if>
+</xsl:template>
+
 </xsl:stylesheet>
 
index 352f50f31aca78b2ec28b2d76e57043b1efa5224..d7c9cf66072dbc761fad23391f65da94b835695d 100644 (file)
@@ -21,6 +21,8 @@
   <!-- is non-zero, in which case, this is where the automatically -->
   <!-- generated index should go. -->
 
+  <xsl:call-template name="id.warning"/>
+
   <xsl:if test="count(*)>0 or $generate.index != '0'">
     <div class="{name(.)}">
       <xsl:if test="$generate.id.attributes != 0">
@@ -73,6 +75,8 @@
   <!-- is non-zero, in which case, this is where the automatically -->
   <!-- generated index should go. -->
 
+  <xsl:call-template name="id.warning"/>
+
   <xsl:if test="count(*)>0 or $generate.index != '0'">
     <div class="{name(.)}">
       <xsl:if test="$generate.id.attributes != 0">
 <!-- ==================================================================== -->
 
 <xsl:template match="indexdiv">
+  <xsl:call-template name="id.warning"/>
+
   <div class="{name(.)}">
     <xsl:if test="$generate.id.attributes != 0">
       <xsl:attribute name="id">
index db3ad4c9c0095d1859edd2420719fd925a6ba648..bc04b4bbfec583e3523bebc8d88df6ba7f18c996 100644 (file)
 <!ENTITY annotation.graphic.close SYSTEM "../params/annotation.graphic.close.xml">
 <!ENTITY annotation.css SYSTEM "../params/annotation.css.xml">
 <!ENTITY keep.relative.image.uris SYSTEM "../params/keep.relative.image.uris.xml">
+<!ENTITY id.warnings SYSTEM "../params/id.warnings.xml">
index 281ff739cab0802357da11fde4f4eab182774b4e..b1d1d273fe1e876a44680e8b5b184d610fe03f7b 100644 (file)
@@ -157,6 +157,7 @@ stylesheet like this:</para>
 &suppress.footer.navigation;
 &header.rule;
 &footer.rule;
+&id.warnings;
 </reference>
 
 <reference id="meta"><title>Meta/*Info</title>
@@ -584,6 +585,7 @@ around all these parameters.</para>
 <src:fragref linkend="htmlhelp.use.hhk.frag"/>
 <src:fragref linkend="htmlhelp.window.geometry.frag"/>
 <src:fragref linkend="img.src.path.frag"/>
+<src:fragref linkend="id.warnings.frag"/>
 <src:fragref linkend="index.on.role.frag"/>
 <src:fragref linkend="index.on.type.frag"/>
 <src:fragref linkend="index.prefer.titleabbrev.frag"/>
index 28389083d764b86f4b9b4554950ece5529f39813..fa21b88c967f6fe48dd60dfa54ce24a4c2fd18c0 100644 (file)
@@ -15,6 +15,8 @@
 <!-- ==================================================================== -->
 
 <xsl:template match="reference">
+  <xsl:call-template name="id.warning"/>
+
   <div class="{name(.)}">
     <xsl:call-template name="dir">
       <xsl:with-param name="inherit" select="1"/>
@@ -81,6 +83,8 @@
 </xsl:template>
 
 <xsl:template match="refentry">
+  <xsl:call-template name="id.warning"/>
+
   <div class="{name(.)}">
     <xsl:call-template name="dir">
       <xsl:with-param name="inherit" select="1"/>
index 50106a98c27568e2a7bf68f29e6ae99fae86378d..6628cc9cfdc7b973944f882006bf25d78cc6f233 100644 (file)
@@ -17,6 +17,8 @@
 <xsl:template match="section">
   <xsl:variable name="depth" select="count(ancestor::section)+1"/>
 
+  <xsl:call-template name="id.warning"/>
+
   <div class="{name(.)}">
     <xsl:call-template name="dir">
       <xsl:with-param name="inherit" select="1"/>
@@ -92,6 +94,8 @@
 </xsl:template>
 
 <xsl:template match="sect1">
+  <xsl:call-template name="id.warning"/>
+
   <div class="{name(.)}">
     <xsl:call-template name="dir">
       <xsl:with-param name="inherit" select="1"/>
 </xsl:template>
 
 <xsl:template match="sect2">
+  <xsl:call-template name="id.warning"/>
+
   <div class="{name(.)}">
     <xsl:call-template name="dir">
       <xsl:with-param name="inherit" select="1"/>
 </xsl:template>
 
 <xsl:template match="sect2/title" mode="titlepage.mode" priority="2">
+  <xsl:call-template name="id.warning"/>
+
   <xsl:call-template name="section.title"/>
 </xsl:template>
 
 <xsl:template match="sect3">
+  <xsl:call-template name="id.warning"/>
+
   <div class="{name(.)}">
     <xsl:call-template name="dir">
       <xsl:with-param name="inherit" select="1"/>
 </xsl:template>
 
 <xsl:template match="sect4">
+  <xsl:call-template name="id.warning"/>
+
   <div class="{name(.)}">
     <xsl:call-template name="dir">
       <xsl:with-param name="inherit" select="1"/>
 </xsl:template>
 
 <xsl:template match="sect5">
+  <xsl:call-template name="id.warning"/>
+
   <div class="{name(.)}">
     <xsl:call-template name="dir">
       <xsl:with-param name="inherit" select="1"/>
 </xsl:template>
 
 <xsl:template match="simplesect">
+  <xsl:call-template name="id.warning"/>
+
   <div class="{name(.)}">
     <xsl:call-template name="dir">
       <xsl:with-param name="inherit" select="1"/>
diff --git a/xsl/params/id.warnings.xml b/xsl/params/id.warnings.xml
new file mode 100644 (file)
index 0000000..37be8e6
--- /dev/null
@@ -0,0 +1,24 @@
+<refentry id="id.warnings">
+<refmeta>
+<refentrytitle>id.warnings</refentrytitle>
+<refmiscinfo role="type">boolean</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>id.warnings</refname>
+<refpurpose>Should warnings be generated for titled elements without IDs?</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment id='id.warnings.frag'>
+<xsl:param name="id.warnings" select="1"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsect1><title>Description</title>
+
+<para>If non-zero, the stylesheet will issue a warning for
+any element (other than the root element) which
+has a title but does not have an ID.</para>
+
+</refsect1>
+</refentry>