Blob Blame History Raw
<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [
<!ENTITY docbook.dsl PUBLIC "-//Norman Walsh//DOCUMENT DocBook HTML Stylesheet//EN" CDATA DSSSL>
]>

<style-sheet>
<style-specification id="docbook-plain" use="docbook">
<style-specification-body>

(element (graphicco areaspec)
  (make element gi: "MAP"
	attributes: (list (list "NAME" (element-id)))
	(let loop ((nl (select-elements (descendants (current-node)) 
					(normalize "area"))))
	  (if (node-list-empty? nl)
	      (empty-sosofo)
	      (make sequence
		(make-html-area (node-list-first nl))
		(loop (node-list-rest nl)))))))

(define ($graphic$ fileref 
		   #!optional (format #f) (alt #f) (align #f))
  (let* ((csim?  (equal? (gi (parent (current-node)))
			 (normalize "graphicco")))
	 (ismap  (if csim?
		     '(("ISMAP" "ISMAP"))
		     '()))
	 (usemap (if csim?
		     (let* ((graphicco (parent (current-node)))
			    (areaspec  (select-elements 
					(children graphicco)
					(normalize "areaspec"))))
		       (list (list "USEMAP"
				   (string-append "#"
						  (attribute-string 
						   (normalize "id")
						   areaspec)))))
		     '()))
	 (border (if csim? '(("BORDER" "0")) '()))
	 (img-attr  (append
		     (list     (list "SRC" (graphic-file fileref)))
		     (if align (list (list "ALIGN" align)) '())
		     (if image-library (graphic-attrs fileref alt) '())
		     ismap
		     usemap
		     border)))
    (make empty-element gi: "IMG"
	  attributes: img-attr)))

(define (make-html-area area)
  (let* ((shape  (attribute-string (normalize "otherunits") area))
	 (coords (attribute-string (normalize "coords") area))
	 (idrefs (attribute-string (normalize "linkends") area))
	 (idlist (if idrefs 
		     (split idrefs)
		     '()))
	 (target (if idrefs
		     (element-with-id (car idlist))
		     (empty-node-list)))
	 (href   (attribute-string (normalize "label") area)))
    (if (node-list-empty? target)
	(process-children)
	(if idrefs
	    (make empty-element gi: "AREA"
		  attributes: (list (list "SHAPE" shape)
				    (list "COORDS" coords)
				    (list "HREF" (href-to target))))
	    (make empty-element gi: "AREA"
		  attributes: (list (list "SHAPE" shape)
				    (list "COORDS" coords)
				    (list "HREF" href)))))))

</style-specification-body>
</style-specification>

<external-specification id="docbook" document="docbook.dsl">

</style-sheet>