什么是网页设计师的好模板引擎?我绝对喜欢我喜欢与程序员合作的东西.但网页设计师似乎有不同的思考方式,因此可能更喜欢不同的系统.
所以:
网页设计师:您更喜欢使用什么模板引擎?
程序员:你使用过哪些模板引擎,这使得与网页设计师合作变得容易?
akdom.. 6
Django的模板引擎相当不错.它非常强大,而不是踩太多脚趾.如果您正在使用Python,我会推荐它.我不知道如何将它与Django分开,但我怀疑看到Django非常模块化会非常困难.
编辑: 显然,独立使用Django的模板引擎的迷你指南已经在我面前,感谢insin.
Django的模板引擎相当不错.它非常强大,而不是踩太多脚趾.如果您正在使用Python,我会推荐它.我不知道如何将它与Django分开,但我怀疑看到Django非常模块化会非常困难.
编辑: 显然,独立使用Django的模板引擎的迷你指南已经在我面前,感谢insin.
在回答同一个问题时,我有很好的选票.
我的回答是:
Jinja2.
尼斯的语法,良好的定制的可能性.
整合得很好.可以沙盒,因此您不必完全信任您的模板作者.(Mako不能).
它也非常快,可以将模板编译为字节码并对其进行缓存,如下面的演示:
>>> 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
)
看看Mako.
这是我如何应对网页设计师.
让他们模拟页面.在HTML中.
使用HTML作为模板的基础,用替换替换模拟的内容${...}
.
折叠循环以处理重复.
使用if语句需要协商,因为模型是页面的一个版本,并且通常对某些材料的条件表示有一些解释.