[bknr-cvs] r2242 - in branches/bos/bknr/src: . utils web

bknr at bknr.net bknr at bknr.net
Sat Oct 20 17:22:25 UTC 2007


Author: hhubner
Date: 2007-10-20 13:22:25 -0400 (Sat, 20 Oct 2007)
New Revision: 2242

Modified:
   branches/bos/bknr/src/packages.lisp
   branches/bos/bknr/src/utils/utils.lisp
   branches/bos/bknr/src/web/templates.lisp
Log:
Template expander needed for new BOS version.


Modified: branches/bos/bknr/src/packages.lisp
===================================================================
--- branches/bos/bknr/src/packages.lisp	2007-10-20 09:40:58 UTC (rev 2241)
+++ branches/bos/bknr/src/packages.lisp	2007-10-20 17:22:25 UTC (rev 2242)
@@ -268,6 +268,7 @@
 
 	   ;; templates
 	   #:expand-template
+	   #:expand-variables
 	   #:get-template-var
 	   #:with-template-vars
 	   #:emit-template-node

Modified: branches/bos/bknr/src/utils/utils.lisp
===================================================================
--- branches/bos/bknr/src/utils/utils.lisp	2007-10-20 09:40:58 UTC (rev 2241)
+++ branches/bos/bknr/src/utils/utils.lisp	2007-10-20 17:22:25 UTC (rev 2242)
@@ -514,7 +514,7 @@
   (with-open-file (s pathname :element-type '(unsigned-byte 8))
     (let ((result
            (make-array (file-length s) :element-type '(unsigned-byte 8))))
-      (read-sequence result s )
+      (read-sequence result s)
       result)))
 
 (defun class-subclasses (class)

Modified: branches/bos/bknr/src/web/templates.lisp
===================================================================
--- branches/bos/bknr/src/web/templates.lisp	2007-10-20 09:40:58 UTC (rev 2241)
+++ branches/bos/bknr/src/web/templates.lisp	2007-10-20 17:22:25 UTC (rev 2242)
@@ -85,7 +85,7 @@
                            ,(intern (symbol-name var) :keyword)))))
     , at body))
 
-(defun expand-variables (string)
+(defun expand-variables (string lookup-variable)
   (if (find #\$ string)
       (regex-replace-all
        #?r"\$\(([\*_-\w]+)\)" string
@@ -94,7 +94,7 @@
 	   (let* ((var (make-keyword-from-string
 			(subseq target-string (aref reg-starts 0)
 				(aref reg-ends 0))))
-		  (val (get-template-var var)))
+		  (val (funcall lookup-variable var)))
 	     (cond
 	       ((stringp val) val)
 	       ((null val) "")
@@ -128,7 +128,7 @@
 
 (defun emit-template-node (node)
   (if (stringp node)
-      (sax:characters *html-sink* (expand-variables node))
+      (sax:characters *html-sink* (expand-variables node #'get-template-var))
       (let* ((name (node-name node))
              (ns (node-ns node))
              (children (node-children node))
@@ -140,12 +140,12 @@
            (apply (find-tag-function *template-expander* name ns)
 		  (append (loop for (key name) in (remove-if #'(lambda (attr) (scan "^xmlns" (car attr))) attrs)
 				collect (make-keyword-from-string key)
-				collect (expand-variables name))
+				collect (expand-variables name #'get-template-var))
 			  (when children
 			    (list :children children)))))
           (t
            (sax:start-element *html-sink* nil nil name
-                              (xmls-attributes-to-sax #'expand-variables attrs))
+                              (xmls-attributes-to-sax (lambda (var) (expand-variables var #'get-template-var)) attrs))
            (dolist (child children)
              (emit-template-node child))
            (sax:end-element *html-sink* nil nil name))))))




More information about the Bknr-cvs mailing list