summaryrefslogtreecommitdiff
path: root/print/dbadmon.dsl
diff options
context:
space:
mode:
Diffstat (limited to 'print/dbadmon.dsl')
-rw-r--r--print/dbadmon.dsl161
1 files changed, 161 insertions, 0 deletions
diff --git a/print/dbadmon.dsl b/print/dbadmon.dsl
new file mode 100644
index 0000000..a765847
--- /dev/null
+++ b/print/dbadmon.dsl
@@ -0,0 +1,161 @@
+;; $Id: dbadmon.dsl,v 1.5 2004/10/10 14:18:40 petere78 Exp $
+;;
+;; This file is part of the Modular DocBook Stylesheet distribution.
+;; See ../README or http://docbook.sourceforge.net/projects/dsssl/
+;;
+
+;; ============================ ADMONITIONS =============================
+
+(define ($graphical-admonition$)
+ (let* ((adm (current-node))
+ (title (select-elements (children adm)
+ (normalize "title")))
+ (title? (not (node-list-empty? title)))
+ (adm-title (if title?
+ (with-mode title-sosofo-mode
+ (process-node-list (node-list-first title)))
+ (literal (gentext-element-name adm))))
+ (graphic (make external-graphic
+ display?: #f
+ entity-system-id: ($admon-graphic$)))
+ (f-child (node-list-first (children (current-node))))
+ (r-child (node-list-rest (children (current-node)))))
+ (make display-group
+ space-before: %block-sep%
+ space-after: %block-sep%
+ start-indent: (+ (inherited-start-indent) ($admon-graphic-width$))
+ font-family-name: %admon-font-family%
+ font-size: (- %bf-size% 1pt)
+ font-weight: 'medium
+ font-posture: 'upright
+ line-spacing: (* (- %bf-size% 1pt) %line-spacing-factor%)
+ (if title?
+ (make display-group
+ (make paragraph
+ first-line-start-indent: (- ($admon-graphic-width$))
+ keep-with-next?: #t
+ (make line-field
+ field-width: ($admon-graphic-width$)
+ graphic)
+ (make sequence
+ font-family-name: %title-font-family%
+ font-weight: 'bold
+ adm-title))
+ (process-children))
+ (make display-group
+ (make paragraph
+ first-line-start-indent: (- ($admon-graphic-width$))
+ (make line-field
+ field-width: ($admon-graphic-width$)
+ graphic)
+ (process-node-list (children f-child)))
+ (process-node-list r-child))))))
+
+(define ($admonition$)
+ (if %admon-graphics%
+ ($graphical-admonition$)
+ (make display-group
+ space-before: %block-sep%
+ space-after: %block-sep%
+ start-indent: (if %admon-graphics%
+ (inherited-start-indent)
+ (+ (inherited-start-indent) (* (ILSTEP) 2)))
+ font-size: (- %bf-size% 1pt)
+ font-weight: 'medium
+ font-posture: 'upright
+ font-family-name: %admon-font-family%
+ line-spacing: (* (- %bf-size% 1pt) %line-spacing-factor%)
+ (process-children))))
+
+(define ($admonpara$)
+ (let* ((title (select-elements
+ (children (parent (current-node))) (normalize "title")))
+ (has-title (not (node-list-empty? title)))
+ (adm-title (if has-title
+ (make sequence
+ (with-mode title-sosofo-mode
+ (process-node-list (node-list-first title)))
+ (literal (gentext-label-title-sep
+ (gi (parent (current-node))))))
+ (literal
+ (gentext-element-name
+ (parent (current-node)))
+ (gentext-label-title-sep
+ (gi (parent (current-node))))))))
+ (make paragraph
+ space-before: %para-sep%
+ space-after: %para-sep%
+ (if (and (not %admon-graphics%) (= (child-number) 1))
+ (make sequence
+ font-family-name: %title-font-family%
+ font-weight: 'bold
+ adm-title)
+ (empty-sosofo))
+ (process-children-trim))))
+
+(element important ($admonition$))
+(element (important title) (empty-sosofo))
+(element (important para) ($admonpara$))
+(element (important simpara) ($admonpara$))
+
+(element note ($admonition$))
+(element (note title) (empty-sosofo))
+(element (note para) ($admonpara$))
+(element (note simpara) ($admonpara$))
+
+(element tip ($admonition$))
+(element (tip title) (empty-sosofo))
+(element (tip para) ($admonpara$))
+(element (tip simpara) ($admonpara$))
+
+;; perils are given special treatment by generating a centered title
+;; and throwing a box around them
+;; note that the paragraph indents are set by the box characteristics
+;;
+(define ($peril$)
+ (let* ((title (select-elements
+ (children (current-node)) (normalize "title")))
+ (has-title (not (node-list-empty? title)))
+ (adm-title (if has-title
+ (make sequence
+ (with-mode title-sosofo-mode
+ (process-node-list (node-list-first title))))
+ (literal
+ (gentext-element-name
+ (current-node)))))
+ (hs (HSIZE 2)))
+ (if %admon-graphics%
+ ($graphical-admonition$)
+ (make display-group
+ space-before: %block-sep%
+ space-after: %block-sep%
+ font-family-name: %admon-font-family%
+ font-size: (- %bf-size% 1pt)
+ font-weight: 'medium
+ font-posture: 'upright
+ line-spacing: (* (- %bf-size% 1pt) %line-spacing-factor%)
+ (make box
+ display?: #t
+ box-type: 'border
+ line-thickness: 2pt
+ start-indent: (+ (inherited-start-indent) (* 2 (ILSTEP)) 2pt)
+ end-indent: (inherited-end-indent)
+ (make paragraph
+ space-before: %para-sep%
+ space-after: %para-sep%
+ start-indent: 1em
+ end-indent: 1em
+ font-family-name: %title-font-family%
+ font-weight: 'bold
+ font-size: hs
+ line-spacing: (* hs %line-spacing-factor%)
+ quadding: 'center
+ keep-with-next?: #t
+ adm-title)
+ (process-children))))))
+
+(element caution ($peril$))
+(element (caution title) (empty-sosofo))
+
+(element warning ($peril$))
+(element (warning title) (empty-sosofo))