Documentation
¶
Index ¶
- func ConditionalClassExtensionNodeProcessor(node *Node)
- func ConditionalExtensionNodeProcessor(node *Node)
- func RangeExtensionNodeProcessor(node *Node)
- func StringInterpolationNodeProcessor(node *Node)
- func TryEvaluateBoolUsingContext(ecs EvaluatorContextSource, evaluator Evaluator, inputStr string) (bool, bool, error)
- func TryEvaluateStringUsingContext(ecs EvaluatorContextSource, evaluator Evaluator, inputStr string) (bool, string, error)
- func TryEvaluateUsingContext(ecs EvaluatorContextSource, evaluator Evaluator, inputStr string) (bool, interface{}, error)
- type AttrStringInterpExtension
- type Attribute
- type ConditionalClassExtension
- type ConditionalExtension
- type DefaultExtensionDependencies
- type DependencyKey
- type Evaluator
- type EvaluatorContextSource
- type EvaluatorParams
- type Extension
- type ExtensionDependencies
- type Node
- func (n *Node) AddAttribute(key, value string)
- func (n *Node) AddExtension(extension Extension)
- func (n *Node) AppendChild(node *Node)
- func (n *Node) ApplyExtensions(dependencies ExtensionDependencies, params EvaluatorParams) (*Node, []*Node, error)
- func (n Node) Attributes() []Attribute
- func (n Node) Children(nodeFunc func(int, *Node) bool)
- func (n Node) ContextParams() EvaluatorParams
- func (n Node) FirstChild() *Node
- func (n *Node) GetContextParams() []EvaluatorParams
- func (n Node) HasAttribute(key string) (bool, int, string)
- func (n Node) HasAttributes(testFunc func(Attribute) bool) []Attribute
- func (n *Node) Insert(newChildNode *Node, beforeChildNode *Node)
- func (n Node) LastChild() *Node
- func (n Node) NextSibling() *Node
- func (n Node) NextSiblings(nodeFunc func(*Node) bool)
- func (n Node) Parent() *Node
- func (n Node) PreviousSibling() *Node
- func (n *Node) RemoveAttribute(key string)
- func (n *Node) RemoveChild(child *Node)
- func (n *Node) ReplaceAttribute(key string, value string)
- func (n *Node) SetContextParams(contextParams EvaluatorParams)
- func (n *Node) SetParentEvaluatorContextSource(ecs EvaluatorContextSource)
- func (n Node) Tags() (string, string)
- type NodeProcessorFunc
- type Parser
- type ParserOptionFunc
- type RangeEvaluatorParams
- type RangeExtension
- type Template
- func (tpl *Template) AddExtensionDependencies(extDeps ...ExtensionDependencies)
- func (tpl *Template) Render(params EvaluatorParams, writerFunc func(string)) error
- func (tpl *Template) RenderBytes(params EvaluatorParams) ([]byte, error)
- func (tpl *Template) RenderString(params EvaluatorParams) (string, error)
- type TextStringInterpExtension
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ConditionalClassExtensionNodeProcessor ¶
func ConditionalClassExtensionNodeProcessor(node *Node)
func ConditionalExtensionNodeProcessor ¶
func ConditionalExtensionNodeProcessor(node *Node)
func RangeExtensionNodeProcessor ¶
func RangeExtensionNodeProcessor(node *Node)
func StringInterpolationNodeProcessor ¶
func StringInterpolationNodeProcessor(node *Node)
func TryEvaluateUsingContext ¶
func TryEvaluateUsingContext(ecs EvaluatorContextSource, evaluator Evaluator, inputStr string) (bool, interface{}, error)
Types ¶
type AttrStringInterpExtension ¶
type AttrStringInterpExtension struct {
// contains filtered or unexported fields
}
func (AttrStringInterpExtension) Apply ¶
func (asie AttrStringInterpExtension) Apply(node *Node, dependencies ExtensionDependencies, params EvaluatorParams) (*Node, []*Node, error)
type ConditionalClassExtension ¶
type ConditionalClassExtension struct {
// contains filtered or unexported fields
}
func (*ConditionalClassExtension) Apply ¶
func (ce *ConditionalClassExtension) Apply(node *Node, dependencies ExtensionDependencies, params EvaluatorParams) (*Node, []*Node, error)
type ConditionalExtension ¶
type ConditionalExtension struct {
// contains filtered or unexported fields
}
func (*ConditionalExtension) Apply ¶
func (ce *ConditionalExtension) Apply(node *Node, dependencies ExtensionDependencies, params EvaluatorParams) (*Node, []*Node, error)
type DefaultExtensionDependencies ¶
type DefaultExtensionDependencies struct {
// contains filtered or unexported fields
}
func (*DefaultExtensionDependencies) Get ¶
func (ed *DefaultExtensionDependencies) Get(dependencyKey DependencyKey) interface{}
type DependencyKey ¶
type DependencyKey string
const (
EvaluatorExtDepKey DependencyKey = "evaluator"
)
type Evaluator ¶
type Evaluator interface { EvaluateBool(input string, params EvaluatorParams) (bool, error) EvaluateString(input string, params EvaluatorParams) (string, error) Evaluate(input string, params EvaluatorParams) (interface{}, error) }
type EvaluatorContextSource ¶
type EvaluatorContextSource interface { GetContextParams() []EvaluatorParams SetParentEvaluatorContextSource(ecs EvaluatorContextSource) }
type EvaluatorParams ¶
type EvaluatorParams map[string]interface{}
type Extension ¶
type Extension interface {
Apply(node *Node, dependencies ExtensionDependencies, params EvaluatorParams) (*Node, []*Node, error)
}
type ExtensionDependencies ¶
type ExtensionDependencies interface {
Get(dependencyKey DependencyKey) interface{}
}
func NewDefaultExtensionDependencies ¶
func NewDefaultExtensionDependencies() ExtensionDependencies
type Node ¶
func CreateNode ¶
func ParseNodes ¶
func ParseNodes(rdr io.Reader, opts ...ParserOptionFunc) ([]*Node, error)
func (*Node) AddAttribute ¶
func (*Node) AddExtension ¶
func (*Node) AppendChild ¶
func (*Node) ApplyExtensions ¶
func (n *Node) ApplyExtensions(dependencies ExtensionDependencies, params EvaluatorParams) (*Node, []*Node, error)
func (Node) Attributes ¶
func (Node) ContextParams ¶
func (n Node) ContextParams() EvaluatorParams
func (Node) FirstChild ¶
func (*Node) GetContextParams ¶
func (n *Node) GetContextParams() []EvaluatorParams
func (Node) NextSibling ¶
func (Node) NextSiblings ¶
func (Node) PreviousSibling ¶
func (*Node) RemoveAttribute ¶
func (*Node) RemoveChild ¶
func (*Node) ReplaceAttribute ¶
func (*Node) SetContextParams ¶
func (n *Node) SetContextParams(contextParams EvaluatorParams)
func (*Node) SetParentEvaluatorContextSource ¶
func (n *Node) SetParentEvaluatorContextSource(ecs EvaluatorContextSource)
type NodeProcessorFunc ¶
type NodeProcessorFunc func(*Node)
type ParserOptionFunc ¶
type ParserOptionFunc func(*Parser)
func NodeProcessorsParserOption ¶
func NodeProcessorsParserOption(npfs ...NodeProcessorFunc) ParserOptionFunc
type RangeEvaluatorParams ¶
type RangeEvaluatorParams []EvaluatorParams
func RangeParams ¶
func RangeParams(params ...EvaluatorParams) RangeEvaluatorParams
type RangeExtension ¶
type RangeExtension struct {
// contains filtered or unexported fields
}
func (*RangeExtension) Apply ¶
func (re *RangeExtension) Apply(node *Node, dependencies ExtensionDependencies, params EvaluatorParams) (*Node, []*Node, error)
type Template ¶
type Template struct {
// contains filtered or unexported fields
}
func CreateTemplateFromReader ¶
func CreateTemplateFromReader(reader io.Reader, parserOptions ...ParserOptionFunc) (*Template, error)
func Tplinate ¶
func Tplinate(tplReader io.Reader, parserOptions ...ParserOptionFunc) (*Template, error)
Example ¶
package main import ( "fmt" "log" "strings" "github.com/bmdelacruz/tplinator" "github.com/yosssi/gohtml" ) func main() { sampleHtml := ` <!doctype html> <html> <head> <title>Hello, world!</title> </head> <body> <form action="/test/{{go:uid}}" method="POST"> <input type="hidden" name="secret" value="{{go:secret}}"/> <input type="hidden" name="confcode" value="{{go:confcode}}"/> </form> <div class="container"> <h1 go-if="!shouldBeRendered">shouldBeRendered is equal to false</h1> <h2>shouldBeRendered is equal to true</h2> <div class="col-sm-4" go-if="shouldBeRendered"> <h3>shouldBeRendered is equal to true</h3> <h4>Username: {{go:username}}</h4> </div> <ul> <li go-range="indexes">{{go:index}}</li> </ul> </div> </body> </html> ` tpl, err := tplinator.Tplinate(strings.NewReader(sampleHtml)) if err != nil { log.Fatal(err) } docBytes, err := tpl.RenderBytes(map[string]interface{}{ "shouldBeRendered": true, "username": "bryanmdlx", "uid": "28473664853", "secret": "hImydjwKwixFa9yv08wRDw", "confcode": "Y3g1tT3sH-aHQ_rMJOSB7A", "indexes": tplinator.RangeParams( tplinator.EvaluatorParams{"index": "1"}, tplinator.EvaluatorParams{"index": "2"}, tplinator.EvaluatorParams{"index": "3"}, tplinator.EvaluatorParams{"index": "4"}, tplinator.EvaluatorParams{"index": "5"}, tplinator.EvaluatorParams{"index": "6"}, ), }) if err != nil { log.Fatal(err) } gohtml.Condense = true fmt.Printf("%s\n", gohtml.FormatBytes(docBytes)) }
Output: <!DOCTYPE html> <html> <head> <title>Hello, world!</title> </head> <body> <form action="/test/28473664853" method="POST"> <input type="hidden" name="secret" value="hImydjwKwixFa9yv08wRDw"/> <input type="hidden" name="confcode" value="Y3g1tT3sH-aHQ_rMJOSB7A"/> </form> <div class="container"> <h2>shouldBeRendered is equal to true</h2> <div class="col-sm-4"> <h3>shouldBeRendered is equal to true</h3> <h4>Username: bryanmdlx</h4> </div> <ul> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> <li>6</li> </ul> </div> </body> </html>
func (*Template) AddExtensionDependencies ¶
func (tpl *Template) AddExtensionDependencies(extDeps ...ExtensionDependencies)
func (*Template) Render ¶
func (tpl *Template) Render(params EvaluatorParams, writerFunc func(string)) error
func (*Template) RenderBytes ¶
func (tpl *Template) RenderBytes(params EvaluatorParams) ([]byte, error)
func (*Template) RenderString ¶
func (tpl *Template) RenderString(params EvaluatorParams) (string, error)
type TextStringInterpExtension ¶
type TextStringInterpExtension struct {
// contains filtered or unexported fields
}
func (TextStringInterpExtension) Apply ¶
func (tsie TextStringInterpExtension) Apply(node *Node, dependencies ExtensionDependencies, params EvaluatorParams) (*Node, []*Node, error)
Click to show internal directories.
Click to hide internal directories.