有没有办法让我定义,当我在 Go html 模板中输出一个值时,格式化完成的方式而不是打印字符串表示,而无需调用函数来显式转换它?
例如,假设我有一个类型Person
,并且我有一个模板,只是{{.}}
我希望它自动创建指向该人页面的链接,但如果我使用相同的模板并传递不同类型的值,则会生成一些其他 HTML。
我不想做的是不得不写类似{{.HTML}}
or的东西{{. | html}}
。我已经知道这些是可能的,但我的问题特别是关于如何避免这些。
我一直在考虑Person.String()
以某种方式返回 HTML 代码而不被转义,但除了没有让它工作之外,它似乎也是一个丑陋的解决方案。
我考虑过的另一个解决方案是将所有内容作为 HTML 传递到模板中,但是我无法再访问属性(比如{{.name}}
只输出名称),我还必须将所有内容都转换为 HTML,以防万一模板中使用。