1 ;; $Id: dbrfntry.dsl,v 1.4 2003/01/15 08:24:13 adicarlo Exp $
3 ;; This file is part of the Modular DocBook Stylesheet distribution.
4 ;; See ../README or http://docbook.sourceforge.net/projects/dsssl/
7 ;; =========================== REFERENCE PAGES ==========================
9 ;;(element reference ($component$))
12 (let* ((refinfo (select-elements (children (current-node))
13 (normalize "docinfo")))
14 (refintro (select-elements (children (current-node))
15 (normalize "partintro")))
16 (nl (titlepage-info-elements
19 (if %generate-partintro-on-titlepage%
23 (with-mode head-title-mode
24 (literal (element-title-string (current-node))))
26 (make element gi: "DIV"
27 attributes: (list (list "CLASS" (gi)))
30 attributes: (list (list "NAME" (element-id)))
33 (if %generate-reference-titlepage%
35 (reference-titlepage nl 'recto)
36 (reference-titlepage nl 'verso))
39 (if (not (generate-toc-in-front))
43 (if (and (not (node-list-empty? refintro))
44 (not %generate-partintro-on-titlepage%))
45 ($process-partintro$ refintro)
48 (if (and %generate-reference-toc%
49 (not %generate-reference-toc-on-titlepage%))
51 (build-toc (current-node)
52 (toc-depth (current-node))))
55 (if (generate-toc-in-front)
59 ;; If each RefEntry begins on a new page, this title is going to wind
60 ;; up on its own page, too, so make it a divtitlepage instead. Otherwise,
61 ;; just let it be a component title.
62 (element (reference title)
65 (mode refentry-head-title-mode
66 (default (process-children))
69 (let* ((refdesc (select-elements (children (current-node))
70 (normalize "refdescriptor")))
71 (refname (select-elements (children (current-node))
72 (normalize "refname")))
73 (title (if (node-list-empty? refdesc)
74 (node-list-first refname)
75 (node-list-first refdesc))))
76 (process-node-list title)))
78 (element refdescriptor
84 (element graphic (empty-sosofo))
85 (element inlinegraphic (empty-sosofo)))
87 (define ($refentry-body$)
88 (let ((id (element-id (current-node))))
90 (make element gi: "H1"
93 attributes: (list (list "NAME" id))
95 (element-title-sosofo (current-node))))
99 (html-document (with-mode refentry-head-title-mode
100 (literal (element-title-string (current-node))))
103 (element refmeta (empty-sosofo))
106 ;; only called for xrefs and citerefentry
107 (if %refentry-xref-manvolnum%
114 (element refmiscinfo (empty-sosofo))
116 (element refentrytitle ($charseq$))
118 (element refnamediv ($block-container$))
122 (if (and %refentry-generate-name% (first-sibling? (current-node)))
123 ($lowtitlewithsosofo$ 2 (literal (gentext-element-name
124 (gi (current-node)))))
128 (if (last-sibling? (current-node))
130 (literal (gentext-intra-label-sep (gi (current-node))))))))
134 (make entity-ref name: "nbsp")
135 (literal (dingbat "em-dash"))
136 (make entity-ref name: "nbsp")
139 (element refdescriptor (empty-sosofo)) ;; TO DO: finish this
142 (let ((role (attribute-string (normalize "role"))))
143 (make element gi: "P"
144 (make element gi: "B"
147 (string-append role ": ")
149 (process-children-trim))))
151 (element refsynopsisdiv
152 (make element gi: "DIV"
153 attributes: (list (list "CLASS" (gi)))
154 (make element gi: "A"
155 attributes: (list (list "NAME" (element-id)))
157 (make element gi: "H2"
158 (element-title-sosofo (current-node)))
161 (element (refsynopsisdiv title) (empty-sosofo))
163 (element refsect1 ($block-container$))
164 (element (refsect1 title) ($lowtitle$ 2))
165 (element refsect2 ($block-container$))
166 (element (refsect2 title) ($lowtitle$ 3))
167 (element refsect3 ($block-container$))
168 (element (refsect3 title) ($lowtitle$ 4))