gomplate

Delphi源码 2025-08-16

在文档中阅读文档。 gomplate .ca,在Gophers Slack gomplate与开发人员和社区聊天

gomplate是一个模板渲染器,它支持越来越多的数据源列表,例如:JSON(包括Ejson-加密JSON ),YAML,AWS EC2 Metadata,Hashicorp Consul和Hashicorp Vault Pault Secrets。

在Gophers Slack和Github讨论中与gomplate频道中的开发人员和社区聊天!

以下是一些gomplate的示例:

gomplate can be used with environment variables... $ echo 'Hello, {{ .Env.USER }}' | gomplate Hello, hairyhenderson $ # but that's kind of boring. gomplate has tons of functions to do useful stuff, too $ gomplate -i 'the answer is: {{ mul 6 7 }}' the answer is: 42 $ # and, since gomplate uses Go's templating syntax, you can do fun things like: $ gomplate -i '{{ range seq 5 1 }}{{ . }} {{ if eq . 1 }}{{ "blastoff" | toUpper }}{{ end }}{{ end }}' 5 4 3 2 1 BLASTOFF $ # the real fun comes when you use datasources! $ cat ./config.yaml foo: bar: baz: qux $ gomplate -d config=./config.yaml -i 'the value we want is: {{ (datasource "config").foo.bar.baz }}' the value we want is: qux $ # datasources are defined by URLs, and gomplate is not limited to just file-based datasources: $ gomplate -d ip=https://ipi*nfo*.*io -i 'country code: {{ (ds "ip").country }}' country code: CA $ # standard input can be used as a datasource too: $ echo '{"cities":["London", "Johannesburg", "Windhoek"]}' | gomplate -d city=stdin:///in.json -i '{{ range (ds "city").cities }}{{.}}, {{end}}' London, Johannesburg, Windhoek, $ # and here's something a little more complicated: $ export CITIES='city: [London, Johannesburg, Windhoek]' $ cat in.tmpl {{ range $i, $city := (ds "cities").city -}} {{ add 1 $i }}: {{ include "weather" (print $city "?0") }} {{ end }} $ gomplate -d 'cities=env:///CITIES?type=application/yaml' -d 'weather=https://*wt*tr.in*/?0' -H 'weather=User-Agent: curl' -f in.tmpl 1: Weather report: London / Partly cloudy _ /"".-. 4-7 °C _( ). ↑ 20 km/h /(___(__) 10 km 0.0 mm 2: Weather report: Johannesburg / Partly cloudy _ /"".-. 15 °C _( ). ↘ 0 km/h /(___(__) 10 km 2.2 mm 3: Weather report: Windhoek / Partly cloudy _ /"".-. 20 °C _( ). ↑ 6 km/h /(___(__) 20 km 0.0 mm">
$ # at its most basic, gomplate can be used with environment variables...
$ echo ' Hello, {{ .Env.USER }} ' | gomplate
Hello, hairyhenderson

$ # but that's kind of boring. gomplate has tons of functions to do useful stuff, too
$ gomplate -i ' the answer is: {{ mul 6 7 }} '
the answer is: 42

$ # and, since gomplate uses Go's templating syntax, you can do fun things like:
$ gomplate -i ' {{ range seq 5 1 }}{{ . }} {{ if eq . 1 }}{{ "blastoff" | toUpper }}{{ end }}{{ end }} '
5 4 3 2 1 BLASTOFF

$ # the real fun comes when you use datasources!
$ cat ./config.yaml
foo:
  bar:
    baz: qux
$ gomplate -d config=./config.yaml -i ' the value we want is: {{ (datasource "config").foo.bar.baz }} '
the value we want is: qux

$ # datasources are defined by URLs, and gomplate is not limited to just file-based datasources:
$ gomplate -d ip=https://ipi*nfo*.*io -i ' country code: {{ (ds "ip").country }} '
country code: CA

$ # standard input can be used as a datasource too:
$ echo ' {"cities":["London", "Johannesburg", "Windhoek"]} ' | gomplate -d city=stdin:///in.json -i ' {{ range (ds "city").cities }}{{.}}, {{end}} '
London, Johannesburg, Windhoek, 

$ # and here's something a little more complicated:
$ export CITIES= ' city: [London, Johannesburg, Windhoek] '
$ cat in.tmpl
{{ range $i, $city := (ds "cities").city -}}
{{ add 1 $i }}: {{ include "weather" (print $city "?0") }}
{{ end }}
$ gomplate -d ' cities=env:///CITIES?type=application/yaml ' -d ' weather=https://wttr.*in/**?0 ' -H ' weather=User-Agent: curl ' -f in.tmpl
1: Weather report: London

      /       Partly cloudy
  _ /"".-.     4-7 °C
    _(   ).   ↑ 20 km/h
    /(___(__)  10 km
               0.0 mm

2: Weather report: Johannesburg

      /       Partly cloudy
  _ /"".-.     15 °C
    _(   ).   ↘ 0 km/h
    /(___(__)  10 km
               2.2 mm

3: Weather report: Windhoek

      /       Partly cloudy
  _ /"".-.     20 °C
    _(   ).   ↑ 6 km/h
    /(___(__)  20 km
               0.0 mm

在文档中阅读文档。 gomplate .CA,并在Github讨论中加入讨论!

请报告问题跟踪器中发现的任何错误。

执照

麻省理工学院许可证

版权(C)2016-2023 Dave Henderson

下载源码

通过命令行克隆项目:

git clone https://github.com/hairyhenderson/gomplate.git