Rails最终用户模板引擎:Liquid vs Mustache vs. Others?

时间:2011-02-26 21:40:47

标签: ruby-on-rails ruby templates liquid mustache

我正在创建一项服务,我希望允许最终用户编辑网页的HTML模板,以便访问特定的“变量”以包含在模板中。

我知道液体是为此目的而设计的,是安全的(至少是相对的),并且正在大量生产中使用。但是,与Mustache一样,我发现最终用户的语言相当复杂。

Mustache听起来很棒,但我担心安全问题......它是否曾被用于最终用户模板?

基本上我正在寻找一个模板引擎,我可以使用w / Rails为最终用户:

  1. 安全 - 不允许用户执行代码...至少不在服务器上执行。将允许用户插入客户端javascript。
  2. 功能强大 - 允许最终用户使用提供的“变量”并在#1
  3. 的上下文中创建他们可以想象的几乎任何网页
  4. 简单 - 语法清晰,方便最终用户应用
  5. 如果支持在javascript和其他语言中呈现模板语法,则奖励积分。
  6. 液体遇到1& 2,但不是3-4。小胡子符合2-4,但我不确定#1,这是不可协商的。

    非常感谢任何见解,经验或评论。

1 个答案:

答案 0 :(得分:3)

Mustache非常适合插值,如果您将其用于Javascript评估,我无法想象它会将您暴露给服务器端漏洞。这是最简单,最强大的选择。我不知道非程序员会理解它,但我确信它比Liquid更简单。

另一种选择是使用现有的更简单的用户标记集(如BBcode)或富文本编辑库(如TinyMCE)。这些功能大大减少,但对普通人来说更容易使用。