网页设计师有哪些好的模板引擎?作为程序员,我绝对有自己的偏好。但是网页设计师似乎对事物有不同的思考方式,因此可能更喜欢不同的系统。
所以:
- 网页设计师:您更喜欢使用什么模板引擎?
- 程序员:你使用过哪些模板引擎让与网页设计师的合作变得容易?
网页设计师有哪些好的模板引擎?作为程序员,我绝对有自己的偏好。但是网页设计师似乎对事物有不同的思考方式,因此可能更喜欢不同的系统。
所以:
Django 的模板引擎相当不错。它非常坚固,同时不会踩到太多脚趾。如果您正在使用 Python,我会推荐它。我不知道如何将它与 Django 分开,但我怀疑这将是非常困难的,因为 Django 是非常模块化的。
编辑: 显然,独立使用 Django 模板引擎的迷你指南已经摆在我面前,谢谢insin。
在回答同一个问题的重复时,我得到了很好的选票。
我的回答是:
金贾2 .
整合得很好。可以被沙盒化,因此您不必完全信任您的模板作者。(马可不能)。
它也非常快,并且可以将模板编译为字节码并对其进行缓存,如下面的演示所示:
>>> import jinja2
>>> print jinja2.Environment().compile('{% for row in data %}{{ row.name | upper }}{% endfor %}', raw=True)
from __future__ import division
from jinja2.runtime import LoopContext, Context, TemplateReference, Macro, Markup, TemplateRuntimeError, missing, concat, escape, markup_join, unicode_join
name = None
def root(context, environment=environment):
l_data = context.resolve('data')
t_1 = environment.filters['upper']
if 0: yield None
for l_row in l_data:
if 0: yield None
yield unicode(t_1(environment.getattr(l_row, 'name')))
blocks = {}
debug_info = '1=9'
这段代码是由 Jinja2 动态生成的。当然,编译器会进一步优化它(例如删除if 0: yield None
)
看看马可。
以下是我与网页设计师打交道的方式。
${...}
。if 语句的使用需要协商,因为模型是页面的一个版本,并且对于某些材料的条件呈现通常有一些解释。
我个人发现Cheetah 模板对设计师非常友好。需要一些时间的是模板子类化的想法,而这在一开始是很难得到的。但是设计师创建了一个完整的模板,复制了他的代码......然后你可以去清理一下。
添加到@Jaime Soriano 的评论中,Genshi是Trac 0.11 后使用的模板引擎。它可以用作通用模板解决方案,但侧重于 HTML/XHTML。它具有自动转义以减少 XSS 漏洞。
Mi 投票给Clearsilver,它是 Trac 0.11 之前使用的模板引擎,它也用于 Google Groups 或 Orkut 等页面。此模板引擎的主要优点是速度非常快且与语言无关。
我扮演过这两个角色,而且我更喜欢程序员的模板语言。然而,我为一些从事“繁重”支持和数据库编程的平面设计师做自由职业者,我可以告诉你,我在 XML 模板语言(SimpleTAL、Genshi 等)方面遇到了最好的运气。
当我试图对网页设计师友好时,我会寻找可以加载到 Dreamweaver 中并查看结果的东西。这允许我提供模板中的所有钩子,并让设计人员对其进行调整,而不必担心破坏我已经编写的内容。它允许我们共享代码并在我们都对格式感到满意的情况下更好地合作。
如果没有所见即所得编辑器的设计器编码,我认为您的选择较少,您可以选择自己喜欢的。