Добавить пользовательскую функцию в шаблон усов golang
У меня есть пилочка для усов. Я использую https://github.com/cbroglie/mustache для рендеринга файла усов. Я хочу, чтобы в основном этот пример работал на go lang. Но, думаю, поддержки лямбда нет.
Template:
{{#wrapped}}
{{name}} is awesome.
{{/wrapped}
}
{
"name": "Willy",
"wrapped": function() {
return function(text, render) {
return "<b>" + render(text) + "</b>"
}
}
}
Выход:
Вилли потрясающий.
В основном я хочу использовать свою настраиваемую функцию для рендеринга усов на ходу. Как это возможно, может мне кто-нибудь сказать.
1 ответ
Я не вижу прямого способа сделать это на основе документации. Но вот что я мог бы заработать. Возможно, вы можете прочитать больше в документации и попытаться найти лучшее решение. Ссылка на игровую площадку здесь
package main
import (
"fmt"
"strings"
"github.com/cbroglie/mustache"
)
type CustomString string
func (s CustomString) ToLower() string {
return strings.ToLower(string(s))
}
func main() {
out, err := mustache.Render(`Hey {{#myString}}{{ToLower}}{{/myString}}`, map[string]interface{}{"myString": []CustomString{CustomString("dEF")}})
if err != nil {
panic(err)
}
fmt.Println(out)
}