render

package
v0.6.0 Latest Latest
Warning

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

Go to latest
Published: Dec 29, 2016 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

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
	// contains filtered or unexported fields
}

Engine used to power all defined renderers. This allows you to configure the system to your prefered settings, instead of just getting the defaults.

func New

func New(opts Options) *Engine

New render.Engine ready to go with your Options and some defaults we think you might like. Engines have the following helpers added to them: https://github.com/gobuffalo/buffalo/blob/master/render/helpers/helpers.go#L1 https://github.com/markbates/inflect/blob/master/helpers.go#L3

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

func (e *Engine) HTML(names ...string) Renderer

HTML renders the named files using the 'text/html' content type and the github.com/aymerick/raymond 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) JSON

func (e *Engine) JSON(v interface{}) Renderer

JSON renders the value using the "application/json" content type.

func (*Engine) RegisterHelper

func (e *Engine) RegisterHelper(name string, helper interface{})

RegisterHelper adds a helper to a template with the given name. See github.com/aymerick/raymond for more details on helpers.

e.RegisterHelper("upcase", strings.ToUpper)

func (*Engine) RegisterHelpers

func (e *Engine) RegisterHelpers(helpers map[string]interface{})

RegisterHelpers adds helpers to a template with the given name. See github.com/aymerick/raymond for more details on helpers.

h := map[string]interface{}{
	"upcase": strings.ToUpper,
	"downcase": strings.ToLower,
}
e.RegisterHelpers(h)

func (*Engine) String

func (e *Engine) String(s string) Renderer

String renderer that will run the string through the github.com/aymerick/raymond package and return "text/plain" as the content type.

func (*Engine) Template

func (e *Engine) Template(c string, names ...string) Renderer

Template renders the named files using the specified content type and the github.com/aymerick/raymond 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) XML

func (e *Engine) XML(v interface{}) Renderer

XML renders the value using the "application/xml" content type.

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
	// TemplatesPath is the location of the templates directory on disk.
	TemplatesPath string
	// FileResolver will attempt to file a file and return it's bytes, if possible
	FileResolver resolvers.FileResolver
	// Helpers to be rendered with the templates
	Helpers map[string]interface{}
	// CacheTemplates reduced overheads, but won't reload changed templates.
	// This should only be set to true in production environments.
	CacheTemplates bool
}

Options for render.Engine

type Renderer

type Renderer interface {
	ContentType() string
	Render(io.Writer, Data) error
}

Renderer interface that must be satisified to be used with buffalo.Context.Render

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

func HTML(names ...string) Renderer

HTML renders the named files using the 'text/html' content type and the github.com/aymerick/raymond 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 String

func String(s string) Renderer

String renderer that will run the string through the github.com/aymerick/raymond package and return "text/plain" as the content type.

func Template

func Template(c string, names ...string) Renderer

Template renders the named files using the specified content type and the github.com/aymerick/raymond 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 XML

func XML(v interface{}) Renderer

XML renders the value using the "application/xml" content type.

type RendererFunc

type RendererFunc func(io.Writer, Data) error

RendererFunc is the interface for the the function needed by the Func renderer.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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