如何在IRIS中禁用AutoEscaping

时间:2018-02-11 06:33:37

标签: go escaping go-iris

我将HTML标记插入数据库表:

<table>
<tr>
   <td>1</td>
   <td>2</td>
   <td>3</td>
</tr>
</table>

将检索到的数据发送到View

func MyEvent(ctx iris.Context){
        rows := ...
        ctx.ViewData("rows", rows[0])
        ctx.View("template.html")
}

如何才能在此事件中禁用自动转义功能?

1 个答案:

答案 0 :(得分:0)

如何通过模板和输出获取原始HTML将取决于您使用Iris的模板引擎。 Iris supports five template engines out-of-the-box

  

如果您使用的是标准html/template套餐,那么您可以使用template.HTML类型将字符串标记为“安全的HTML”:

ctx.ViewData("rows", template.HTML(rows[0]))

或添加您自己的过滤器,只执行return template.HTML(s)并在模板中使用它。

如果您使用的是Handlebars,那么您将使用{{{...}}} in the template or raymond.SafeString in a helper

{{{yourHTML}}}

如果您正在使用其他模板引擎之一,那么您将使用它们提供的任何机制来通过模板获取原始HTML。

当然,所有这些都假设您在HTML进入数据库之前或者从数据库进入模板之前对其进行清理和清理。