Добавить пользовательскую функцию в шаблон усов 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)
    }
Другие вопросы по тегам