Существует ли функция «safeTemplateVariable» для Голанга? - PullRequest
0 голосов
/ 14 ноября 2018

Лучше задать этот вопрос на примере:

Сначала давайте объявим переменную на Голанге:

{{ $html := "<b>hi!</b>" }}

Если мы попытаемся вывести {{ $html }}, результат будет:

ввод:
{{ $html }}
выход:
<b>hi!</b>

Если вы передадите функцию safeHTML, html будет вычисляться, и результат будет:

ввод: * * тысяча двадцать-одна {{ $html | safeHTML }}
выход:
hi!

Есть ли способ проанализировать переменную Голанга? Как это:
Если я попробую это:
{{ $var1 := "it's me!" }}
{{ $var2 := "hey guys, {{ $var1 }}" }}

Это произойдет:
вход:
{{ $var2 }}
выход:
"hey guys, {{ $var 1 }}"

Но я хочу, чтобы значение $var1 было оценено следующим образом:
"hey guys, it's me!"

Извините, если я не достаточно ясно, я не являюсь носителем английского языка

Спасибо за помощь!

Ответы [ 2 ]

0 голосов
/ 14 ноября 2018

«Безопасный» - это режим по умолчанию для шаблонов HTML в Go.

Если у вас есть переменная со специальными символами HTML, они экранируются при выводе, что делает их полностью безопасными. Однако это отличается от удаления тегов HTML, что, по-видимому, и делает ваш пример. Если вы хотите удалить теги HTML, а не экранировать символы HTML, вам нужно написать собственную функцию.

Если вы хотите отключить безопасное поведение и выводить необработанный HTML, используйте тип template.HTML.

0 голосов
/ 14 ноября 2018

Вы можете сделать

 {{ $var2 := (printf "hey guys, %v" $var1) }}

https://play.golang.org/p/D_OOE7LqOrw

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...