;; $Id: dbtitle.dsl,v 1.2 2003/01/15 08:24:13 adicarlo Exp $
;;
;; This file is part of the Modular DocBook Stylesheet distribution.
;; See ../README or http://docbook.sourceforge.net/projects/dsssl/
;;

;; So we can pass different sosofo's to this routine and get identical
;; treatment (see REFNAME in dbrfntry.dsl)
;;
(define ($lowtitlewithsosofo$ tlevel sosofo)
  (let ((tgi (cond
	      ((equal? tlevel 1) "H1")
	      ((equal? tlevel 2) "H2")
	      ((equal? tlevel 3) "H3")
	      ((equal? tlevel 4) "H4")
	      ((equal? tlevel 5) "H5")
	      (else "P"))))
    (if (< tlevel 6)
	(make element gi: tgi
	      sosofo)
	(make element gi: "P"
	      (make element gi: "B"
		    sosofo)))))

(define ($lowtitle$ tlevel)
  ($lowtitlewithsosofo$ tlevel (process-children)))

(define ($runinhead$)
  (let* ((title    (data (current-node)))
	 (titlelen (string-length title))
	 (lastchar (if (> titlelen 0)
		       (string-ref title (- titlelen 1))
		       "."))
	 (punct    (if (or (= titlelen 0) 
			   (member lastchar %content-title-end-punct%))
		       ""
		       %default-title-end-punct%)))
    (make element gi: "B"
	  (process-children)
	  (literal punct " "))))

(element title 
  (make element gi: "P"
	(make element gi: "B"
	      (process-children-trim))))

(element titleabbrev (empty-sosofo))

(mode title-mode
  (element title
    (process-children)))

(mode subtitle-mode
  (element subtitle
    (make sequence
      (literal (if (first-sibling?)
		   ""
		   "; "))
      (process-children))))

(mode head-title-mode
  ;; TITLE in an HTML HEAD
  (default
    (process-children))

  (element graphic (empty-sosofo))
  (element inlinegraphic (empty-sosofo)))
