mirror of
				https://github.com/smarty-php/smarty.git
				synced 2025-11-04 06:11:37 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			282 lines
		
	
	
		
			7.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			282 lines
		
	
	
		
			7.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
;; $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)))
 | 
						|
 |