[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Subject: DOCBOOK-APPS: Bug fix submission for contrib/imagemap/imagemap.dsl
This fix to imagemap.dsl fixes the existing warning for when an area's linkend does not exist. line added to make-html-area: (if (node-list-empty? target) (process-children) This prevents the stylesheet from trying to create an invalid <area> element. Norm - could you please add this fix to the next release of the DocBook stylesheets? -karl ======================================= <!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>
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Powered by eList eXpress LLC