首页 文章

如何在IRIS中禁用AutoEscaping

提问于
浏览
1

我将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

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

    标准的html,它的模板解析器是golang.org/pkg/html/template/ Django,它的模板解析器是github.com/flosch/pongo2 Pug(Jade),它的模板解析器是github.com/Joker/ jade Handlebars,它的模板解析器是github.com/aymerick/raymond Amber,它的模板解析器是github.com/eknkc/amber

    如果您使用的是标准 html/template 包,则使用 template.HTML 类型将字符串标记为"safe 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进入数据库之前或者从数据库到模板之前对HTML进行清理和清理 .

相关问题