temple

command module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 16, 2022 License: MIT Imports: 11 Imported by: 0

README

Temple

Sick of sed? Peaked about perl? Use temple to substitute your variables!

GitHub release GitHub license release status main branch status GitHub issues GitHub contributors PRs Welcome Go version GoDoc reference example Go Report Card

Installation

Binaries

I have pre-built binaries for several platform already. They are available on the releases page.

Source

If you have go v1.6 installed, then you can build the binary with the following command:

go install docwhat.org/temple

Usage

Usage: temple <template-file>

A simple templating engine

Arguments:
  <template-file>    The template file to use ($TEMPLE_TEMPLATE_FILE)

Flags:
  -h, --help              Show context-sensitive help.
      --version           Show version information
  -d, --data=DATA-FILE    A YAML or JSON file to use via the {{data.<foo>}} interface ($TEMPLE_DATA_FILE)
  -H, --html              Use HTML templating instead of text templating ($TEMPLE_USE_HTML)

Note that the DATA file must have an object at the top level. You cannot use a bare string or an array.

JSON Example:

{
  "key": "value",
  "key2": 2
}

YAML Example:

key: "value"
key2: 2

Template Syntax

For complete documentation, read go's text/template and html/template.

Sprig Functions

Temple supports the complete list of Sprig functions.

Data Sources
  • {{hostname}} -- The systems fully qualified domain name.
  • {{uid}} -- UID of the user running temple.
  • {{gid}} -- GID of the user running temple.
  • {{euid}} -- Effective UID of the user running temple.
  • {{egid}} -- Effective GID of the user running temple.
  • {{pwd}} -- The current working directory.
  • {{json}} -- Access to your JSON data. Use dot notation to get access to items. e.g. {{json.authors.greenwood.first_name}}
Functions
  • {{index <expr> 99}} -- The 99th item of the array <expr>.
  • {{<expr> | js}} -- <expr> escaped/quoted for JavaScript & JSON.
  • {{<expr> | html}} -- <expr> escaped/quoted for HTML.
  • {{<expr> | urlquery}} -- <expr> escaped/quoted for a URL quoting. i.e. replacing spaces with + and using %NN syntax.
  • {{<expr> | shellquote}} -- <expr> escaped/quoted for POSIX shells.
  • {{<expr> | len}} -- The length of the <expr>.
Flow Control
  • {{if <expr>}}true string{{else}}false string{{end}} -- If/Else syntax. The {{else}} is optional.
  • {{range <array>}} item: {{.}} {{else}} The list is empty {{end}} -- Iterate over <array>. The {{else}} is optional.
Miscellaneous
  • {{<expr> -}} -- Trim whitespace to the right. e.g. {{1 -}} .0 becomes 1.0.
  • {{- <expr>}} -- Trim whitespace to the left.
  • {{- <expr> -}} -- Trim whitespace to the right and left.
  • {{/* comment */}} -- Comments!

Thanks

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL