Webデザイナーに適したテンプレートエンジンは何ですか?プログラマーとして何を使いたいかについては、間違いなく自分の好みがあります。しかし、Webデザイナーは物事について異なる考え方をしているようであり、したがって異なるシステムを好むかもしれません。
それで:
- Webデザイナー:どのテンプレートエンジンを使用するのが好きですか?
- プログラマー:Webデザイナーとの作業を容易にするために、どのテンプレートエンジンを使用しましたか?
Webデザイナーに適したテンプレートエンジンは何ですか?プログラマーとして何を使いたいかについては、間違いなく自分の好みがあります。しかし、Webデザイナーは物事について異なる考え方をしているようであり、したがって異なるシステムを好むかもしれません。
それで:
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
ます)
マコを見てください。
これが私がWebデザイナーに対処する方法です。
${...}
置き換えます。モックアップはページの 1 つのバージョンであるため、if ステートメントの使用には交渉が必要です。
個人的には、Cheetah のテンプレートはデザイナーにとって非常に使いやすいと感じました。テンプレートのサブクラス化のアイデアには時間がかかりましたが、これは最初は難しいことでした。しかし、デザイナーは自分のコードを複製して完全なテンプレートを作成します...その後、少しクリーンアップすることができます。
@Jaime Soriano のコメントに追加すると、Genshiは Trac post-0.11 で使用されるテンプレート エンジンです。これは一般的なテンプレート ソリューションとして使用できますが、HTML/XHTML に焦点を当てています。XSS の脆弱性を軽減するための自動エスケープがあります。
私は両方の役割を果たしてきましたが、心の中ではプログラマーのテンプレート言語の方が好きです。しかし、私は何人かのグラフィック デザイナーのためにフリーランスで「重労働」のバック プログラミングや db プログラミングを行っており、XML テンプレート言語 (SimpleTAL、Genshi など) で最高の幸運を得たと言えます。
Web デザイナーにやさしくしたいときは、Dreamweaver にロードして結果を確認できるものを探します。これにより、テンプレート内のすべてのフックを提供し、デザイナーがテンプレートを微調整できるようになり、既に作成した内容が壊れることを心配する必要がなくなります。これにより、コードを共有し、両者が形式に慣れている場合に共同作業を改善できます。
デザイナーが WYSIWYG エディターを使用せずにコードを作成する場合、オプションの制限が少なくなり、自分のお気に入りを使用できると思います。
私はClearsilverに投票します。0.11より前の Trac で使用されていたテンプレート エンジンであり、Google グループや Orkut などのページでも使用されています。このテンプレート エンジンの主な利点は、非常に高速で言語に依存しないことです。