html - 西纳特拉和 HAML : auto-escape/convert unsafe HTML characters for a whole template?

标签 html ruby sinatra haml

我有一个小的 sinatra 应用程序,我用它来运行一个基本的网站。所述网站的内容由客户提供,其中大部分来自 PDF。因为我不想手动替换所有 <&lt; , 和 &&amp; , 有没有办法配置 HAML/Sinatra 自动为我做这件事?

基本上,我有一些像这样的 block :

%p
  large block of text here...
  multi-line so I can see it in my IDE...
  more lines here...

我只想找到一些配置选项,告诉 HAML 遍历所有内容并将不安全的字符替换为对应的 HTML 实体。

我尝试使用 HTMLEntities gem,但是这个网站有很多多行段落,我似乎无法让它工作。我的意思是我会在我的 server.rb 中做这样的事情文件:

def "/some_url"
  @encoder = HTMLEntities.new
  haml :some_template
end

在我的模板中:

%p
  = @encoder.encode("Really long multiline string...
    some more lines here...
    and more lines...")

它会吐出一个关于缺少结束符的错误 ) .

最佳答案

您可以使用 :escaped filter :

%p
  :escaped
    A block of text here that might
    contain & and <.

输出:

<p>
  A block of text here that might
  contain &amp; and &lt;.
</p>

它不是很自动,但可能会减少所需的编辑。

关于html - 西纳特拉和 HAML : auto-escape/convert unsafe HTML characters for a whole template?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15364777/

相关文章:

html - 使跨度填充高度 - 即使在滚动时

javascript - 如何让小部件每隔几秒更新一次

ruby - 如何在 Ruby 中查找字符串的所有循环?

ruby - 为什么我在运行 pry 时收到许多忽略消息?

ruby - 在 GitLab CI 包构建中缓存 gem

ruby - 使对象在 sinatra 范围内可用

Ruby 输出不显示在 sinatra 浏览器上

javascript - 在 javascript 中,使用正则 exp 在特定条件下拆分字符串

javascript - JQuery 查找 HTML 项并替换

ruby - Sinatra 服务器运行后执行代码