Clojure网络框架适用于设计师/前端开发人员。

9

我发现所有流行的Clojure Web框架都使用hiccup来生成HTML。与其他从模板中解析语法的框架相比,我发现hiccup很难让前端设计人员进行调整。

是否有一个Clojure Web框架不需要前端开发者学习LISP?


无论你使用哪个框架,你仍然需要学习LISP。 - yazzapps.com
5个回答

22

看看Enlive。它将使您的设计师可以在纯HTML中工作。


1
没错。Enlive 用于前端界面设计,hiccup 用于后端动态生成。 - mike3996

14

意见与观点

正如其他答案所述,Enlive 可以让你使用纯HTML模板,而Hiccup 则利用Clojure数据结构生成HTML。

但是,我认为我们都会同意,HTML应该是语义化的,并描述页面的结构,而布局和外观应该由CSS和JavaScript来处理。至少在我的经验中,前端设计师不应该负责大幅度改变页面的结构,而应通过CSS和JavaScript负责样式和位置。

在处理比一组静态HTML页面更复杂的应用程序时,如果前端设计师感到需要更改页面的结构,那么这应该是与创建它的开发人员共同讨论的。基于这个想法,开发人员应选择一个允许他/她最有效率的模板方案或HTML生成方法。以上是我的个人看法。


你的意思是你更喜欢 Hiccup 而不是 Enlive 吗? - John Wang
3
我的大多数Clojure网络应用都是单独的小项目。 我几乎总是使用Hiccup,因为它相对较容易记住如何在离开之后再次使用它,而Enlive则需要我在一个文件中编写标记,使用Clojure在另一个文件中操纵它,并使用类似于CSS(但不是CSS)的自定义函数查询语言来执行该操作。Enlive是一种强大的工具,但当我原型化Clojure网络应用时,使用Hiccup会对我个人完成任务产生更少的思维负荷。 你的情况可能不同。 - semperos
现在我明白它们的味道差异了。非常感谢您的澄清。 - John Wang

4

Hiccup通常是示例中的默认选项,但我所知道的所有Web框架都可以使用任何模板库。

正如dnolen提到的那样,Enlive非常受欢迎(https://github.com/cgrand/enlive)。Enlive完全分离了代码和HTML,如果你有其他人负责设计,使用起来非常好。

除了Hiccup和Enlive之外,还有一个较少人知的Fleet(https://github.com/Flamefork/fleet),它更接近流行的Ruby/PHP解决方案。


1
三年后: 你也可以看看Caribou http://let-caribou.in/,它是一个使用传统HTML语法进行模板设计的新的Clojure框架。 你可以先观看这个视频教程:http://www.youtube.com/watch?v=dPUQ0GUvSt0。 你会发现,即使不用Clojure编写数据模型,只有控制器(模板和模型之间的链接)需要用Lisp方式来交互。 祝好运!

1

还有Selmer:

一种快速的、受Django启发的Clojure模板系统。

因此更适合大型应用程序。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接