Rubyにも似たようなものないかなと思ったらあった。
http://www.liquidmarkup.org/ Liquid
検索しても全然日本語がひっかからないので、サンプルを紹介。
使い方は簡単。
テンプレート文字列をLiquid::Template.parseして、データを与えてrenderすればよいのだ。
テンプレートの基本文法はこんな感じ:
{{ 変数 }} : 変数出力
{{ 変数 | フィルタ }} : フィルタ適用
{% if XXX %} ... {% endif %} : if分岐
{% for XXX in LIST %} ... {% endfor %} : forループ
コード例(Bloggerでインデント面倒だから崩れちゃってるけど):
require 'rubygems'
require 'liquid'
items = [
{ 'name' => "The Oldest Book", 'author' => 'Kota' },
{ 'name' => "Yet Another Book", 'author' => 'Ryohei' },
{ 'name' => "The Lost Book", 'author' => 'Mikako' } ]
title = "Book List"
tmpl = Liquid::Template.parse(DATA.read)
puts tmpl.render({'title' => title, 'items' => items})
__END__
<h1>{{ title|escape }}</h1>
<table>
{% for item in items %}
<tr><td>{{ item.name|escape }}</td><td>{{ item.author|escape }}</td>
{% endfor %}
</table>
ちなみにインストールはgem install liquidでOK.
Template::Toolkitスキーなのですばらしい。erb使いでもちょっとした設定なんかにいかが。
参考:Mini reviews of 19 Ruby template engines
0 件のコメント:
コメントを投稿