Defining template:
{{ define “template_name” }}         {{ end }}

Using template:
{{ template “template_name” . }}

Block:
{{ block “content” . }}         {{ end }}

Is equivalent to =>         {{  template “content” . }}         {{ define “content” }}         {{ end }}

If:
{{ if var }}                 //…         {{ else if var }}                 //…         {{ else }}                 //…         {{ end }}

Assignment:
{{ $first_name := “arash” }} {{ $first_name = .Name }}

With:
{{ with . Firstname  }} // . refers to Firstname {{ end }}

{{ with $ firstname  := .Firstname }} // . and $firstname both refer to Firstname {{ end }}

Range:
{{ range .Users }}     {{ .Firstname }} {{ end }}

{{ range $user := .Users }}     {{ .Firstname }}     {{ $user.Firstname }}     {{ else }}         No users found {{ end }}

{{ range $index, $user := .Users }} {{ end }}

Functions:
{{ if and cond1 cond2 … }}

{{ if or cond1 cond2 … }}

{{ if not cond }}

{{ len var }}

tmpl, _ := template.New(“template_name”).Parse(“...”)

tmpl.Name()        =>        name of current template

tmpl.Execute(...)        =>        execute current template

tmpl.ExecuteTemplate(...)        =>        execute template by name

tmpl = tmpl.Lookup(“template_name”)        =>        change current template

tmpl.Templates()        =>        Get defined templates