I am a bit confused about using macros like with-html. Let's say if I want to produce an html with my post parameter value in it. Just saying (:p (post-parameter "foo")) won't put the value in the <p> tag. On the other hand saying (:p (format t "~a" (post-parameter "foo"))) or (:p (esc (post-parameter "foo"))) will produce the expected result. Same goes with (:p (esc (with-output-to-string (s) (format s "~a" (post-parameter "foo")))))
My question is what's common about the latter examples that makes a printing possible? Does it mean that all printing within with-html should happen to *standard-output* and the esc function redirects it to it?
What package should I look at to have a better understanding of it?
Thank you! Andrew
On Thu Feb 08, 2007 at 10:40:38AM -0500, Andrei Stebakov wrote:
I am a bit confused about using macros like with-html. Let's say if I want to produce an html with my post parameter value in it. Just saying (:p (post-parameter "foo")) won't put the value in the <p> tag. On the other hand saying (:p (format t "~a" (post-parameter "foo"))) or (:p (esc (post-parameter "foo"))) will produce the expected result. Same goes with (:p (esc (with-output-to-string (s) (format s "~a" (post-parameter "foo")))))
Try this:
(with-html (:p (str (post-parameter "foo"))))
--Jeff
On Thu, 8 Feb 2007 10:40:38 -0500, "Andrei Stebakov" lispercat@gmail.com wrote:
[This should really go to cl-who-devel, see Cc.]
I am a bit confused about using macros like with-html. Let's say if I want to produce an html with my post parameter value in it. Just saying (:p (post-parameter "foo")) won't put the value in the <p> tag.
See STR or ESC:
http://weitz.de/cl-who/#syntax
On the other hand saying (:p (format t "~a" (post-parameter "foo"))) or (:p (esc (post-parameter "foo"))) will produce the expected result. Same goes with (:p (esc (with-output-to-string (s) (format s "~a" (post-parameter "foo")))))
The first form works only by accident, the second form is OK, the third one is a bit overdone.
My question is what's common about the latter examples that makes a printing possible? Does it mean that all printing within with-html should happen to *standard-output* and the esc function redirects it to it?
Look at the first parameter of WITH-HTML-OUTPUT[-TO-STRING].
What package should I look at to have a better understanding of it?
Package? What do packages have to do with your question?
http://www.lispworks.com/documentation/HyperSpec/Body/11_.htm
Have you read the documentation?
Cheers, Edi.