mirror of
				https://github.com/smarty-php/smarty.git
				synced 2025-11-03 22:01:36 +01:00 
			
		
		
		
	
		
			
	
	
		
			282 lines
		
	
	
		
			7.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			282 lines
		
	
	
		
			7.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								;; $Id$
							 | 
						||
| 
								 | 
							
								;;
							 | 
						||
| 
								 | 
							
								;; This file is part of the Modular DocBook Stylesheet distribution.
							 | 
						||
| 
								 | 
							
								;; See ../README or http://www.berkshire.net/~norm/dsssl/
							 | 
						||
| 
								 | 
							
								;;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element highlights ($block-container$))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element revhistory ($book-revhistory$))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element blockquote
							 | 
						||
| 
								 | 
							
								  (let ((id     (element-id))
							 | 
						||
| 
								 | 
							
									(attrib (select-elements (children (current-node))
							 | 
						||
| 
								 | 
							
												 (normalize "attribution")))
							 | 
						||
| 
								 | 
							
									(paras  (node-list-filter-by-not-gi
							 | 
						||
| 
								 | 
							
										 (children (current-node))
							 | 
						||
| 
								 | 
							
										 (list (normalize "attribution")))))
							 | 
						||
| 
								 | 
							
								    (make sequence
							 | 
						||
| 
								 | 
							
								      (if id
							 | 
						||
| 
								 | 
							
									  (make element gi: "A"
							 | 
						||
| 
								 | 
							
										attributes: (list (list "NAME" id))
							 | 
						||
| 
								 | 
							
										(empty-sosofo))
							 | 
						||
| 
								 | 
							
									  (empty-sosofo))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      (if (node-list-empty? attrib) 
							 | 
						||
| 
								 | 
							
									  (make element gi: "BLOCKQUOTE"
							 | 
						||
| 
								 | 
							
										attributes: '(("CLASS" "BLOCKQUOTE"))
							 | 
						||
| 
								 | 
							
										(process-children))
							 | 
						||
| 
								 | 
							
									  (make element gi: "TABLE"
							 | 
						||
| 
								 | 
							
										attributes: '(("BORDER" "0")
							 | 
						||
| 
								 | 
							
											      ("WIDTH" "100%")
							 | 
						||
| 
								 | 
							
											      ("CELLSPACING" "0")
							 | 
						||
| 
								 | 
							
											      ("CELLPADDING" "0")
							 | 
						||
| 
								 | 
							
											      ("CLASS" "BLOCKQUOTE"))
							 | 
						||
| 
								 | 
							
										(make element gi: "TR"
							 | 
						||
| 
								 | 
							
										      (make element gi: "TD"
							 | 
						||
| 
								 | 
							
											    attributes: '(("WIDTH" "10%")
							 | 
						||
| 
								 | 
							
													  ("VALIGN" "TOP"))
							 | 
						||
| 
								 | 
							
											    (make entity-ref name: "nbsp"))
							 | 
						||
| 
								 | 
							
										      (make element gi: "TD"
							 | 
						||
| 
								 | 
							
											    attributes: '(("WIDTH" "80%")
							 | 
						||
| 
								 | 
							
													  ("VALIGN" "TOP"))
							 | 
						||
| 
								 | 
							
											    (process-node-list paras))
							 | 
						||
| 
								 | 
							
										      (make element gi: "TD"
							 | 
						||
| 
								 | 
							
											    attributes: '(("WIDTH" "10%")
							 | 
						||
| 
								 | 
							
													  ("VALIGN" "TOP"))
							 | 
						||
| 
								 | 
							
											    (make entity-ref name: "nbsp")))
							 | 
						||
| 
								 | 
							
										(make element gi: "TR"
							 | 
						||
| 
								 | 
							
										      (make element gi: "TD"
							 | 
						||
| 
								 | 
							
											    attributes: '(("COLSPAN" "2")
							 | 
						||
| 
								 | 
							
													  ("ALIGN" "RIGHT")
							 | 
						||
| 
								 | 
							
													  ("VALIGN" "TOP"))
							 | 
						||
| 
								 | 
							
											    (make sequence
							 | 
						||
| 
								 | 
							
											      (literal "--")
							 | 
						||
| 
								 | 
							
											      (process-node-list attrib)))
							 | 
						||
| 
								 | 
							
										      (make element gi: "TD"
							 | 
						||
| 
								 | 
							
											    attributes: '(("WIDTH" "10%"))
							 | 
						||
| 
								 | 
							
											    (make entity-ref name: "nbsp"))))))))
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
								(element epigraph
							 | 
						||
| 
								 | 
							
								  (let* ((attrib       (select-elements (children (current-node))
							 | 
						||
| 
								 | 
							
													(normalize "attribution")))
							 | 
						||
| 
								 | 
							
									 (paras        (node-list-filter-by-not-gi
							 | 
						||
| 
								 | 
							
											(children (current-node))
							 | 
						||
| 
								 | 
							
											(list (normalize "attribution")))))
							 | 
						||
| 
								 | 
							
								  (make element gi: "TABLE"
							 | 
						||
| 
								 | 
							
									attributes: '(("BORDER" "0")
							 | 
						||
| 
								 | 
							
										      ("WIDTH" "100%")
							 | 
						||
| 
								 | 
							
										      ("CELLSPACING" "0")
							 | 
						||
| 
								 | 
							
										      ("CELLPADDING" "0")
							 | 
						||
| 
								 | 
							
										      ("CLASS" "EPIGRAPH"))
							 | 
						||
| 
								 | 
							
									(make element gi: "TR"
							 | 
						||
| 
								 | 
							
									      (make element gi: "TD"
							 | 
						||
| 
								 | 
							
										    attributes: '(("WIDTH" "45%"))
							 | 
						||
| 
								 | 
							
										    (make entity-ref name: "nbsp"))
							 | 
						||
| 
								 | 
							
									      (make element gi: "TD"
							 | 
						||
| 
								 | 
							
										    attributes: '(("WIDTH" "45%")
							 | 
						||
| 
								 | 
							
												  ("ALIGN" "LEFT")
							 | 
						||
| 
								 | 
							
												  ("VALIGN" "TOP"))
							 | 
						||
| 
								 | 
							
										    (make element gi: "I"
							 | 
						||
| 
								 | 
							
											  (process-node-list paras))))
							 | 
						||
| 
								 | 
							
									(if (node-list-empty? attrib)
							 | 
						||
| 
								 | 
							
									    (empty-sosofo)
							 | 
						||
| 
								 | 
							
									    (make element gi: "TR"
							 | 
						||
| 
								 | 
							
										  (make element gi: "TD"
							 | 
						||
| 
								 | 
							
											attributes: '(("WIDTH" "45%"))
							 | 
						||
| 
								 | 
							
											(make entity-ref name: "nbsp"))
							 | 
						||
| 
								 | 
							
										  (make element gi: "TD"
							 | 
						||
| 
								 | 
							
											attributes: '(("WIDTH" "45%")
							 | 
						||
| 
								 | 
							
												      ("ALIGN" "RIGHT")
							 | 
						||
| 
								 | 
							
												      ("VALIGN" "TOP"))
							 | 
						||
| 
								 | 
							
											(make element gi: "I"
							 | 
						||
| 
								 | 
							
											      (process-node-list attrib))))))))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element attribution ($charseq$))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element (epigraph para)
							 | 
						||
| 
								 | 
							
								  (make element gi: "P"
							 | 
						||
| 
								 | 
							
									(make element gi: "I"
							 | 
						||
| 
								 | 
							
									      (process-children-trim))))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element para ($paragraph$))
							 | 
						||
| 
								 | 
							
								(element simpara ($paragraph$))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element formalpara
							 | 
						||
| 
								 | 
							
								  (make element gi: "DIV"
							 | 
						||
| 
								 | 
							
									attributes: (list
							 | 
						||
| 
								 | 
							
										     (list "CLASS" (gi)))
							 | 
						||
| 
								 | 
							
									(make element gi: "P"
							 | 
						||
| 
								 | 
							
									      (if (attribute-string (normalize "id"))
							 | 
						||
| 
								 | 
							
										  (make element gi: "A"
							 | 
						||
| 
								 | 
							
											attributes: (list
							 | 
						||
| 
								 | 
							
												     (list "NAME"
							 | 
						||
| 
								 | 
							
													   (attribute-string
							 | 
						||
| 
								 | 
							
													    (normalize "id"))))
							 | 
						||
| 
								 | 
							
											(empty-sosofo))
							 | 
						||
| 
								 | 
							
										  (empty-sosofo))
							 | 
						||
| 
								 | 
							
									      (process-children))))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element (formalpara title) ($runinhead$))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element (formalpara para)
							 | 
						||
| 
								 | 
							
								  (process-children))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element sidebar 
							 | 
						||
| 
								 | 
							
								  (make element gi: "TABLE"
							 | 
						||
| 
								 | 
							
									attributes: (list
							 | 
						||
| 
								 | 
							
										     (list "CLASS" (gi))
							 | 
						||
| 
								 | 
							
										     (list "BORDER" "1")
							 | 
						||
| 
								 | 
							
										     (list "CELLPADDING" "5"))
							 | 
						||
| 
								 | 
							
									(make element gi: "TR"
							 | 
						||
| 
								 | 
							
									      (make element gi: "TD"
							 | 
						||
| 
								 | 
							
										    ($semiformal-object$)))))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element (sidebar title)
							 | 
						||
| 
								 | 
							
								  (empty-sosofo))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element abstract 
							 | 
						||
| 
								 | 
							
								  (make element gi: "BLOCKQUOTE"
							 | 
						||
| 
								 | 
							
									attributes: '(("CLASS" "ABSTRACT"))
							 | 
						||
| 
								 | 
							
									($semiformal-object$)))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element (abstract title) (empty-sosofo))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element authorblurb ($block-container$))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element ackno ($paragraph$))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(define ($inline-object$)
							 | 
						||
| 
								 | 
							
								  (process-children))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(define ($informal-object$ #!optional (rule-before? #f) (rule-after? #f))
							 | 
						||
| 
								 | 
							
								  (let ((id (element-id)))
							 | 
						||
| 
								 | 
							
								    (make element gi: "DIV"
							 | 
						||
| 
								 | 
							
									  attributes: (list
							 | 
						||
| 
								 | 
							
										       (list "CLASS" (gi)))
							 | 
						||
| 
								 | 
							
									  (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))
							 | 
						||
| 
								 | 
							
									  
							 | 
						||
| 
								 | 
							
									  (if rule-before?
							 | 
						||
| 
								 | 
							
									      (make empty-element gi: "HR")
							 | 
						||
| 
								 | 
							
									      (empty-sosofo))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									  (process-children)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									  (if rule-after?
							 | 
						||
| 
								 | 
							
									      (make empty-element gi: "HR")
							 | 
						||
| 
								 | 
							
									      (empty-sosofo))
							 | 
						||
| 
								 | 
							
									  
							 | 
						||
| 
								 | 
							
									  (if %spacing-paras%
							 | 
						||
| 
								 | 
							
									      (make element gi: "P" (empty-sosofo))
							 | 
						||
| 
								 | 
							
									      (empty-sosofo)))))
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								(define (object-title-after #!optional (node (current-node))) 
							 | 
						||
| 
								 | 
							
								  (if (member (gi node) ($object-titles-after$))
							 | 
						||
| 
								 | 
							
								      #t
							 | 
						||
| 
								 | 
							
								      #f))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(define (named-formal-objects)
							 | 
						||
| 
								 | 
							
								  (list (normalize "figure")
							 | 
						||
| 
								 | 
							
									(normalize "table")
							 | 
						||
| 
								 | 
							
									(normalize "example")
							 | 
						||
| 
								 | 
							
									(normalize "equation")))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(define ($formal-object$ #!optional (rule-before? #f) (rule-after? #f))
							 | 
						||
| 
								 | 
							
								  (let* ((nsep  (gentext-label-title-sep (gi)))
							 | 
						||
| 
								 | 
							
									 (id    (element-id))
							 | 
						||
| 
								 | 
							
									 (title-inline-sosofo 
							 | 
						||
| 
								 | 
							
									        (make sequence
							 | 
						||
| 
								 | 
							
										  (if (member (gi) (named-formal-objects))
							 | 
						||
| 
								 | 
							
										      (make sequence
							 | 
						||
| 
								 | 
							
											(literal (gentext-element-name (gi)))
							 | 
						||
| 
								 | 
							
											(if (string=? (element-label) "")
							 | 
						||
| 
								 | 
							
											    (literal nsep)
							 | 
						||
| 
								 | 
							
											    (literal " " (element-label) nsep)))
							 | 
						||
| 
								 | 
							
										      (empty-sosofo))
							 | 
						||
| 
								 | 
							
										  (with-mode title-mode
							 | 
						||
| 
								 | 
							
										    (process-node-list 
							 | 
						||
| 
								 | 
							
										     (select-elements (children (current-node))
							 | 
						||
| 
								 | 
							
												      (normalize "title"))))))
							 | 
						||
| 
								 | 
							
									 (title-sosofo (make element gi: "P"
							 | 
						||
| 
								 | 
							
											     (make element gi: "B"
							 | 
						||
| 
								 | 
							
												   title-inline-sosofo)))
							 | 
						||
| 
								 | 
							
									 (object-sosofo (process-children)))
							 | 
						||
| 
								 | 
							
								    (make element gi: "DIV" 
							 | 
						||
| 
								 | 
							
									  attributes: (list
							 | 
						||
| 
								 | 
							
										       (list "CLASS" (gi)))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									  (if rule-before?
							 | 
						||
| 
								 | 
							
									      (make empty-element gi: "HR")
							 | 
						||
| 
								 | 
							
									      (empty-sosofo))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									  (if id
							 | 
						||
| 
								 | 
							
									      (make element gi: "A"
							 | 
						||
| 
								 | 
							
										    attributes: (list 
							 | 
						||
| 
								 | 
							
												 (list "NAME" id))
							 | 
						||
| 
								 | 
							
										    (empty-sosofo))
							 | 
						||
| 
								 | 
							
									      (empty-sosofo))
							 | 
						||
| 
								 | 
							
									  
							 | 
						||
| 
								 | 
							
									  (if (object-title-after)
							 | 
						||
| 
								 | 
							
									      (make sequence
							 | 
						||
| 
								 | 
							
										object-sosofo
							 | 
						||
| 
								 | 
							
										title-sosofo)
							 | 
						||
| 
								 | 
							
									      (make sequence
							 | 
						||
| 
								 | 
							
										title-sosofo
							 | 
						||
| 
								 | 
							
										object-sosofo))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									  (if rule-after?
							 | 
						||
| 
								 | 
							
									      (make empty-element gi: "HR")
							 | 
						||
| 
								 | 
							
									      (empty-sosofo)))))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(define ($semiformal-object$)
							 | 
						||
| 
								 | 
							
								  ;; semiformal means optional title...
							 | 
						||
| 
								 | 
							
								  (if (node-list-empty? (select-elements (children (current-node)) 
							 | 
						||
| 
								 | 
							
													 (normalize "title")))
							 | 
						||
| 
								 | 
							
								      ($informal-object$)
							 | 
						||
| 
								 | 
							
								      ($formal-object$)))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element example 
							 | 
						||
| 
								 | 
							
								  ($formal-object$ %example-rules% %example-rules%))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element (example title) (empty-sosofo)) ; don't show caption below example
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element informalexample
							 | 
						||
| 
								 | 
							
								  ($informal-object$ %informalexample-rules% %informalexample-rules%))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element (figure title) (empty-sosofo)) ; don't show caption below figure
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element figure 
							 | 
						||
| 
								 | 
							
								  ($formal-object$ %figure-rules% %figure-rules%))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element informaltable
							 | 
						||
| 
								 | 
							
								  ($informal-object$ %informaltable-rules% %informaltable-rules%))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element table
							 | 
						||
| 
								 | 
							
								  ($formal-object$ %table-rules% %table-rules%))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element (table title) (empty-sosofo))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element comment
							 | 
						||
| 
								 | 
							
								  (if %show-comments%
							 | 
						||
| 
								 | 
							
								      (make element gi: "P"
							 | 
						||
| 
								 | 
							
									    attributes: '(("CLASS" "COMMENT"))
							 | 
						||
| 
								 | 
							
									    (process-children))
							 | 
						||
| 
								 | 
							
								      (empty-sosofo)))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								;; In DocBook V4.0 comment became remark
							 | 
						||
| 
								 | 
							
								(element remark
							 | 
						||
| 
								 | 
							
								  (if %show-comments%
							 | 
						||
| 
								 | 
							
								      (make element gi: "P"
							 | 
						||
| 
								 | 
							
									    attributes: '(("CLASS" "COMMENT"))
							 | 
						||
| 
								 | 
							
									    (process-children))
							 | 
						||
| 
								 | 
							
								      (empty-sosofo)))
							 | 
						||
| 
								 | 
							
								
							 |