Hi Jeff,
Don't forget that Velocity and Freemarker are also good candidates for
server side templating and with clojure's java integration a snap to
use, e.g. ...
(defn genSyntaxHiLight
[] (let [fmc (freeMarkerConfig)
tmpl (. fmc getTemplate "clojure.ftl")
map (clj-ns/get-tree)
]
(. tmpl process (convertMap map) *out*)
))
the clojure.ftl is a free marker template. I think that with clojure's
maps implementing Map that the (convertMap) I had required previously
is no longer necessary.
bd
On Fri, 05 Dec 2008 11:22:04 +0100
Jeff Rose <[EMAIL PROTECTED]> wrote:
>
> Rich Hickey wrote:
> >
> >
> > On Dec 3, 1:04 pm, Jeff Rose <[EMAIL PROTECTED]> wrote:
> >> I've just pushed a template library for Clojure up onto github for
> >> public use. You can find it here:
> >>
> >> http://github.com/rosejn/clj-libs/tree/master
> >>
> >> This library is based loosely on erb from Ruby, which is the only
> >> other template system I've used, and it allows you to insert
> >> Clojure scriptlets inside a text document. Following is a short
> >> example of how it currently works. Any thoughts, suggestions or
> >> feedback are welcome. I plan on making it easier to instantiate
> >> pages by passing a hash, or maybe a sequence of hashes, which will
> >> be successively bound for you. I'll probably add some
> >> configuration options for handling whitespace and trimming
> >> newlines too. Any other ideas or patches welcome.
> >>
> >
> > Neat! One thing I recommend is that you consider taking a functional
> > approach to templates - it would be much more in line with Clojure.
> > Two examples of a more functional approach are:
> >
> > StringTemplate
> > http://www.stringtemplate.org/
> >
> > Google XML Pages
> > http://code.google.com/p/gxp/
> >
> > Rich
>
> Ok, I can see the benefits of a functional style template. Do you
> think the important aspect of this is whether you use a push or a
> pull model for populating forms with data? In a functional style you
> would pass all the necessary values to a function, which would then
> populate the form and return a result. I don't like the idea of
> having to use XML or some mini-language to do variable replacement,
> if statements, and iteration over collections though. If I make the
> template library a push model where you send it the values, but you
> just use Clojure code to determine how they get used, does that still
> fit the bill?
>
> As for the javascript template engines, I think that kind of solution
> might be great for a websites, but a template engine like this is
> useful for many applications besides filling in html pages, so I'd
> still like to have a generic template mechanism from within Clojure.
> From the above, I think StringTemplate has some interesting ideas.
> I'm going to look into supporting recursive template application and
> include mechanisms.
>
> -Jeff
>
> >
--
None are more hopelessly enslaved than those who falsely believe they
are free — Goethe
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Clojure" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---