;; $Id: dbprocdr.dsl,v 1.4 2004/09/23 20:34:58 petere78 Exp $
;;
;; This file is part of the Modular DocBook Stylesheet distribution.
;; See ../README or http://docbook.sourceforge.net/projects/dsssl/
;;
;; ============================= PROCEDURES =============================
(define (PROCSTEP ilvl)
(if (> ilvl 1) 2.0em 1.8em))
(element procedure
(let ((titles (select-elements (children (current-node)) (normalize "title")))
(preamble (node-list-filter-by-not-gi (children (current-node))
(list (normalize "step"))))
(steps (node-list-filter-by-gi (children (current-node))
(list (normalize "step"))))
(id (attribute-string (normalize "id"))))
(make element gi: "DIV"
attributes: (list
(list "CLASS" (gi)))
(if (not (node-list-empty? titles))
(make element gi: "P"
(make element gi: "B"
(make sequence
(if id
(make element gi: "A"
attributes: (list
(list "NAME" id))
(empty-sosofo))
(empty-sosofo))
(with-mode title-mode
(process-node-list titles)))))
(if id
(make element gi: "A"
attributes: (list
(list "NAME" id))
(empty-sosofo))
(empty-sosofo)))
(process-node-list preamble)
(make element gi: "OL"
attributes: (list
(list "TYPE" ($proc-hierarch-number-format$ 1)))
(process-node-list steps)))))
(element (procedure title) (empty-sosofo))
(element substeps
(make element gi: "OL"
attributes: (list
(list "CLASS" "SUBSTEPS")
(list "TYPE" ($proc-hierarch-number-format$
(+ ($proc-step-depth$ (current-node)) 1))))
(process-children)))
(element step
(let ((id (attribute-string (normalize "id"))))
(make sequence
(make element gi: "LI"
attributes: (list (list "CLASS" (gi)))
(if id
(make element gi: "A"
attributes: (list
(list "NAME" id))
(empty-sosofo))
(empty-sosofo))
(process-children)))))