Blame olink/olink.dsl

Packit e20b97
Packit e20b97
Packit e20b97
]>
Packit e20b97
Packit e20b97
<style-sheet>
Packit e20b97
<style-specification id="olink" use="docbook">
Packit e20b97
<style-specification-body>
Packit e20b97
Packit e20b97
;; $Id: olink.dsl,v 1.1 2001/04/02 21:40:28 nwalsh Exp $
Packit e20b97
Packit e20b97
(define %doctype-pubid% "-//Norman Walsh//DTD DocBook OLink Summary V1.1//EN")
Packit e20b97
Packit e20b97
(root 
Packit e20b97
 (make sequence
Packit e20b97
   (make document-type
Packit e20b97
     name: "div"
Packit e20b97
     public-id: %doctype-pubid%)
Packit e20b97
   (with-mode olink-mode (process-children))))
Packit e20b97
Packit e20b97
(define (attrs #!optional (nd (current-node)))
Packit e20b97
  (let* ((id   (attribute-string (normalize "id") nd))
Packit e20b97
	 (arch (inherited-attribute-string (normalize "arch") nd))
Packit e20b97
	 (conformance (inherited-attribute-string 
Packit e20b97
		       (normalize "conformance") nd))
Packit e20b97
	 (os        (inherited-attribute-string (normalize "os") nd))
Packit e20b97
	 (revision  (inherited-attribute-string (normalize "revision") nd))
Packit e20b97
	 (userlevel (inherited-attribute-string (normalize "userlevel") nd))
Packit e20b97
	 (vendor    (inherited-attribute-string (normalize "vendor") nd))
Packit e20b97
	 (label     (element-label nd #t))
Packit e20b97
	 (gielem    (case-fold-down (gi nd)))
Packit e20b97
	 (giname    (gentext-element-name (gi nd)))
Packit e20b97
	 (href      (href-to nd)))
Packit e20b97
    (append
Packit e20b97
     (list (list "type" gielem))
Packit e20b97
     (list (list "name" giname))
Packit e20b97
     (list (list "href" href))
Packit e20b97
     (if id (list (list "id" id)) '())
Packit e20b97
     (if (equal? label "") '() (list (list "label" label)))
Packit e20b97
     (if arch (list (list "arch" arch)) '())
Packit e20b97
     (if conformance (list (list "conformance" conformance)) '())
Packit e20b97
     (if os (list (list "os" os)) '())
Packit e20b97
     (if revision (list (list "revision" revision)) '())
Packit e20b97
     (if userlevel (list (list "userlevel" userlevel)) '())
Packit e20b97
     (if vendor (list (list "vendor" vendor)) '()))))
Packit e20b97
Packit e20b97
(define (div #!optional (nd (current-node)))
Packit e20b97
  (let* ((attributes (attrs nd))
Packit e20b97
	 (xreflabel  (attribute-string (normalize "xreflabel") nd))
Packit e20b97
	 (title      (if xreflabel
Packit e20b97
			 xreflabel
Packit e20b97
			 (element-title nd))))
Packit e20b97
    (make element gi: "div"
Packit e20b97
	  attributes: attributes
Packit e20b97
	  (make element gi: "ttl"
Packit e20b97
		(if (string? title)
Packit e20b97
		    (literal title)
Packit e20b97
		    (with-mode olink-title-mode
Packit e20b97
		      (process-node-list title))))
Packit e20b97
	  (process-children))))
Packit e20b97
Packit e20b97
(define (obj #!optional (nd (current-node)))
Packit e20b97
  (let* ((attributes (attrs nd))
Packit e20b97
	 (title (element-title nd)))
Packit e20b97
    (make sequence
Packit e20b97
      (make element gi: "obj"
Packit e20b97
	    attributes: attributes
Packit e20b97
	    (make element gi: "ttl"
Packit e20b97
		  (if (string? title)
Packit e20b97
		      (literal title)
Packit e20b97
		      (with-mode olink-title-mode
Packit e20b97
			(process-node-list title))))
Packit e20b97
	    (process-children)))))
Packit e20b97
Packit e20b97
(mode olink-mode
Packit e20b97
  (default
Packit e20b97
    ;; process only the element children
Packit e20b97
    (let ((elem (let loop ((nl (children (current-node))) 
Packit e20b97
			   (elem (empty-node-list)))
Packit e20b97
		  (if (node-list-empty? nl)
Packit e20b97
		      elem
Packit e20b97
		      (if (equal? (node-property 'class-name 
Packit e20b97
						 (node-list-first nl)) 
Packit e20b97
				  'element)
Packit e20b97
			  (loop (node-list-rest nl)
Packit e20b97
				(node-list elem (node-list-first nl)))
Packit e20b97
			  (loop (node-list-rest nl) elem))))))
Packit e20b97
      (if (node-list-empty? elem)
Packit e20b97
	  (empty-sosofo)
Packit e20b97
	  (process-node-list elem))))
Packit e20b97
Packit e20b97
  (element set (div))
Packit e20b97
  (element book (div))
Packit e20b97
  (element preface (div))
Packit e20b97
  (element chapter (div))
Packit e20b97
  (element appendix (div))
Packit e20b97
  (element part (div))
Packit e20b97
  (element reference (div))
Packit e20b97
  (element article (div))
Packit e20b97
  (element refentry (div))
Packit e20b97
Packit e20b97
  (element section (div))
Packit e20b97
  (element sect1 (div))
Packit e20b97
  (element sect2 (div))
Packit e20b97
  (element sect3 (div))
Packit e20b97
  (element sect4 (div))
Packit e20b97
  (element sect5 (div))
Packit e20b97
Packit e20b97
  (element refsect1 (div))
Packit e20b97
  (element refsect2 (div))
Packit e20b97
  (element refsect3 (div))
Packit e20b97
Packit e20b97
  (element figure (obj))
Packit e20b97
  (element example (obj))
Packit e20b97
  (element table (obj))
Packit e20b97
  (element equation 
Packit e20b97
    (if (node-list-empty? (select-elements (children (current-node))
Packit e20b97
					   (normalize "title")))
Packit e20b97
	(empty-sosofo)
Packit e20b97
	(obj)))
Packit e20b97
)
Packit e20b97
Packit e20b97
(mode olink-title-mode
Packit e20b97
  (default (process-children))
Packit e20b97
Packit e20b97
  (element computeroutput
Packit e20b97
    (make element gi: "tt"
Packit e20b97
	  (process-children)))
Packit e20b97
  
Packit e20b97
  (element emphasis 
Packit e20b97
    (make element gi: "it"
Packit e20b97
	  (process-children)))
Packit e20b97
  
Packit e20b97
  (element filename 
Packit e20b97
    (make element gi: "it"
Packit e20b97
	  (process-children)))
Packit e20b97
  
Packit e20b97
  (element function 
Packit e20b97
    (make element gi: "it"
Packit e20b97
	  (process-children)))
Packit e20b97
  
Packit e20b97
  (element literal 
Packit e20b97
    (make element gi: "tt"
Packit e20b97
	  (process-children)))
Packit e20b97
  
Packit e20b97
  (element markup 
Packit e20b97
    (make element gi: "tt"
Packit e20b97
	  (process-children)))
Packit e20b97
  
Packit e20b97
  (element quote
Packit e20b97
    (make element gi: "qt"
Packit e20b97
	  (process-children)))
Packit e20b97
  
Packit e20b97
  (element replaceable 
Packit e20b97
    (make element gi: "it"
Packit e20b97
	  (process-children)))
Packit e20b97
  
Packit e20b97
  (element subscript
Packit e20b97
    (make element gi: "sub"
Packit e20b97
	  (process-children)))
Packit e20b97
  
Packit e20b97
  (element superscript 
Packit e20b97
    (make element gi: "sup"
Packit e20b97
	  (process-children)))
Packit e20b97
  
Packit e20b97
  (element userinput 
Packit e20b97
    (make element gi: "tt"
Packit e20b97
	  (process-children)))
Packit e20b97
)
Packit e20b97
Packit e20b97
</style-specification-body>
Packit e20b97
</style-specification>
Packit e20b97
Packit e20b97
<external-specification id="docbook" document="docbook.dsl">
Packit e20b97
Packit e20b97
</style-sheet>