Необходимо сообщить шаблонизатору, что URL-адрес безопасен.
Для достижения этого необходимо вернуть template.HTML
или template.URL
.
funcMap := template.FuncMap{
"safeHTML" : template.HTML,
"safeURL" : template.URL,
}
А затем попытаться вызвать Ваш метод в шаблонное выражение
{{range $element := .}}
{{safeURL $element.URL}}
{{end}}
По руководство для шаблона пакета :
Типизированные строки
По умолчанию этот пакет предполагает, что все конвейеры выдают текстовую строку. Он добавляет экранирующие этапы конвейера, необходимые для правильного и безопасного встраивания этой простой текстовой строки в соответствующий контекст.
Если значение данных не является простым текстом, вы можете убедиться, что оно не экранировано, пометив его type.
Типы HTML, JS, URL и др. из содержимого. go может содержать безопасный контент, который исключен из экранирования.
Шаблон
Hello, {{.}}!
можно вызвать с помощью
tmpl.Execute(out, template.HTML(`<b>World</b>`))
для получения
Hello, <b>World</b>!
вместо
Hello, <b>World<b>!
, который был бы получен, если бы {{.}} Была обычной строкой.