php 是否有纯 html 模板系统?

2024-02-04

我已经开始用 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.phptarball 中的脚本(最好的调用可能是./cssfill.php pangolin.cas pangolin.html,您可能需要更改 cssfill.php 中 php 解释器的路径),查看输出,与输入文件进行比较。

如果这篇文章激起了您对这个想法的热情,请随时告诉我。我一直想知道这是否是一个疯狂的想法,或者它是否有一席之地,如果确实如此,我很乐意将其变成一个经过深思熟虑发布的开源项目,而不是随机扔到互联网上的 tarball。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

php 是否有纯 html 模板系统? 的相关文章

随机推荐

  • 在 R 中使用 for 循环绘制许多直方图

    我有一个 csv 文件 其中包含如下数据 RI Na Mg Al Si K Ca Ba Fe Type 1 1 51793 12 79 3 50 1 12 73 03 0 64 8 77 0 00 0 00 BWF 2 1 51643 12
  • IIS 上的 WordPress 永久链接?

    我在 Windows 7 IIS 上使用 WordPress 进行开发 我正在 WordPress 中上传博客文章的图像 该图像在网站上显示良好 但一旦我启用永久链接 图像就不再起作用 并且以后上传的任何图像都会返回错误 HTTP Erro
  • Python urllib2 URLError HTTP 状态代码。

    我想在引发 URLError 异常时获取 HTTP 状态代码 我尝试过这个但没有帮助 except URLError e logger warning It seems like the server is down Code str e
  • 如何使用web-api上传文件

    客户端代码
  • libgdx- pixmap:我可以以某种方式改变线的宽度吗?

    我想画一条线 然后生成一个纹理 使用 libgdx 我发现使用像素图从圆形 矩形和线条创建纹理非常简单 但我没有找到如何设置绘制形状的线宽 是否可以设置像素图的线宽 这是我到目前为止得到的代码 我尝试画两个实心圆并用一条线将它们连接起来 P
  • 如何选择列名并将其用作 Python 中变量名的输入?

    原问题 我正在编写一个 while 循环来循环某些列 在这个 while 循环中 我想创建一个变量 其名称部分由它循环的列名组成 x 2 length len grouped class columns while x
  • Cocoa:NSApp beginSheet 设置应用程序委托?

    我正在尝试在我的应用程序中显示自定义工作表 但我认为我做错了什么 虽然一切seems为了工作得很好 我有一个相当奇怪的副作用 花了几个小时才弄清楚 事实证明 每次我在应用程序中显示工作表时 应用程序委托都会设置为工作表的实例 因此我的控制器
  • 在 CMake 中设置 Clang 库的路径

    我从 git 构建 llvm 并希望在项目中使用这些库 尤其是 libclang makefiles 是通过 CMake 生成的 对于 LLVM 部分 我找到了设置LLVM DIR重新路由 llvm 库的路径 但对于 Clang 我找不到这
  • R中的ggtern等高线图[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有这个数据文件 https www dropbox com s xk8zyu9f0rw77eu N90 p 0 350 eta 90 W
  • 如何使正则表达式的一部分可选?

    假设我有以下正则表达式 它与末尾带有分号的字符串相匹配 它将匹配除空字符串之外的任何字符串 如下所示 我尝试使用这个 但这没有用 我的问题是 我怎样才能使 的一部分 可选 因此用户不必在字符串中放置任何字符 为了使 可选 你可以这样做 被称
  • Eclipse 调试过滤不需要的包

    我已经使用 Eclipse 进行开发 2 年了 但是在调试过程中我仍然很难理解这个过滤器概念 我通常在远程端口模式下调试 大多数时候 My Eclipse 会捕获不需要的包中的断点 异常 包通常来自 Spring Java ThreadPo
  • 如何从 XML 文件中的特定节点获取值?

    从这个 XML 代码可以看出
  • 用于记录每一行代码的 C++ 宏

    在我最近与经理的一次讨论中 他提到他的一位前客户使用 C 宏来记录每行代码的信息 他们所要做的就是在开始运行之前启用环境变量 当然 环境变量仅在测试台中启用 日志还提到了所使用的变量及其相应的值 例如 对于该行 a a b 日志会显示如下内
  • Swift inputAccessoryView 覆盖错误

    我的外观遇到了奇怪的错误inputAccessoryView 在转换过程中 它看起来像这样 转换后 它应该出现 我像这样覆盖该属性 override var inputAccessoryView UIView get if composeV
  • 发生“Microsoft.CSharp.RuntimeBinder.RuntimeBinderException”类型的第一次机会异常

    当在 Newtonsoft JObjects 上使用动态时 我得到了很多Microsoft CSharp RuntimeBinder RuntimeBinderException在我的调试输出中 虽然异常肯定被捕获在 Microsoft C
  • CMakeLists.txt 用于 C++ 项目中的第三方 C 文件

    我的 C 项目doggo has a doggo external 第三方代码的目录 目前它包含gtest https github com google googletest和 CMakeLists txt Google gtest fo
  • make:匹配多个扩展名的模式规则

    我有多个扩展的重复模式规则 例如 cpp and cc OBJ DIR o SRC DIR cpp CXX CPPFLAGS I o c OBJ DIR o SRC DIR cc CXX CPPFLAGS I o c 有没有一种方法可以让一
  • spring-cloud-dataflow 是否支持定义为任务的调度应用程序?

    我一直在考虑在 spring cloud dataflow 中使用使用 spring cloud task 构建的项目 查看示例项目和文档后 发现任务似乎是通过仪表板或 shell 手动启动的 spring cloud dataflow 是
  • 检测 youtube iframe 自动播放失败

    iOS https webkit org blog 6784 new video policies for ios Android 只允许在用户交互的回调中播放视频 Chrome 66 推出了自动播放政策 https developers
  • php 是否有纯 html 模板系统?

    我已经开始用 clojure 进行编码 给我留下了深刻的印象Enlive http github com cgrand enlive blob master README textile 我真正喜欢的一件事是 Enlive 使用纯 html