我已经开始编写clojure了,我对
Enlive印象非常深刻.我真正喜欢它的一件事是Enlive使用仅限html的模板.所以模板是一个带有html的文件,以.html结尾,就像那样简单.它被解析成一个dom树,然后那个dom树被clojure / enlive,组合,动态等操纵.在html模板文件中没有语法,一个非常干净的分离.
通过javascript完成的类似系统的另一个例子是PURE.
在PHP中有类似的东西吗?
或者,一般来说,任何方式做html-only模板?
解决方法
很高兴听到Enlive.几年来我一直在考虑这个概念并且共同攻击
something in PHP,它们共享一些原则:模板是纯HTML,你可以通过使用CSS或XPath将内容寻址到文档中的特定节点来“填充”它们.
$t = new Template('yourfile.html'); $t->fill('#nav',$someMarkup); $t->fill('#header',$otherMarkup);
我还尝试将一些内容分成几个条款,将内容分成各种各样的“样式表”……好吧,“样式表”是错误的单词.我称之为内容寻址表(该项目称为CAST,用于内容寻址式样式). CAS看起来像你可能期望的那样:
.col #foot { content: 'foot'; } #content { content: file_get_contents('pangolin.txt'); }
假定内容的值是PHP表达式.设置PHP的一些规定也适用于选择器.
在tarball中运行一下cssfill.PHP脚本(最好的调用可能是./cssfill.PHP pangolin.cas pangolin.html,你可能要在cssfill.PHP中改变你的PHP解释器的路径),看看在输出中,与输入文件进行比较.
如果这篇文章对你的想法产生了任何热情,请随时告诉我.我一直在想这是不是一个疯狂的想法,或者它是否有一个地方,如果它有,我很乐意把它变成一个精心发布的开源项目,而不是随机扔到互联网上的tarball.