【发布时间】:2014-04-01 02:37:23
【问题描述】:
我在数据库表(博客文章)中有一些内容是受信任的内容,我想在屏幕上显示。此内容是 HTML,并且有一些使用 Prism.js 进行语法高亮的代码示例。由于 gsp 页面上的 HTML 编码,我需要使用 raw 方法按原样输出内容
${raw(post.content)}
这很好用,除了当我获得包含在代码示例标签中的代码时。与其将其显示为代码,不如将其输出为我不想要的原始 html。我不知何故需要对其中的文本进行编码,因为如果我不这样做,我最终会得到看起来像这样的东西。
我知道我可以在保存时进行编码,但我已经有数百个帖子不是这种情况。有什么想法吗?
【问题讨论】:
-
我不确定,但你可以试试 ${post.teaser.encodeAsHTML()}
-
整个帖子是 ${post.content} 你所看到的那篇帖子的一个子集 - 来自另一篇博文的代码示例
这里有一堆标记 ${raw(post.teaser)} -
这是博客文章在数据库中的样子,从上图可以看出它是如何呈现的。 gist.github.com/cfaddict/9912759
-
我猜需要做的是获取内容并将其传递给服务函数,该函数将查看是否需要编码任何内容。如果它找到任何
标签,请使用一些正则表达式来查找/替换这些标签之间的任何内容与编码的内容。我很讨厌正则表达式,这应该很有趣。 -
@havetchecked 已发布...如果有帮助,请告诉我。对不起,我完全忘了发布这个:)