All of the popular Clojure web frameworks I am seeing use hiccup to generate HTML. I find hiccup is hard to have a front end design person adjust to, compared to other frameworks that parse the syntax out of templates.
Is there a clojure web framework that doesn't require the front end developer to learn LISP?
Check out Enlive. It will allow your designer to work in pure HTML.
As other answers have already stated, Enlive will let you use pure HTML templates, while Hiccup leverages Clojure data structures to generate HTML.
But, as I think we'd all agree, HTML should be semantic and describe the structure of the page, while layout and look-and-feel should be left to CSS and JavaScript. At least out of my experience, front-end designers should not be responsible for drastically altering the structure of a page, but rather responsible for styling and placement through CSS and JavaScript.
Whenever working on an application more complex than a collection of static HTML pages, if a front-end designer feels the need to change a page's structure, that should be a joint conversation with the developer who put it together. With this in mind, the developer should choose a templating scheme or HTML generation method that allows him/her to be most productive. My two cents.
Hiccup is mostly the default in examples, but all webframeworks I know of can work with any templating library.
Like dnolen mentioned there is Enlive which is quite popular (https://github.com/cgrand/enlive). Enlive has 100% separation of code and html. Very nice to use if you have other people doing the design.
Other then Hiccup and Enlive there is the lesser known fleet (https://github.com/Flamefork/fleet) which is closer to popular Ruby/PHP solutions.
Three years later:
You can also have a look to Caribou http://let-caribou.in/ . It is a new Clojure framework that uses good old HTML syntax for templating.
You could start by watch this screencast: http://www.youtube.com/watch?v=dPUQ0GUvSt0
You'll see that you don't need to code in clojure for updating your data models either. Only the controllers (the links between templates and models) would require you to talk the lispy way...
Good luck!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With