Karakas Online

6.4.1. Keywords not present in HTML

If you don't see the keywords in the HTML file, then this may be a bug in your stylesheets. There seems to be a bug in dbcommon.dsl (DocBook DSSSL stylesheets 1.73) that prevents this from happening for an article, where the <keywordset> in within <articleinfo>. The definition of "info-element" in dbcommon.dsl contains

((equal? (gi nd) (normalize "article")) 
  (select-elements (children nd) (normalize "artheader")))

but no reference to "articleinfo".

In dbcommon.dsl, which in my system resides in /usr/share/sgml/docbook/docbook-dsssl-stylesheets-1.72/common/dbcommon.dsl and belongs to packet docbook-dsssl-stylesheets-1.72-34, replace the definition of info-element with:

;; ======================================================================
(define (info-element #!optional (nd (current-node)))
  ;; Returns the *INFO element for the nd or (empty-node-list) if no
  ;; such node exists...
  (cond
   ((equal? (gi nd) (normalize "set"))
    (select-elements (children nd) (normalize "setinfo")))
   ((equal? (gi nd) (normalize "book"))
    (select-elements (children nd) (normalize "bookinfo")))
   ((equal? (gi nd) (normalize "section"))
    (select-elements (children nd) (normalize "sectioninfo")))
   ((equal? (gi nd) (normalize "sect1"))
    (select-elements (children nd) (normalize "sect1info")))
   ((equal? (gi nd) (normalize "sect2"))
    (select-elements (children nd) (normalize "sect2info")))
   ((equal? (gi nd) (normalize "sect3"))
    (select-elements (children nd) (normalize "sect3info")))
   ((equal? (gi nd) (normalize "sect4"))
    (select-elements (children nd) (normalize "sect4info")))
   ((equal? (gi nd) (normalize "sect5"))
    (select-elements (children nd) (normalize "sect5info")))
   ((equal? (gi nd) (normalize "refsect1")) 
    (select-elements (children nd) (normalize "refsect1info")))
   ((equal? (gi nd) (normalize "refsect2")) 
    (select-elements (children nd) (normalize "refsect2info")))
   ((equal? (gi nd) (normalize "refsect3")) 
    (select-elements (children nd) (normalize "refsect3info")))
   ((equal? (gi nd) (normalize "refsynopsisdiv"))
    (select-elements (children nd) (normalize "refsynopsisdivinfo")))
   ((equal? (gi nd) (normalize "article"))
   ;; Changed by root.
   ;; node-list-filter-by-gi and articleinfo inserted. 
   ;; Otherwise no keywords are created in articles.
    (node-list-filter-by-gi (children nd) (list
                                          (normalize "artheader")
                                          (normalize "articleinfo"))))
   (else ;; BIBLIODIV, GLOSSDIV, INDEXDIV, PARTINTRO, SIMPLESECT
    (select-elements (children nd) (normalize "docinfo")))))
;; ======================================================================
Last updated Mon Sep 24 01:19:25 CEST 2007 Permalink: http://www.karakas-online.de/mySGML/keywords.html All contents © 2002-2007 Chris Karakas