On 2/16/06, <b class="gmail_sendername">Jens Axel Søgaard</b> &lt;<a href="mailto:jensaxel@soegaard.net">jensaxel@soegaard.net</a>&gt; wrote:<div><span class="gmail_quote"></span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Thanks for the explanation. Your web-cells might do the trick.<br><br>I am trying to make a small library that uses site-wide defaults.<br>E.g in &quot;view.scm&quot; I'd like to write<br><br>&nbsp;&nbsp; (require &quot;html.scm&quot;)
<br><br>&nbsp;&nbsp; ;;;<br>&nbsp;&nbsp; ;;; SITE WIDE DEFAULTS<br>&nbsp;&nbsp; ;;;<br><br>&nbsp;&nbsp; (current-page-title&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;Foo 2.0&quot;)<br>&nbsp;&nbsp; (current-page-header&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'(h1 ((class &quot;page_header&quot;)) &quot;Foo 2.0!&quot;))<br>&nbsp;&nbsp; (current-page-style-sheet &quot;
<a href="http://localhost/stylesheet.css">http://localhost/stylesheet.css</a>&quot;)<br><br>&nbsp;&nbsp; (define (html-a-page)<br>&nbsp;&nbsp;&nbsp;&nbsp; (html-page #:body&nbsp;&nbsp;&quot;Foo bar baz&quot;))<br><br>where html-page is defined &quot;html.scm&quot;.
</blockquote><div><br>
For a given site, I typically wrap the 'start' procedure in the site-wide defaults:<br>
<br>
(define (start ir)<br>
&nbsp;(parameterize ([current-page-title &quot;Foo 2.0&quot;])<br>
&nbsp; (html-a-page)))<br>
<br>
Parameters will work in the web-server provided you are only using
'parameterize', but not if you are using the parameter-procedure set
method.<br>
<br>
I think this approach is most what you want, as cells do something different, and your `persistent parameters' seem very kludgy<br>
<br>
Jay<br>
&nbsp;</div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">At the same time, I want the ability to override the defaults<br>for a single request in &quot;
control.scm&quot; with, say,<br><br>&nbsp;&nbsp; (parameterize ([current-page-title &quot;Foo 3.0&quot;])<br>&nbsp;&nbsp;&nbsp;&nbsp; (html-a-page))<br><br>Apart from the losing the settings when a new thread is started,<br>it works nicely.<br><br><br>
Here is html.scm:<br><br>(module html mzscheme<br>&nbsp;&nbsp; (provide (all-defined))<br><br>&nbsp;&nbsp; (require (lib &quot;kw.ss&quot;))<br><br>&nbsp;&nbsp; (define current-page-title&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(make-parameter &quot;A title&quot;))<br>&nbsp;&nbsp; (define current-page-header&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (make-parameter '(h1 &quot;A Header&quot;)))
<br>&nbsp;&nbsp; (define current-page-body&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (make-parameter &quot;A body&quot;))<br>&nbsp;&nbsp; (define current-page-content-type<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(make-parameter &quot;text/html;charset=UTF-8&quot;))<br>&nbsp;&nbsp; (define current-page-style-sheet&nbsp;&nbsp;(make-parameter &quot;&quot;))
<br><br>&nbsp;&nbsp; ; html-page<br>&nbsp;&nbsp; ;&nbsp;&nbsp; Puts all the pieces together to make a complete html page.<br>&nbsp;&nbsp; ;&nbsp;&nbsp; Defaults are taken from site-wide parameters<br>&nbsp;&nbsp; (define/kw<br>&nbsp;&nbsp;&nbsp;&nbsp; (html-page #:key<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(title&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
(current-page-title))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(title-atts&nbsp;&nbsp;&nbsp;&nbsp;#f)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(header&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(current-page-header))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(head-atts&nbsp;&nbsp;&nbsp;&nbsp;
#f)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(body&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(current-page-body))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(body-atts&nbsp;&nbsp;&nbsp;&nbsp;
#f)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(style-sheet&nbsp;&nbsp;
(current-page-style-sheet))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(content-type&nbsp;&nbsp;(current-page-content-type)))<br>&nbsp;&nbsp;&nbsp;&nbsp; (let ([title-atts (if title-atts (list title-atts) '())]<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
[head-atts&nbsp;&nbsp;(if head-atts&nbsp;&nbsp;(list
head-atts)&nbsp;&nbsp;'())]<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
[body-atts&nbsp;&nbsp;(if body-atts&nbsp;&nbsp;(list
body-atts)&nbsp;&nbsp;'())])<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; `(html (head&nbsp;&nbsp;(title ,@title-atts ,title)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
; external stylesheet<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
(link ((rel &quot;stylesheet&quot;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(type
&quot;text/css&quot;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(href
,style-sheet)))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
(meta ((http-equiv &quot;Content-Type&quot;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(content
,content-type)))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
,@head-atts)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(body ,@body-atts<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,header<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,body))))<br></blockquote></div><br clear="all"><br>-- <br>Jay McCarthy &lt;<a href="mailto:jay@cs.brown.edu">jay@cs.brown.edu
</a>&gt;<br><a href="http://jay.makeoutcity.com/">http://jay.makeoutcity.com/</a>