template

package
v0.4.1 Latest Latest
Warning

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

Go to latest
Published: Feb 26, 2017 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DeepCopyObject added in v0.3.1

func DeepCopyObject(from interface{}) (interface{}, error)

DeepCopyObject makes a deep copy of the argument, using encoding/gob encode/decode.

func Fetch added in v0.3.1

func Fetch(s string, opt Options) ([]byte, error)

Fetch fetchs content from the given URL string. Supported schemes are http:// https:// file:// unix://

func FromJSON

func FromJSON(o interface{}) (interface{}, error)

FromJSON decode the input JSON encoded as string or byte slice into a map.

func FromMap

func FromMap(m map[string]interface{}, raw interface{}) error

FromMap decodes map into raw struct

func IndexOf added in v0.3.1

func IndexOf(srch interface{}, array interface{}, strictOptional ...bool) int

IndexOf returns the index of search in array. -1 if not found or array is not iterable. An optional true will turn on strict type check while by default string representations are used to compare values.

func QueryObject

func QueryObject(exp string, target interface{}) (interface{}, error)

QueryObject applies a JMESPath query specified by the expression, against the target object.

func SplitLines

func SplitLines(o interface{}) ([]string, error)

SplitLines splits the input into a string slice.

func ToJSON

func ToJSON(o interface{}) (string, error)

ToJSON encodes the input struct into a JSON string.

func ToJSONFormat added in v0.3.1

func ToJSONFormat(prefix, indent string, o interface{}) (string, error)

ToJSONFormat encodes the input struct into a JSON string with format prefix, and indent.

func ToMap

func ToMap(raw interface{}) (map[string]interface{}, error)

ToMap encodes the input as a map

func UnixTime

func UnixTime() interface{}

UnixTime returns a timestamp in unix time

Types

type Context added in v0.3.0

type Context interface {
	// Funcs returns a list of special template functions of the form func(template.Context, arg1, arg2) interface{}
	Funcs() []Function
}

Context is a marker interface for a user-defined struct that is passed into the template engine (as context) and accessible in the exported template functions. Template functions can have the signature func(template.Context, arg1, arg2 ...) (string, error) and when functions like this are registered, the template engine will dynamically create and export a function of the form func(arg1, arg2...) (string, error) where the context instance becomes an out-of-band struct that can be mutated by functions. This in essence allows structured data as output of the template, in addition to a string from evaluating the template.

type Function added in v0.3.0

type Function struct {

	// Name is the function name to bind in the template
	Name string

	// Description provides help for the function
	Description []string `json:",omitempty"`

	// Func is the reference to the actual function
	Func interface{} `json:"-"`

	// Function is the signature of the function
	Function string

	// Usage shows how to use it
	Usage string `json:",omitempty"`
}

Function contains the description of an exported template function

func UpdateDocumentation added in v0.3.1

func UpdateDocumentation(in []Function) []Function

UpdateDocumentation uses reflection to generate documentation on usage and function signature.

type FunctionExporter added in v0.3.1

type FunctionExporter interface {
	// Funcs returns a list of special template functions of the form func(template.Context, arg1, arg2) interface{}
	Funcs() []Function
}

FunctionExporter is implemented by any plugins wishing to show help on the function it exports.

type Options

type Options struct {

	// SocketDir is the directory for locating the socket file for
	// a template URL of the form unix://socket_file/path/to/resource
	SocketDir string
}

Options contains parameters for customizing the behavior of the engine

type Template

type Template struct {
	// contains filtered or unexported fields
}

Template is the templating engine

func NewTemplate

func NewTemplate(s string, opt Options) (*Template, error)

NewTemplate fetches the content at the url and returns a template. If the string begins with str:// as scheme, then the rest of the string is interpreted as the body of the template.

func NewTemplateFromBytes

func NewTemplateFromBytes(buff []byte, contextURL string, opt Options) (*Template, error)

NewTemplateFromBytes builds the template from buffer with a contextURL which is used to deduce absolute path of any 'included' templates e.g. {{ include "./another.tpl" . }}

func (*Template) AddFunc

func (t *Template) AddFunc(name string, f interface{}) *Template

AddFunc adds a new function to support in template

func (*Template) Def added in v0.4.0

func (t *Template) Def(name string, value interface{}, doc string) *Template

Def is equivalent to a {{ def "key" value "description" }} in defining a variable with a default value. The value is accessible via a {{ ref "key" }} in the template.

func (*Template) DefaultFuncs

func (t *Template) DefaultFuncs() []Function

DefaultFuncs returns a list of default functions for binding in the template

func (*Template) Dot added in v0.3.1

func (t *Template) Dot() interface{}

Dot returns the '.' in this template.

func (*Template) Execute

func (t *Template) Execute(output io.Writer, context interface{}) error

Execute is a drop-in replace of the execute method of template

func (*Template) Funcs added in v0.3.1

func (t *Template) Funcs() []Function

Funcs returns a list of registered functions used by the template when it rendered the view.

func (*Template) Global added in v0.3.1

func (t *Template) Global(name string, value interface{}) *Template

Global sets the a key, value in the context of this template. It is visible to all the 'included' and 'sourced' templates by the calling template.

func (*Template) Ref added in v0.3.1

func (t *Template) Ref(name string) interface{}

Ref returns the value keyed by name in the context of this template. See 'ref' template function.

func (*Template) Render

func (t *Template) Render(context interface{}) (string, error)

Render renders the template given the context

func (*Template) SetOptions

func (t *Template) SetOptions(opt Options) *Template

SetOptions sets the runtime flags for the engine

func (*Template) Validate

func (t *Template) Validate() (*Template, error)

Validate parses the template and checks for validity.

func (*Template) WithFunctions added in v0.4.0

func (t *Template) WithFunctions(functions func() []Function) *Template

WithFunctions allows client code to extend the template by adding its own functions.

type Void added in v0.3.1

type Void string

Void is used in the template functions return value type to indicate a void. Golang template does not allow functions with no return types to be bound.

Jump to

Keyboard shortcuts

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