hi Jay:<br>    Hah, yeah, the last sentence you&#39;ve put for those patient and serious  readers :)<br>    Yeah, right, I  find it&#39;s more frustrated to translate than rewrite it in my own way.  So far, I&#39;ve generally made trac fullblog work with basic features. It&#39;s surprising that the texts are much smaller than python ones ,particularly the templates .  No doubt , PLT is a powerful choice to do web programming. Thank you !<br>
<br>Nevo<br><br><div class="gmail_quote">2009/12/29 Jay McCarthy <span dir="ltr">&lt;<a href="mailto:jay.mccarthy@gmail.com">jay.mccarthy@gmail.com</a>&gt;</span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
You could do that with read and eval, but that doesn&#39;t mean it would<br>
be a good idea. =) This is a similar thing to what I discuss in the<br>
FAQ:<br>
<br>
<a href="http://docs.plt-scheme.org/web-server/faq.html#%28part._.How_do_.I_use_templates__dynamically__%29" target="_blank">http://docs.plt-scheme.org/web-server/faq.html#(part._.How_do_.I_use_templates__dynamically__)</a><br>

<br>
IMHO, you shouldn&#39;t transliterate Genshi but should rewrite. I would<br>
be surprised if there was an interesting reason they are using XPath,<br>
it seems like all they had available; in contrast you have abstraction<br>
power in the form of function, modules, units, macros, etc.<br>
<font color="#888888"><br>
Jay<br>
</font><div><div></div><div class="h5"><br>
On Mon, Dec 28, 2009 at 11:17 PM, Nevo &lt;<a href="mailto:sakur.deagod@gmail.com">sakur.deagod@gmail.com</a>&gt; wrote:<br>
&gt; hi Jay:<br>
&gt;    Thanks for your kind suggestion and explanation. I myself have a happy<br>
&gt; time to play with PLT template system just ,you know, still need more<br>
&gt; practice to get into it. The difference between Plt template and Genshi<br>
&gt; template is not my concern. Actually I&#39;m trying to translate the Trac<br>
&gt; template (particular fullblog plugin) to PLT web, and seeing those XPath<br>
&gt; related syntax everywhere in Genshi template files , so just wondering if a<br>
&gt; similar syntax would be supported in PLT template.  Now I have more sense<br>
&gt; (compared to my previous usage) about how to deal with PLT template , it&#39;s<br>
&gt; handy to treat PLT template as a Scheme program with simple syntax as<br>
&gt; pointed out by you, compared with that traditional template engine like<br>
&gt; Genshi (read, parse, expand, generate). That&#39;s great!<br>
&gt;    Btw, sorry , I have another (maybe non sense) question that, for example,<br>
&gt; I now have a template file piece like follows:<br>
&gt;  &lt;XHTML&gt;<br>
&gt;     .....<br>
&gt;    @select-node[&quot;content/title/title1/text()&quot;]<br>
&gt;     .....<br>
&gt;   &lt;/XHTML&gt;<br>
&gt;<br>
&gt;   and &quot;select-node&quot; is defined in another scheme file:<br>
&gt;   (define (select-node xpath-textual)<br>
&gt;     (let ((q1 (sxpath xpath-textual)))<br>
&gt;       (q1 current-xml-template)))<br>
&gt;<br>
&gt;   and &quot;current-xml-template&quot; is a SXML document representation of :<br>
&gt;   &lt;content&gt;<br>
&gt;     ...<br>
&gt;     &lt;title&gt;<br>
&gt;       &lt;title1&gt; @get-page-1-title[]&lt;/title&gt;<br>
&gt;       ....<br>
&gt;     &lt;/title&gt;<br>
&gt;     ...<br>
&gt;   &lt;/content&gt;<br>
&gt;<br>
&gt;   As you probably see , the @select-node will produce just<br>
&gt; &quot;@get-page-1-title[]&quot; , so is it possible to let template compiler to<br>
&gt; recompile the produced stream second pass so that @get-page-1-title[] will<br>
&gt; also be got expanded ?  I knew this question may sound no sense and not a<br>
&gt; problem at all ( I could simply call @get-page-1-title in template instead<br>
&gt; of bothering SXPATH at all), just a silly question though.<br>
&gt;<br>
&gt; Nevo<br>
&gt;<br>
&gt; 2009/12/29 Jay McCarthy &lt;<a href="mailto:jay.mccarthy@gmail.com">jay.mccarthy@gmail.com</a>&gt;<br>
&gt;&gt;<br>
&gt;&gt; I think the difference you&#39;re getting at is that because the PLT<br>
&gt;&gt; template system is more powerful, there is less that you can do with<br>
&gt;&gt; it externally. The PLT templates are not necessarily XML, so it<br>
&gt;&gt; doesn&#39;t make sense to parse them and analyze them as if they were. PLT<br>
&gt;&gt; templates are simple Scheme programs that when run produce the text<br>
&gt;&gt; you want, but they have a convenient syntax (thanks to Eli primarily)<br>
&gt;&gt; for primarily text documents.<br>
&gt;&gt;<br>
&gt;&gt; If you wanted you could enforce upon yourself the restriction that<br>
&gt;&gt; your templates were actually XML and parse them, but I&#39;m still not<br>
&gt;&gt; sure what you feel that that (or Genshi) would do for you.<br>
&gt;&gt;<br>
&gt;&gt; Jay<br>
&gt;&gt;<br>
&gt;&gt; On Sat, Dec 26, 2009 at 10:43 PM, Nevo &lt;<a href="mailto:sakur.deagod@gmail.com">sakur.deagod@gmail.com</a>&gt; wrote:<br>
&gt;&gt; &gt; hi,<br>
&gt;&gt; &gt;   Sorry, forgive me not able to clarify more on this topic . Here&#39;s the<br>
&gt;&gt; &gt; piece of code from the Genshi template file :<br>
&gt;&gt; &gt;   &lt;py:match path=&quot;body&quot; once=&quot;true&quot; buffer=&quot;false&quot;&gt;&lt;body&gt;<br>
&gt;&gt; &gt;     ${select(&#39;*|text()&#39;)}<br>
&gt;&gt; &gt;     &lt;/body&gt; &lt;/py:match&gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;   The above code is just instructing the template engine to *select* the<br>
&gt;&gt; &gt; text content of node &quot;body&quot; from the XHTML streams.  That&#39;s the one I<br>
&gt;&gt; &gt; was<br>
&gt;&gt; &gt; asking actually.  There&#39;s a difference between Genshi and PLT scheme web<br>
&gt;&gt; &gt; template from my point of view , the former separates the template<br>
&gt;&gt; &gt; macros<br>
&gt;&gt; &gt; and the real content streams ,while the latter  combines the template<br>
&gt;&gt; &gt; macros<br>
&gt;&gt; &gt; (S-expressions) with the content. As suggested by Jay, I could use<br>
&gt;&gt; &gt; SXML/SXPATH library to parse the XHTML content and select those nodes<br>
&gt;&gt; &gt; which<br>
&gt;&gt; &gt; I&#39;m interested in. Yeah, this is possible , but I havn&#39;t used that yet,<br>
&gt;&gt; &gt; on<br>
&gt;&gt; &gt; a quick read of its tutorial<br>
&gt;&gt; &gt; (<a href="http://modis.ispras.ru/Lizorkin/sxml-tutorial.html" target="_blank">http://modis.ispras.ru/Lizorkin/sxml-tutorial.html</a>) , I probably need<br>
&gt;&gt; &gt; to<br>
&gt;&gt; &gt; obtain a SXML representation of a document which means the template file<br>
&gt;&gt; &gt; should be expanded first (using @include-template) and then parse it<br>
&gt;&gt; &gt; using<br>
&gt;&gt; &gt; SXML parser into a SXML document before I can use SXPath on it, am I<br>
&gt;&gt; &gt; right ?<br>
&gt;&gt; &gt; Or is there a way to do it in template file itself ? Thanks.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Nevo<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Actually, I think you misunderstood.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Tell us what you want and it may be pretty easy to do.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; On Sat, Dec 26, 2009 at 11:28 PM, Nevo &lt;<a href="mailto:sakur.deagod@gmail.com">sakur.deagod@gmail.com</a>&gt; wrote:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; hi Todd:<br>
&gt;&gt; &gt;    Yeah... your words sound like a style of education to me but useful<br>
&gt;&gt; &gt; (really appreciate) . Of course I will take the stabs at writing pieces<br>
&gt;&gt; &gt; of<br>
&gt;&gt; &gt; prototype and ask here for review. As currently I&#39;m still on the way to<br>
&gt;&gt; &gt; fully understand and practice with the powerful PLT scheme web framework<br>
&gt;&gt; &gt; by<br>
&gt;&gt; &gt; means of building up my blog service , the quick follow up in this topic<br>
&gt;&gt; &gt; is<br>
&gt;&gt; &gt; just a curious wonder and hope not offending the underlying laws  of<br>
&gt;&gt; &gt; this<br>
&gt;&gt; &gt; mailing list. I really want to contribute to this great community and be<br>
&gt;&gt; &gt; able to help others in exchange to the huge helps from here, but as you<br>
&gt;&gt; &gt; know<br>
&gt;&gt; &gt; my numb brain just tells me you should dig in it before you give any<br>
&gt;&gt; &gt; output<br>
&gt;&gt; &gt; ,as emphasized by you.  So thanks anyway , I&#39;ll see what I would help in<br>
&gt;&gt; &gt; the<br>
&gt;&gt; &gt; future.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Nevo<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; On Sat, Dec 26, 2009 at 10:12 PM, Nevo &lt;<a href="mailto:sakur.deagod@gmail.com">sakur.deagod@gmail.com</a>&gt; wrote:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Yes, it&#39;s  pretty useful and enjoyable to do web programming in plt<br>
&gt;&gt; &gt; scheme.<br>
&gt;&gt; &gt; But I just wonder any plan to continue to extend the powerness of Plt<br>
&gt;&gt; &gt; scheme<br>
&gt;&gt; &gt; web framework ? Like provide XPath select support in current HTML<br>
&gt;&gt; &gt; template<br>
&gt;&gt; &gt; system which I&#39;ve been using  in  Genshi ( a python template component<br>
&gt;&gt; &gt; used<br>
&gt;&gt; &gt; in Trac (<a href="http://trac.edgewall.org" target="_blank">trac.edgewall.org</a>) ? thanks .<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Nevo<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Assuming it works the way most other development in PLT has seemed to<br>
&gt;&gt; &gt; work, here&#39;s all you need to do:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Step 1. Find a student who wants a Master&#39;s or Ph.D. in Computer<br>
&gt;&gt; &gt; Science.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Step 2. Interest him/her in what you want.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Step 3. Get him/her to interest a member of the PLT group as an advisor.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Step 4. Wait for the goodies. :-)<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; But seriously, I&#39;m working with some of my (high school) students on a<br>
&gt;&gt; &gt; couple of PLT web apps and we&#39;re seeing things we wish we had and<br>
&gt;&gt; &gt; taking stabs at putting them together. If you can give examples of the<br>
&gt;&gt; &gt; kind of functionality you want and take stabs at writing parts of the<br>
&gt;&gt; &gt; code, this mailing list is incredibly good about helping you along.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; As someone who&#39;s gotten huge amounts of help on this list in exchange<br>
&gt;&gt; &gt; for a mere pittance of very basic help for the few people even more<br>
&gt;&gt; &gt; clueless than himself, my suggestion is dig in, start writing, ask for<br>
&gt;&gt; &gt; help, and before you know it, you&#39;ll have what you always wanted.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Todd<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; --<br>
&gt;&gt; Jay McCarthy &lt;<a href="mailto:jay@cs.byu.edu">jay@cs.byu.edu</a>&gt;<br>
&gt;&gt; Assistant Professor / Brigham Young University<br>
&gt;&gt; <a href="http://teammccarthy.org/jay" target="_blank">http://teammccarthy.org/jay</a><br>
&gt;&gt;<br>
&gt;&gt; &quot;The glory of God is Intelligence&quot; - D&amp;C 93<br>
&gt;<br>
&gt;<br>
<br>
<br>
<br>
</div></div>--<br>
<div><div></div><div class="h5">Jay McCarthy &lt;<a href="mailto:jay@cs.byu.edu">jay@cs.byu.edu</a>&gt;<br>
Assistant Professor / Brigham Young University<br>
<a href="http://teammccarthy.org/jay" target="_blank">http://teammccarthy.org/jay</a><br>
<br>
&quot;The glory of God is Intelligence&quot; - D&amp;C 93<br>
</div></div></blockquote></div><br>