Made the ps-html macros generate self-closing tags.
authorVladimir Sedach <vsedach@gmail.com>
Thu, 22 Jan 2009 05:14:15 +0000 (22:14 -0700)
committerVladimir Sedach <vsedach@gmail.com>
Thu, 22 Jan 2009 05:14:15 +0000 (22:14 -0700)
src/js-dom-symbol-exports.lisp
src/lib/ps-html.lisp
src/package.lisp

index 4850b14..cf2b50d 100644 (file)
@@ -49,6 +49,7 @@
    #:elements
    #:.get-elements-by-class-name
    #:.get-element-by-id
+   #:onselectstart
    ))
 
 (defpackage "PS-PROTOTYPE-LIB-SYMBOLS"
index 84ca2db..55eb02e 100644 (file)
@@ -1,5 +1,7 @@
 (in-package :parenscript)
 
+(defvar *self-closing-tags-p* t)
+
 (defun concat-constant-strings (str-list)
   (reverse (reduce (lambda (optimized-list next-obj)
                      (if (and (or (numberp next-obj) (stringp next-obj)) (stringp (car optimized-list)))
                                (push (format nil " ~A=\"" attr-name) r)
                                (push attr-val r)
                                (push "\"" r))))
-                      (push ">" r)
-                      (map nil #'process-form (cdr form))
-                      (push (format nil "</~A>" (caar form)) r))
+                      (if (or (cdr form) (not *self-closing-tags-p*))
+                          (progn (push ">" r)
+                                 (map nil #'process-form (cdr form))
+                                 (push (format nil "</~A>" (caar form)) r))
+                          (push "/>" r)))
                      (t (push form r)))))
       (map nil #'process-form forms)
       (concat-constant-strings (reverse r)))))
                                             (push "\"" r)
                                             (process-attributes (cddr attrs))))))
                           (process-attributes (cdr form))
-                          (push ">" r)
-                          (when content
-                            (map nil #'process-form content))))
-                      (push (format nil "</~A>" (car form)) r))
+                          (if (or content (not *self-closing-tags-p*))
+                              (progn (push ">" r)
+                                     (when content (map nil #'process-form content))
+                                     (push (format nil "</~A>" (car form)) r))
+                              (push "/>" r)))))
                      (t (push form r)))))
       (map nil #'process-form forms)
       (concat-constant-strings (reverse r)))))
index 179a715..983c877 100644 (file)
       ;; v v v STUFF WE SHOULD PROBABLY MOVE TO OTHER LIBS v v v
 
       ;; html generator for javascript
+      #:*self-closing-tags-p*
       #:ps-html
       #:who-ps-html