我想知道是否有重新组装ERB的安全模板。 ERB非常容易使用,但在CMS中使用它的致命部分是过度强大的访问(你可以在几秒钟内写出一些非常令人讨厌的东西......)所以我想知道是否有任何机会这种语言存在。
请我不要半径/液体......这样写延伸太麻烦了,模板语法本身就不是我的一杯茶...如果可能的话,我想避免它。
更新:这不完美(因为它不是erb)但似乎比Liquid更好: http://github.com/scottpersinger/laminate
你必须使用Lua作为你的模板,但Lua已经比尝试使用液体要好得多(这使得你无法使用简单的赋值语法......)
答案 0 :(得分:3)
您应该考虑Handlebars.rb。它“使用therubyracer绑定到Handlebars.js的实际JavaScript实现,以便您可以从ruby中使用它。”
以下是他们的示例代码:
require 'handlebars'
handlebars = Handlebars::Context.new
template = handlebars.compile("{{say}}{{what}}")
template.call(:say => "Hey", :what => "Yuh!") #=> "Hey Yuh!"
答案 1 :(得分:2)
虽然你写了“请我不要半径/液体”,但我不明白你的不情愿。只需转到Liquid页面,看看它有多容易:
gem install liquid
以下是一个示例代码段:
<ul id="products">
{% for product in products %}
<li>
<h2>{{ product.title }}</h2>
Only {{ product.price | format_as_money }}
<p>{{ product.description | prettyprint | truncate: 200 }}</p>
</li>
{% endfor %}
</ul>
而且,使用它:
Liquid::Template.parse(template).render 'products' => Product.find(:all)
答案 2 :(得分:2)
您还应该考虑Mustache:
Mustache.render("Hello {{planet}}", :planet => "World!")
=> "Hello World!"