[cl-who-devel] Runtime HTML generation
Ron Garret
ron at flownet.com
Sat Jan 23 23:11:00 UTC 2010
Ah. I think I get it now. Thanks!
rg
On Jan 23, 2010, at 12:56 PM, J. K. Cunningham wrote:
> On Sat, 2010-01-23 at 12:20 -0800, Ron Garret wrote:
>> No, that won't work. with-html-output-to-string is a macro, not a function. It does its work at macroexpansion time, not run-time. (You might want to re-read my original message.)
>>
>
> This works - I just put an example up on a website to try it - code is
> there:
>
> http://jandmworks.com/test.html
>
> (defun make-table (l)
> (with-html-output (*standard-output*)
> (:table :border 1 (mapcar (lambda (row) (htm
> (:tr (mapcar (lambda (cell)
> (htm (:td (str cell)))) row)))) l))))
>
> The list I'm passing it could have come from anywhere - a file, a posted response, etc.
>
> Jeff
>
>
>
>> rg
>>
>> On Jan 23, 2010, at 11:45 AM, Joubert Nel wrote:
>>
>>> Hi Ron,
>>>
>>> You can use the with-html-output-to-string function to generate HTML at run-time.
>>> Using it in a macro, you can then do data-driven HTML construction using mapcar, loop, etc.
>>>
>>> Joubert
>>>
>>>
>>> On Jan 23, 2010, at 12:51 PM, Ron Garret wrote:
>>>
>>>> Is there a Right Way to use CL-WHO to generate HTML at run time? For example, suppose I want to do something like this:
>>>>
>>>> (defun make-table (l)
>>>> `(:table ,@(mapcar (lambda (row) `(:tr ,@(mapcar (lambda (cell) `(:td (str ,cell)))
>>>> row)))
>>>> l)))
>>>>
>>>> (cl-who:with-html-output-to-string (*standard-output* nil :prologue t)
>>>> ... (make-table l) ...)
>>>>
>>>> This doesn't work because CL-WHO normally does all its work at compile time, but L is not known until run time. I can hack this using a macro that calls EVAL, or by hacking the CL-WHO code to add another specially handled symbol, but before diving into that rabbit hole I thought I'd ask if there was already a way of doing this that I've overlooked.
>>>>
>>>> Thanks,
>>>> rg
>>>>
>>>>
>>>> _______________________________________________
>>>> cl-who-devel site list
>>>> cl-who-devel at common-lisp.net
>>>> http://common-lisp.net/mailman/listinfo/cl-who-devel
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> cl-who-devel site list
>>> cl-who-devel at common-lisp.net
>>> http://common-lisp.net/mailman/listinfo/cl-who-devel
>>
>>
>> _______________________________________________
>> cl-who-devel site list
>> cl-who-devel at common-lisp.net
>> http://common-lisp.net/mailman/listinfo/cl-who-devel
>
>
> _______________________________________________
> cl-who-devel site list
> cl-who-devel at common-lisp.net
> http://common-lisp.net/mailman/listinfo/cl-who-devel
More information about the Cl-who-devel
mailing list