don't use refmiscinfo@class=date value as fallback for refentry
authorMichael Smith <xmldoc@users.sourceforge.net>
Fri, 7 Mar 2008 09:10:56 +0000 (09:10 +0000)
committerMichael Smith <xmldoc@users.sourceforge.net>
Fri, 7 Mar 2008 09:10:56 +0000 (09:10 +0000)
"source" or "manual" metadata fields

xsl/common/refentry.xsl
xsl/params/refentry.manual.fallback.profile.xml
xsl/params/refentry.source.fallback.profile.xml

index 54f4e46a568c17c2330488f7842054eaf23d8057..257368e48768fe7e886e40dfbd6d9831ab137575 100644 (file)
       </xsl:choose>
       <xsl:copy-of select="$Version"/>
     </xsl:when>
-    <!-- * if no Name and no Version, report it and use fallback (if any) -->
+    <!-- * if no Name and no Version, use fallback (if any) -->
     <xsl:when test="not($prefs/@fallback = '')">
-      <xsl:call-template name="report.missing.source.name">
-        <xsl:with-param name="refname" select="$refname"/>
-      </xsl:call-template>
-      <xsl:call-template name="report.missing.version">
-        <xsl:with-param name="refname" select="$refname"/>
-      </xsl:call-template>
       <xsl:variable name="source.fallback">
         <xsl:call-template name="evaluate.info.profile">
           <xsl:with-param name="profile" select="$prefs/@fallback"/>
           <xsl:with-param name="info" select="$info"/>
         </xsl:call-template>
       </xsl:variable>
+      <!-- * At this point, we know that we don't have properly marked-up -->
+      <!-- * source metadata, so even if we do have source fallback -->
+      <!-- * content, we still report to the user that it should be -->
+      <!-- * marked up properly instead. -->
+      <xsl:if test="$refentry.meta.get.quietly = 0">
+        <xsl:call-template name="report.missing.source.name">
+          <xsl:with-param name="refname" select="$refname"/>
+        </xsl:call-template>
+        <xsl:call-template name="report.missing.version">
+          <xsl:with-param name="refname" select="$refname"/>
+        </xsl:call-template>
+      </xsl:if>
       <xsl:choose>
         <xsl:when test="not($source.fallback = '')">
           <xsl:value-of select="$source.fallback"/>
+          <xsl:if test="$refentry.meta.get.quietly = 0">
+            <xsl:call-template name="log.message">
+              <xsl:with-param name="level">Warn</xsl:with-param>
+              <xsl:with-param name="source" select="$refname"/>
+              <xsl:with-param name="context-desc">meta source</xsl:with-param>
+              <xsl:with-param name="message">
+                <xsl:text>using</xsl:text>
+                <xsl:text> "</xsl:text>
+                <xsl:value-of select="$source.fallback"/>
+                <xsl:text>" </xsl:text>
+                <xsl:text>for "source"</xsl:text>
+              </xsl:with-param>
+            </xsl:call-template>
+          </xsl:if>
         </xsl:when>
         <xsl:otherwise>
+          <!-- * we have no Name, no Version, and no fallback content, so -->
+          <!-- * insert a fixme -->
           <xsl:text>[FIXME: source]</xsl:text>
           <xsl:if test="$refentry.meta.get.quietly = 0">
             <xsl:call-template name="log.message">
       </xsl:choose>
     </xsl:when>
     <xsl:otherwise>
+      <!-- * we have no Name, no Version, and no fallback given, so -->
+      <!-- * insert a fixme -->
       <xsl:text>[FIXME: source]</xsl:text>
       <xsl:if test="$refentry.meta.get.quietly = 0">
         <xsl:call-template name="log.message">
 
 <xsl:template name="report.missing.source.name">
   <xsl:param name="refname"/>
-  <xsl:if test="$refentry.meta.get.quietly = 0">
-    <xsl:call-template name="log.message">
-      <xsl:with-param name="level">Note</xsl:with-param>
-      <xsl:with-param name="source" select="$refname"/>
-      <xsl:with-param name="context-desc">meta source</xsl:with-param>
-      <xsl:with-param name="message">
-        <xsl:text>no *info/productname or alternative</xsl:text>
-      </xsl:with-param>
-    </xsl:call-template>
-    <xsl:call-template name="log.message">
-      <xsl:with-param name="level">Note</xsl:with-param>
-      <xsl:with-param name="source" select="$refname"/>
-      <xsl:with-param name="context-desc">meta source</xsl:with-param>
-      <xsl:with-param name="message">
-        <xsl:text>see http://docbook.sf.net/el/productname</xsl:text>
-      </xsl:with-param>
-    </xsl:call-template>
-    <xsl:call-template name="log.message">
-      <xsl:with-param name="level">Note</xsl:with-param>
-      <xsl:with-param name="source" select="$refname"/>
-      <xsl:with-param name="context-desc">meta source</xsl:with-param>
-      <xsl:with-param name="message">
-        <xsl:text>no refentry/refmeta/refmiscinfo@class=source</xsl:text>
-      </xsl:with-param>
-    </xsl:call-template>
-    <xsl:call-template name="log.message">
-      <xsl:with-param name="level">Note</xsl:with-param>
-      <xsl:with-param name="source" select="$refname"/>
-      <xsl:with-param name="context-desc">meta source</xsl:with-param>
-      <xsl:with-param name="message">
-        <xsl:text>see http://docbook.sf.net/el/refmiscinfo</xsl:text>
-      </xsl:with-param>
-    </xsl:call-template>
-  </xsl:if>
+  <xsl:call-template name="log.message">
+    <xsl:with-param name="level">Note</xsl:with-param>
+    <xsl:with-param name="source" select="$refname"/>
+    <xsl:with-param name="context-desc">meta source</xsl:with-param>
+    <xsl:with-param name="message">
+      <xsl:text>no *info/productname or alternative</xsl:text>
+    </xsl:with-param>
+  </xsl:call-template>
+  <xsl:call-template name="log.message">
+    <xsl:with-param name="level">Note</xsl:with-param>
+    <xsl:with-param name="source" select="$refname"/>
+    <xsl:with-param name="context-desc">meta source</xsl:with-param>
+    <xsl:with-param name="message">
+      <xsl:text>see http://docbook.sf.net/el/productname</xsl:text>
+    </xsl:with-param>
+  </xsl:call-template>
+  <xsl:call-template name="log.message">
+    <xsl:with-param name="level">Note</xsl:with-param>
+    <xsl:with-param name="source" select="$refname"/>
+    <xsl:with-param name="context-desc">meta source</xsl:with-param>
+    <xsl:with-param name="message">
+      <xsl:text>no refentry/refmeta/refmiscinfo@class=source</xsl:text>
+    </xsl:with-param>
+  </xsl:call-template>
+  <xsl:call-template name="log.message">
+    <xsl:with-param name="level">Note</xsl:with-param>
+    <xsl:with-param name="source" select="$refname"/>
+    <xsl:with-param name="context-desc">meta source</xsl:with-param>
+    <xsl:with-param name="message">
+      <xsl:text>see http://docbook.sf.net/el/refmiscinfo</xsl:text>
+    </xsl:with-param>
+  </xsl:call-template>
 </xsl:template>
 
 <!-- ==================================================================== -->
 
 <xsl:template name="report.missing.version">
   <xsl:param name="refname"/>
-  <xsl:if test="$refentry.meta.get.quietly = 0">
-    <xsl:call-template name="log.message">
-      <xsl:with-param name="level">Note</xsl:with-param>
-      <xsl:with-param name="source" select="$refname"/>
-      <xsl:with-param name="context-desc">meta version</xsl:with-param>
-      <xsl:with-param name="message">
-        <xsl:text>no *info/productnumber or alternative</xsl:text>
-      </xsl:with-param>
-    </xsl:call-template>
-    <xsl:call-template name="log.message">
-      <xsl:with-param name="level">Note</xsl:with-param>
-      <xsl:with-param name="source" select="$refname"/>
-      <xsl:with-param name="context-desc">meta version</xsl:with-param>
-      <xsl:with-param name="message">
-        <xsl:text>see http://docbook.sf.net/el/productnumber</xsl:text>
-      </xsl:with-param>
-    </xsl:call-template>
-    <xsl:call-template name="log.message">
-      <xsl:with-param name="level">Note</xsl:with-param>
-      <xsl:with-param name="source" select="$refname"/>
-      <xsl:with-param name="context-desc">meta version</xsl:with-param>
-      <xsl:with-param name="message">
-        <xsl:text>no refentry/refmeta/refmiscinfo@class=version</xsl:text>
-      </xsl:with-param>
-    </xsl:call-template>
-    <xsl:call-template name="log.message">
-      <xsl:with-param name="level">Note</xsl:with-param>
-      <xsl:with-param name="source" select="$refname"/>
-      <xsl:with-param name="context-desc">meta version</xsl:with-param>
-      <xsl:with-param name="message">
-        <xsl:text>see http://docbook.sf.net/el/refmiscinfo</xsl:text>
-      </xsl:with-param>
-    </xsl:call-template>
-  </xsl:if>
+  <xsl:call-template name="log.message">
+    <xsl:with-param name="level">Note</xsl:with-param>
+    <xsl:with-param name="source" select="$refname"/>
+    <xsl:with-param name="context-desc">meta version</xsl:with-param>
+    <xsl:with-param name="message">
+      <xsl:text>no *info/productnumber or alternative</xsl:text>
+    </xsl:with-param>
+  </xsl:call-template>
+  <xsl:call-template name="log.message">
+    <xsl:with-param name="level">Note</xsl:with-param>
+    <xsl:with-param name="source" select="$refname"/>
+    <xsl:with-param name="context-desc">meta version</xsl:with-param>
+    <xsl:with-param name="message">
+      <xsl:text>see http://docbook.sf.net/el/productnumber</xsl:text>
+    </xsl:with-param>
+  </xsl:call-template>
+  <xsl:call-template name="log.message">
+    <xsl:with-param name="level">Note</xsl:with-param>
+    <xsl:with-param name="source" select="$refname"/>
+    <xsl:with-param name="context-desc">meta version</xsl:with-param>
+    <xsl:with-param name="message">
+      <xsl:text>no refentry/refmeta/refmiscinfo@class=version</xsl:text>
+    </xsl:with-param>
+  </xsl:call-template>
+  <xsl:call-template name="log.message">
+    <xsl:with-param name="level">Note</xsl:with-param>
+    <xsl:with-param name="source" select="$refname"/>
+    <xsl:with-param name="context-desc">meta version</xsl:with-param>
+    <xsl:with-param name="message">
+      <xsl:text>see http://docbook.sf.net/el/refmiscinfo</xsl:text>
+    </xsl:with-param>
+  </xsl:call-template>
 </xsl:template>
 
 <!-- ==================================================================== -->
                 </xsl:call-template>
               </xsl:when>
               <xsl:otherwise>
-                <xsl:if test="$refentry.meta.get.quietly = 0">
-                  <xsl:call-template name="log.message">
-                    <xsl:with-param name="level">Note</xsl:with-param>
-                    <xsl:with-param name="source" select="$refname"/>
-                    <xsl:with-param name="context-desc">meta manual</xsl:with-param>
-                    <xsl:with-param name="message">
-                      <xsl:text>no titled ancestor of refentry</xsl:text>
-                    </xsl:with-param>
-                  </xsl:call-template>
-                  <xsl:call-template name="log.message">
-                    <xsl:with-param name="level">Note</xsl:with-param>
-                    <xsl:with-param name="source" select="$refname"/>
-                    <xsl:with-param name="context-desc">meta manual</xsl:with-param>
-                    <xsl:with-param name="message">
-                      <xsl:text>no refentry/refmeta/refmiscinfo@class=manual</xsl:text>
-                    </xsl:with-param>
-                  </xsl:call-template>
-                  <xsl:call-template name="log.message">
-                    <xsl:with-param name="level">Note</xsl:with-param>
-                    <xsl:with-param name="source" select="$refname"/>
-                    <xsl:with-param name="context-desc">meta manual</xsl:with-param>
-                    <xsl:with-param name="message">
-                      <xsl:text>see http://docbook.sf.net/el/refmiscinfo</xsl:text>
-                    </xsl:with-param>
-                  </xsl:call-template>
-                </xsl:if>
               </xsl:otherwise>
             </xsl:choose>
           </xsl:otherwise>
     <xsl:when test="not($Manual = '')">
       <xsl:copy-of select="$Manual"/>
     </xsl:when>
-    <!-- * if no Manual, use contents of specified Fallback (if any) -->
+    <!-- * if no Manual, use contents of specified fallback (if any) -->
     <xsl:when test="not($prefs/@fallback = '')">
       <xsl:variable name="manual.fallback">
         <xsl:call-template name="evaluate.info.profile">
           <xsl:with-param name="info" select="$info"/>
         </xsl:call-template>
       </xsl:variable>
+      <!-- * At this point, we know that we don't have properly marked-up -->
+      <!-- * mnual metadata, so even if we do have manul fallback -->
+      <!-- * content, we still report to the user that it should be -->
+      <!-- * marked up properly instead. -->
+      <xsl:if test="$refentry.meta.get.quietly = 0">
+        <xsl:call-template name="report.missing.manual">
+          <xsl:with-param name="refname" select="$refname"/>
+        </xsl:call-template>
+      </xsl:if>
       <xsl:choose>
         <xsl:when test="not($manual.fallback = '')">
           <xsl:value-of select="$manual.fallback"/>
+          <xsl:if test="$refentry.meta.get.quietly = 0">
+            <xsl:call-template name="log.message">
+              <xsl:with-param name="level">Warn</xsl:with-param>
+              <xsl:with-param name="source" select="$refname"/>
+              <xsl:with-param name="context-desc">meta manual</xsl:with-param>
+              <xsl:with-param name="message">
+                <xsl:text>using</xsl:text>
+                <xsl:text> "</xsl:text>
+                <xsl:value-of select="$manual.fallback"/>
+                <xsl:text>" </xsl:text>
+                <xsl:text>for "manual"</xsl:text>
+              </xsl:with-param>
+            </xsl:call-template>
+          </xsl:if>
         </xsl:when>
         <xsl:otherwise>
+          <!-- * we have nothing appropriate to use for manual, and no fallback -->
+          <!-- * content, so report insert a fixme -->
           <xsl:text>[FIXME: manual]</xsl:text>
-          <xsl:if test="$refentry.meta.get.quietly = 0">
             <xsl:call-template name="log.message">
               <xsl:with-param name="level">Warn</xsl:with-param>
               <xsl:with-param name="source" select="$refname"/>
       </xsl:choose>
     </xsl:when>
     <xsl:otherwise>
+      <!-- * we have nothing appropriate to use for manual, and no fallback -->
+      <!-- * given, so insert a fixme -->
       <xsl:text>[FIXME: manual]</xsl:text>
-      <xsl:if test="$refentry.meta.get.quietly = 0">
         <xsl:call-template name="log.message">
           <xsl:with-param name="level">Warn</xsl:with-param>
           <xsl:with-param name="source" select="$refname"/>
   </xsl:choose>
 </xsl:template>
 
+<xsl:template name="report.missing.manual">
+  <xsl:param name="refname"/>
+  <xsl:call-template name="log.message">
+    <xsl:with-param name="level">Note</xsl:with-param>
+    <xsl:with-param name="source" select="$refname"/>
+    <xsl:with-param name="context-desc">meta manual</xsl:with-param>
+    <xsl:with-param name="message">
+      <xsl:text>no titled ancestor of refentry</xsl:text>
+    </xsl:with-param>
+  </xsl:call-template>
+  <xsl:call-template name="log.message">
+    <xsl:with-param name="level">Note</xsl:with-param>
+    <xsl:with-param name="source" select="$refname"/>
+    <xsl:with-param name="context-desc">meta manual</xsl:with-param>
+    <xsl:with-param name="message">
+      <xsl:text>no refentry/refmeta/refmiscinfo@class=manual</xsl:text>
+    </xsl:with-param>
+  </xsl:call-template>
+  <xsl:call-template name="log.message">
+    <xsl:with-param name="level">Note</xsl:with-param>
+    <xsl:with-param name="source" select="$refname"/>
+    <xsl:with-param name="context-desc">meta manual</xsl:with-param>
+    <xsl:with-param name="message">
+      <xsl:text>see http://docbook.sf.net/el/refmiscinfo</xsl:text>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
 <!-- ====================================================================== -->
 <doc:template name="get.refentry.metadata.prefs" xmlns="">
   <refpurpose>Gets user preferences for refentry metadata gathering</refpurpose>
index 07ba3bf60ae2edf4faee2ca9e77608fe37b301e9..63627856884baf28cc114e2027a5b458d9b24a31 100644 (file)
@@ -16,7 +16,7 @@
 <refsynopsisdiv>
 <src:fragment xml:id="refentry.manual.fallback.profile.frag">
 <xsl:param name="refentry.manual.fallback.profile">
-refmeta/refmiscinfo[1]/node()</xsl:param>
+refmeta/refmiscinfo[not(@class = 'date')][1]/node()</xsl:param>
 </src:fragment>
 </refsynopsisdiv>
 
index e0fe91214f402ad678e0ceab7d032474dfc0fa97..1761378a92576260b369ddd9cfa5222abf06e05f 100644 (file)
@@ -16,7 +16,7 @@
 <refsynopsisdiv>
 <src:fragment xml:id="refentry.source.fallback.profile.frag">
 <xsl:param name="refentry.source.fallback.profile">
-refmeta/refmiscinfo[1]/node()</xsl:param>
+refmeta/refmiscinfo[not(@class = 'date')][1]/node()</xsl:param>
 </src:fragment>
 </refsynopsisdiv>