Skip to content

Apply go template over files ending with .template in the current directory

License

Notifications You must be signed in to change notification settings

IQ-SCM/gotemplate

 
 

Repository files navigation

gotemplate

Build Status Go Report Card Documentation

Description

Apply template over files ending with .template in the current directory. Every matching *.ext.template file will render a file named *.generated.ext. It is also possible to overwrite the original files.

Functions

Supports over a hundred functions:

  • Go template
  • Sprig
  • Advanced serialization and deserialization in JSON, YAML, XML and HCL
  • Looping and flow control functions of all kinds
  • Plus a whole bunch implemented in this repository

Syntax

Supports two distinct syntaxes (usable at the same time or individually)

Here are the statements to generate the following output:

Hello
World

Note: The - character trims whitespace. Otherwise, all lines are printed out as blank lines

Regular gotemplate

{{- $test := list "Hello" "World" }}
{{- range $word := $test }}
{{ $word }}
{{- end }}

Razor

@{test} := list("Hello", "World")
@-foreach($word := $test)
@{word}
@-end foreach

Using variables

Variables can be imported from various formats (YAML, JSON and HCL) and set as CLI arguments and then used in templates. Here's an example:

vars.json

{
  "my_var": "value"
}

Script:

gotemplate --var my_var2=value2 --import vars.json '{{ .my_var }} {{ .my_var2 }}'
  >>> value value2

More examples and statement in the documentation

About

Apply go template over files ending with .template in the current directory

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 93.7%
  • HTML 5.4%
  • Other 0.9%