我已经开始用 clojure 进行编码,给我留下了深刻的印象Enlive http://github.com/cgrand/enlive/blob/master/README.textile。我真正喜欢的一件事是 Enlive 使用纯 html 模板。所以模板就是一个包含 html 的文件,以 .html 结尾,就这么简单。它被解析为 dom 树,然后该 dom 树由 clojure/enlive 操作、组合、动态化等。html 模板文件中没有语法,完美干净的分离。
通过 javascript 完成的类似系统的另一个示例是PURE http://beebole.com/pure/.
php中有类似的东西吗?
或者,一般来说,有什么方法可以进行纯 html 模板化?
很高兴听到 Enlive。我已经思考这个概念好几年了,并且一起进行了黑客攻击PHP 中的一些东西 http://weston.canncentral.org/web_lab/CAST/CAST.tgz它们共享一些原则:模板是纯 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');
}
假定 content 的值是 PHP 表达式。还有一些设置 PHP 的规定也适用于选择器。
跑一跑cssfill.php
tarball 中的脚本(最好的调用可能是./cssfill.php pangolin.cas pangolin.html
,您可能需要更改 cssfill.php 中 php 解释器的路径),查看输出,与输入文件进行比较。
如果这篇文章激起了您对这个想法的热情,请随时告诉我。我一直想知道这是否是一个疯狂的想法,或者它是否有一席之地,如果确实如此,我很乐意将其变成一个经过深思熟虑发布的开源项目,而不是随机扔到互联网上的 tarball。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)