mirror of
				https://github.com/smarty-php/smarty.git
				synced 2025-10-31 20:31:41 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			172 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			172 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
| ;; $Id$
 | |
| ;;
 | |
| ;; This file is part of the Modular DocBook Stylesheet distribution.
 | |
| ;; See ../README or http://www.berkshire.net/~norm/dsssl/
 | |
| ;;
 | |
| 
 | |
| ;; ============================ ADMONITIONS =============================
 | |
| 
 | |
| (define ($graphical-admonition$)
 | |
|   (let* ((adm       (current-node))
 | |
| 	 (id        (attribute-string (normalize "id")))
 | |
| 	 (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))))
 | |
| 	 (gr-cell   (make element gi: "TD"
 | |
| 			  attributes: (list 
 | |
| 				       (list "WIDTH" 
 | |
| 					     ($admon-graphic-width$))
 | |
| 				       (list "ALIGN" "CENTER")
 | |
| 				       (list "VALIGN" "TOP"))
 | |
| 			  (make empty-element gi: "IMG"
 | |
| 				attributes: (list 
 | |
| 					     (list "SRC" 
 | |
| 						   (root-rel-path 
 | |
| 						    ($admon-graphic$)))
 | |
| 					     (list "HSPACE" "5")
 | |
| 					     (list "ALT"
 | |
| 						   (gentext-element-name adm))))))
 | |
| 	 (ttl-cell  (make element gi: "TH"
 | |
| 			  attributes: '(("ALIGN" "LEFT")
 | |
| 					("VALIGN" "CENTER"))
 | |
| 			  (make element gi: "B" adm-title)))
 | |
| 	 (body-cell (make element gi: "TD"
 | |
| 			  attributes: '(("ALIGN" "LEFT")
 | |
| 					("VALIGN" "TOP"))
 | |
| 			  (process-children))))
 | |
|     (make element gi: "DIV"
 | |
| 	  attributes: (list (list "CLASS" (gi adm)))
 | |
| 	  (if id
 | |
| 	      (make element gi: "A"
 | |
| 		    attributes: (list (list "NAME" id))
 | |
| 		    (empty-sosofo))
 | |
| 	      (empty-sosofo))
 | |
| 	  (if %spacing-paras%
 | |
| 	      (make element gi: "P" (empty-sosofo))
 | |
| 	      (empty-sosofo))
 | |
| 	  (make element gi: "TABLE"
 | |
| 		attributes: (list (list "CLASS" (gi))
 | |
| 				  (list "WIDTH" ($table-width$))
 | |
| 				  (list "BORDER" "0"))
 | |
| 		(if title?
 | |
| 		    (make sequence
 | |
| 		      (make element gi: "TR"
 | |
| 			    gr-cell
 | |
| 			    ttl-cell)
 | |
| 		      (make element gi: "TR"
 | |
| 			    (make element gi: "TD"
 | |
| 				  (make entity-ref name: "nbsp"))
 | |
| 			    body-cell))
 | |
| 		    (make sequence
 | |
| 		      (make element gi: "TR"
 | |
| 			    gr-cell
 | |
| 			    body-cell)))))))
 | |
| 
 | |
| (define ($admonition$)
 | |
|   (let ((id     (attribute-string (normalize "id"))))
 | |
|     (if %admon-graphics%
 | |
| 	($graphical-admonition$)
 | |
| 	(make element gi: "DIV"
 | |
| 	      attributes: (list (list "CLASS" (gi)))
 | |
| 	      ;; The DIV isn't strictly necessary, of course, but it
 | |
| 	      ;; is consistent with the graphical-admonition case.
 | |
| 	      (make element gi: "BLOCKQUOTE"
 | |
| 		    attributes: (list
 | |
| 				 (list "CLASS" (gi)))
 | |
| 		    (if id
 | |
| 			(make element gi: "A"
 | |
| 			      attributes: (list (list "NAME" id))
 | |
| 			      (empty-sosofo))
 | |
| 			(empty-sosofo))
 | |
| 		    (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 
 | |
| 			  (gi (parent (current-node))))
 | |
| 			 (gentext-label-title-sep 
 | |
| 			  (gi (parent (current-node))))))))
 | |
|     (make element gi: "P"
 | |
| 	  (if (and (not %admon-graphics%) (= (child-number) 1))
 | |
| 	      (make element gi: "B"
 | |
| 		    adm-title)
 | |
| 	      (empty-sosofo))
 | |
| 	  (process-children))))
 | |
| 
 | |
| (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
 | |
| ;;
 | |
| (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 
 | |
| 			  (gi (current-node))))))
 | |
| 	 (id     (attribute-string (normalize "id"))))
 | |
|     (if %admon-graphics%
 | |
| 	($graphical-admonition$)
 | |
| 	(make element gi: "DIV"
 | |
| 	      attributes: (list (list "CLASS" (gi)))
 | |
| 	      ;; The DIV isn't strictly necessary, of course, but it
 | |
| 	      ;; is consistent with the graphical-admonition case.
 | |
| 	      (if %spacing-paras%
 | |
| 		  (make element gi: "P" (empty-sosofo))
 | |
| 		  (empty-sosofo))
 | |
| 	      (make element gi: "TABLE"
 | |
| 		    attributes: (list
 | |
| 				 (list "CLASS" (gi))
 | |
| 				 (list "BORDER" "1")
 | |
| 				 (list "WIDTH" ($table-width$)))
 | |
| 		    (make element gi: "TR"
 | |
| 			  (make element gi: "TD"
 | |
| 				attributes: (list
 | |
| 					     (list "ALIGN" "CENTER"))
 | |
| 				(make element gi: "B"
 | |
| 				      (if id
 | |
| 					  (make element gi: "A"
 | |
| 						attributes: (list (list "NAME" id))
 | |
| 						(empty-sosofo))
 | |
| 					  (empty-sosofo))
 | |
| 				      adm-title)))
 | |
| 		    (make element gi: "TR"
 | |
| 			  (make element gi: "TD"
 | |
| 				attributes: (list
 | |
| 					     (list "ALIGN" "LEFT"))
 | |
| 				(process-children))))))))
 | |
| 
 | |
| (element caution ($peril$))
 | |
| (element warning ($peril$))
 | |
| (element (caution title) (empty-sosofo))
 | |
| (element (warning title) (empty-sosofo))
 |