安全的ERB语言?

我想知道是否有一个重新组装ERB的安全模板。 ERB非常容易使用,但在CMS中使用它的致命部分是过度强大的访问(你可以在几秒钟内写出一些非常令人讨厌的东西……)所以我想知道是否有任何机会存在这样的语言。

请不要半径/液体…..这样写延伸太​​麻烦了,模板语法本身就不是我的一杯茶…我想尽可能避免它。

更新:这不是完美的(因为它不是erb)但似乎比Liquid更好: http : //github.com/scottpersinger/laminate

你必须使用Lua作为你的模板,但Lua已经比尝试使用液体要好得多(这使你无法做一个简单的赋值语法……)

你应该考虑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!" 

虽然你写了“请我不要半径/液体”,但我不明白你的不情愿。 只需转到Liquid页面,看看它有多简单:

 gem install liquid 

这是一个示例代码段:

 
    {% for product in products %}
  • {{ product.title }}

    Only {{ product.price | format_as_money }}

    {{ product.description | prettyprint | truncate: 200 }}

  • {% endfor %}

并且,使用它:

 Liquid::Template.parse(template).render 'products' => Product.find(:all) 

你还应该考虑胡子 :

 Mustache.render("Hello {{planet}}", :planet => "World!") => "Hello World!"