在Go

时间:2016-03-30 04:48:01

标签: google-app-engine templates go

我正在使用Go html / template包来呈现从HTML表单收到的用户输入。由于包html /模板阻止了用户输入的脚本注入,所有的html标签都将被转换为& ...;格式。

但是,我打算使用WYSIWYG输入字段,允许用户输入一些样式标记,例如<强大>标签。我正在使用模板功能解决方案。

funcs := template.FuncMap{
    "marktag": func(text string) template.HTML {
        output := strings.Replace(template.HTMLEscapeString(text), "&lt;strong&gt;", "<strong>", -1)
        output = strings.Replace(output, "&lt;/strong&gt;", "</strong>", -1)
        return template.HTML(output)
    },
}

哪个有效。但是,如果我需要转换其他标签,我必须多次调用strings.Replace(..)函数,例如

<ul><li></li></ul>
<emphasize></emphasize>
<code></code>

等等

此外,我发现很难处理像

这样的CSS风格
<p style="color: #343434"></p>

现在我必须检查

<p

也是。这个问题有没有理想的解决方案?

0 个答案:

没有答案