Documentation ¶
Index ¶
- func GoTemplateEngine(input string, data map[string]interface{}, helpers map[string]interface{}) (string, error)
- func MDTemplateEngine(input string, data map[string]interface{}, helpers map[string]interface{}) (string, error)
- type Data
- type Engine
- func (e *Engine) Auto(ctx context.Context, i interface{}) Renderer
- func (e *Engine) Download(ctx context.Context, name string, r io.Reader) Renderer
- func (e *Engine) Func(s string, fn RendererFunc) Renderer
- func (e *Engine) HTML(names ...string) Renderer
- func (e *Engine) JSON(v interface{}) Renderer
- func (e *Engine) JavaScript(names ...string) Renderer
- func (e *Engine) Plain(names ...string) Renderer
- func (e *Engine) String(s string, args ...interface{}) Renderer
- func (e *Engine) Template(c string, names ...string) Renderer
- func (e *Engine) XML(v interface{}) Renderer
- type ErrRedirect
- type EventSource
- type Helpers
- type Options
- type Renderer
- func Auto(ctx context.Context, i interface{}) Renderer
- func Download(ctx context.Context, name string, r io.Reader) Renderer
- func Func(s string, fn RendererFunc) Renderer
- func HTML(names ...string) Renderer
- func JSON(v interface{}) Renderer
- func JavaScript(names ...string) Renderer
- func Plain(names ...string) Renderer
- func String(s string, args ...interface{}) Renderer
- func Template(c string, names ...string) Renderer
- func XML(v interface{}) Renderer
- type RendererFunc
- type TemplateEngine
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Data ¶
type Data map[string]interface{}
Data type to be provided to the Render function on the Renderer interface.
type Engine ¶
type Engine struct {
Options
}
Engine used to power all defined renderers. This allows you to configure the system to your preferred settings, instead of just getting the defaults.
func New ¶
New render.Engine ready to go with your Options and some defaults we think you might like.
func (*Engine) Auto ¶
Auto figures out how to render the model based information about the request and the name of the model. Auto supports automatic rendering of HTML, JSON, and XML. Any status code give to Context#Render between 300 - 400 will be respected by Auto. Other status codes are not.
# Rules for HTML template lookup: GET /users - users/index.html GET /users/id - users/show.html GET /users/new - users/new.html GET /users/id/edit - users/edit.html POST /users - (redirect to /users/id or render user/new.html) PUT /users/edit - (redirect to /users/id or render user/edit.html) DELETE /users/id - redirect to /users
func (*Engine) Download ¶
Download renders a file attachment automatically setting following headers:
Content-Type Content-Length Content-Disposition
Content-Type is set using mime#TypeByExtension with the filename's extension. Content-Type will default to application/octet-stream if using a filename with an unknown extension.
Note: the purpose of this method is not serving static files but to support downloading of dynamically genrated data as a file. For example, you can use this method when you implement CSV file download feature for the result of a database query.
Do not use this method for large io.Reader. It could cause out of memory if the size of io.Reader is too big.
func (*Engine) Func ¶
func (e *Engine) Func(s string, fn RendererFunc) Renderer
Func renderer allows for easily building one of renderers using just a RendererFunc and not having to build a whole implementation of the Render interface.
func (*Engine) HTML ¶
HTML renders the named files using the 'text/html' content type and the github.com/gobuffalo/plush/v4 package for templating. If more than 1 file is provided the second file will be considered a "layout" file and the first file will be the "content" file which will be placed into the "layout" using "<%= yield %>". If no second file is provided and an `HTMLLayout` is specified in the options, then that layout file will be used automatically.
func (*Engine) JavaScript ¶
JavaScript renders the named files using the 'application/javascript' content type and the github.com/gobuffalo/plush package for templating. If more than 1 file is provided the second file will be considered a "layout" file and the first file will be the "content" file which will be placed into the "layout" using "<%= yield %>". If no second file is provided and an `JavaScriptLayout` is specified in the options, then that layout file will be used automatically.
func (*Engine) Plain ¶
Plain renders the named files using the 'text/plain' content type and the github.com/gobuffalo/plush package for templating. If more than 1 file is provided the second file will be considered a "layout" file and the first file will be the "content" file which will be placed into the "layout" using "<%= yield %>".
func (*Engine) String ¶
String renderer that will run the string through the github.com/gobuffalo/plush package and return "text/plain" as the content type.
func (*Engine) Template ¶
Template renders the named files using the specified content type and the github.com/gobuffalo/plush package for templating. If more than 1 file is provided the second file will be considered a "layout" file and the first file will be the "content" file which will be placed into the "layout" using "{{yield}}".
type ErrRedirect ¶
ErrRedirect indicates to Context#Render that this is a redirect and a template shouldn't be rendered.
func (ErrRedirect) Error ¶
func (ErrRedirect) Error() string
type EventSource ¶
type EventSource struct {
// contains filtered or unexported fields
}
EventSource is designed to work with JavaScript EventSource objects. see https://developer.mozilla.org/en-US/docs/Web/API/EventSource for more details
func NewEventSource ¶
func NewEventSource(w http.ResponseWriter) (*EventSource, error)
NewEventSource returns a new EventSource instance while ensuring that the http.ResponseWriter is able to handle EventSource messages. It also makes sure to set the proper response heads.
func (*EventSource) CloseNotify ¶
func (es *EventSource) CloseNotify() <-chan bool
CloseNotify return true across the channel when the connection in the browser has been severed.
func (*EventSource) Flush ¶
func (es *EventSource) Flush()
Flush messages down the pipe. If messages aren't flushed they won't be sent.
func (*EventSource) Write ¶
func (es *EventSource) Write(t string, d interface{}) error
type Options ¶
type Options struct { // HTMLLayout is the default layout to be used with all HTML renders. HTMLLayout string // JavaScriptLayout is the default layout to be used with all JavaScript renders. JavaScriptLayout string // TemplateFS is the fs.FS that holds the templates TemplatesFS fs.FS // AssetsFS is the fs.FS that holds the of the public assets the app will serve. AssetsFS fs.FS // Helpers to be rendered with the templates Helpers Helpers // TemplateEngine to be used for rendering HTML templates TemplateEngines map[string]TemplateEngine // DefaultContentType instructs the engine what it should fall back to if // the "content-type" is unknown DefaultContentType string }
Options for render.Engine
type Renderer ¶
Renderer interface that must be satisfied to be used with buffalo.Context.Render
func Auto ¶
Auto figures out how to render the model based information about the request and the name of the model. Auto supports automatic rendering of HTML, JSON, and XML. Any status code give to Context#Render between 300 - 400 will be respected by Auto. Other status codes are not.
# Rules for HTML template lookup: GET /users - users/index.html GET /users/id - users/show.html GET /users/new - users/new.html GET /users/id/edit - users/edit.html POST /users - (redirect to /users/id or render user/new.html) PUT /users/edit - (redirect to /users/id or render user/edit.html) DELETE /users/id - redirect to /users
func Download ¶
Download renders a file attachment automatically setting following headers:
Content-Type Content-Length Content-Disposition
Content-Type is set using mime#TypeByExtension with the filename's extension. Content-Type will default to application/octet-stream if using a filename with an unknown extension.
Note: the purpose of this function is not serving static files but to support downloading of dynamically genrated data as a file. For example, you can use this function when you implement CSV file download feature for the result of a database query.
Do not use this function for large io.Reader. It could cause out of memory if the size of io.Reader is too big.
func Func ¶
func Func(s string, fn RendererFunc) Renderer
Func renderer allows for easily building one of renderers using just a RendererFunc and not having to build a whole implementation of the Render interface.
func HTML ¶
HTML renders the named files using the 'text/html' content type and the github.com/gobuffalo/plush/v4 package for templating. If more than 1 file is provided the second file will be considered a "layout" file and the first file will be the "content" file which will be placed into the "layout" using "<%= yield %>".
func JSON ¶
func JSON(v interface{}) Renderer
JSON renders the value using the "application/json" content type.
func JavaScript ¶
JavaScript renders the named files using the 'application/javascript' content type and the github.com/gobuffalo/plush package for templating. If more than 1 file is provided the second file will be considered a "layout" file and the first file will be the "content" file which will be placed into the "layout" using "<%= yield %>".
func Plain ¶
Plain renders the named files using the 'text/html' content type and the github.com/gobuffalo/plush package for templating. If more than 1 file is provided the second file will be considered a "layout" file and the first file will be the "content" file which will be placed into the "layout" using "<%= yield %>".
func String ¶
String renderer that will run the string through the github.com/gobuffalo/plush package and return "text/plain" as the content type.
func Template ¶
Template renders the named files using the specified content type and the github.com/gobuffalo/plush package for templating. If more than 1 file is provided the second file will be considered a "layout" file and the first file will be the "content" file which will be placed into the "layout" using "{{yield}}".
type RendererFunc ¶
RendererFunc is the interface for the the function needed by the Func renderer.