Documentation ¶
Index ¶
- Constants
- Variables
- func BootstrapFormForHelper(model interface{}, opts tags.Options, help HelperContext) (template.HTML, error)
- func BootstrapFormHelper(opts tags.Options, help HelperContext) (template.HTML, error)
- func BuffaloRenderer(input string, data map[string]interface{}, helpers map[string]interface{}) (string, error)
- func FormForHelper(model interface{}, opts tags.Options, help HelperContext) (template.HTML, error)
- func FormHelper(opts tags.Options, help HelperContext) (template.HTML, error)
- func MarkdownHelper(body string, help HelperContext) (template.HTML, error)
- func Render(input string, ctx *Context) (string, error)
- func RenderR(input io.Reader, ctx *Context) (string, error)
- func RunScript(input string, ctx *Context) error
- type Context
- type HTMLer
- type HelperContext
- type HelperMap
- type Iterator
- type PartialFeeder
- type Template
Examples ¶
Constants ¶
const Version = "v3.7.32"
Variables ¶
var DefaultTimeFormat = "January 02, 2006 15:04:05 -0700"
DefaultTimeFormat is the default way of formatting a time.Time type. This a **GLOBAL** variable, so if you change it, it will change for templates rendered through the `plush` package. If you want to set a specific time format for a particular call to `Render` you can set the `TIME_FORMAT` in the context.
ctx.Set("TIME_FORMAT", "2006-02-Jan") s, err = Render(input, ctx)
var ErrUnknownIdentifier = errors.New("unknown identifier")
var Helpers = HelperMap{ // contains filtered or unexported fields }
Helpers contains all of the default helpers for These will be available to all templates. You should add any custom global helpers to this list.
Functions ¶
func BootstrapFormForHelper ¶
func BootstrapFormForHelper(model interface{}, opts tags.Options, help HelperContext) (template.HTML, error)
BootstrapFormForHelper implements a Plush helper around the bootstrap.NewFormFor function in the github.com/gobuffalo/tags/form/bootstrap package
func BootstrapFormHelper ¶
BootstrapFormHelper implements a Plush helper around the bootstrap.New function in the github.com/gobuffalo/tags/form/bootstrap package
func BuffaloRenderer ¶
func BuffaloRenderer(input string, data map[string]interface{}, helpers map[string]interface{}) (string, error)
BuffaloRenderer implements the render.TemplateEngine interface allowing velvet to be used as a template engine for Buffalo
func FormForHelper ¶
FormForHelper implements a Plush helper around the form.NewFormFor function in the github.com/gobuffalo/tags/form package
func FormHelper ¶
FormHelper implements a Plush helper around the form.New function in the github.com/gobuffalo/tags/form package
func MarkdownHelper ¶
func MarkdownHelper(body string, help HelperContext) (template.HTML, error)
Markdown converts the string into HTML using GitHub flavored markdown.
func Render ¶
Render a string using the given the context.
Example ¶
ExampleRender using `if`, `for`, `else`, functions, etc...
html := `<html> <%= if (names && len(names) > 0) { %> <ul> <%= for (n) in names { %> <li><%= capitalize(n) %></li> <% } %> </ul> <% } else { %> <h1>Sorry, no names. :(</h1> <% } %> </html>` ctx := NewContext() ctx.Set("names", []string{"john", "paul", "george", "ringo"}) s, err := Render(html, ctx) if err != nil { log.Fatal(err) } fmt.Print(s)
Output: <html> <ul> <li>John</li> <li>Paul</li> <li>George</li> <li>Ringo</li> </ul> </html>
Example (CustomHelperFunctions) ¶
html := `<p><%= one() %></p> <p><%= greet("mark")%></p> <%= can("update") { %> <p>i can update</p> <% } %> <%= can("destroy") { %> <p>i can destroy</p> <% } %> ` ctx := NewContext() ctx.Set("one", func() int { return 1 }) ctx.Set("greet", func(s string) string { return fmt.Sprintf("Hi %s", s) }) ctx.Set("can", func(s string, help HelperContext) (template.HTML, error) { if s == "update" { h, err := help.Block() return template.HTML(h), err } return "", nil }) s, err := Render(html, ctx) if err != nil { log.Fatal(err) } fmt.Print(s)
Output: <p>1</p> <p>Hi mark</p> <p>i can update</p>
Example (ForIterator) ¶
html := `<%= for (v) in between(3,6) { %><%=v%><% } %>` s, err := Render(html, NewContext()) if err != nil { log.Fatal(err) } fmt.Print(s)
Output: 45
Example (ScripletTags) ¶
html := `<% let h = {name: "mark"} let greet = fn(n) { return "hi " + n } %> <h1><%= greet(h["name"]) %></h1>` s, err := Render(html, NewContext()) if err != nil { log.Fatal(err) } fmt.Print(s)
Output: <h1>hi mark</h1>
Types ¶
type Context ¶
Context holds all of the data for the template that is being rendered.
func NewContextWith ¶
NewContextWith returns a fully formed context using the data provided.
func NewContextWithContext ¶
NewContextWithContext returns a new plush.Context given another context
func (*Context) New ¶
New context containing the current context. Values set on the new context will not be set onto the original context, however, the original context's values will be available to the new context.
type HelperContext ¶
type HelperContext struct { *Context // contains filtered or unexported fields }
HelperContext is an optional last argument to helpers that provides the current context of the call, and access to an optional "block" of code that can be executed from within the helper.
func (HelperContext) Block ¶
func (h HelperContext) Block() (string, error)
Block executes the block of template associated with the helper, think the block inside of an "if" or "each" statement.
func (HelperContext) BlockWith ¶
func (h HelperContext) BlockWith(ctx *Context) (string, error)
BlockWith executes the block of template associated with the helper, think the block inside of an "if" or "each" statement, but with it's own context.
func (HelperContext) HasBlock ¶
func (h HelperContext) HasBlock() bool
HasBlock returns true if a block is associated with the helper function
type HelperMap ¶
type HelperMap struct {
// contains filtered or unexported fields
}
HelperMap holds onto helpers and validates they are properly formed.
func NewHelperMap ¶
NewHelperMap containing all of the "default" helpers from "plush.Helpers".
func (*HelperMap) Add ¶
Add a new helper to the map. New Helpers will be validated to ensure they meet the requirements for a helper:
type Iterator ¶
type Iterator interface {
Next() interface{}
}
Iterator type can be implemented and used by the `for` command to build loops in templates
type PartialFeeder ¶
PartialFeeder is callback function should implemented on application side.
type Template ¶
type Template struct { Input string // contains filtered or unexported fields }
Template represents an input and helpers to be used to evaluate and render the input.
func NewTemplate ¶
NewTemplate from the input string. Adds all of the global helper functions from "Helpers", this function does not cache the template.
func (*Template) Clone ¶
Clone a template. This is useful for defining helpers on per "instance" of the template.