Como empezar
- Instalar Buffalo
- Generando Nuevo Proyecto
- Estructura de Directorio
- Configuración
- Integracion de Herramientas
Gestión de Peticiones
- Enrutamiento
- Controlador de Acciones
- Recursos
- Contexto
- Vinculación de Peticiones
- Middleware
- Manejo de Errores
- Sesiones
- Cookies
Frontend
- Renderizado
- Plantillas
- Diseños
- Parciales
- Helpers
- Helpers Personalizados
- Mensajes Flash
- Formularios
- Recursos
Base de datos
- Iniciando con Pop
- Soda CLI
- Configuración de base de datos
- Integración con Buffalo
- Modelos
- Generadores
- Migraciones
- Fizz
- Mutaciones
- Consultas
- Consultas SQL nativo
- Callbacks
- Scoping
- Asociaciones y Relaciones
- Asociaciones Uno a Uno
- Asociaciones Uno a Muchos
Guías
- Aplicaciones API
- Carga de archivos
- Ejecuciones en segundo plano
- Mailers
- Tareas
- Plugins
- Local Authentication
- Third Party Authentication
- Eventos
- Go Modules
- Localización
- Registros
- Motores de Plantillas
- Pruebas
- Videos
Deploy
Motores de Plantillas
Guías
Motores de Plantillas
Mapeo de motores de plantillas por extensión
Desde 0.10.0
Anteriormente, podías definir una única implementacion de render.TemplateEngine
por render.Engine
. Esti se eliminó en favor de un mapa de tipo render.TemplateEngine
. Ahora puedes mapear una extensión de archivo a una implementación de render.TemplateEngine
. Esto significa, no solo, que puedes usar multiples motores plantillas en una aplicacion, sino que puedes encadenarlos.
Por ejemplo, si el archivo fuera foo.tmpl.html
, por defecto, se procesaría como una plantilla de Go y luego el resultado se enviará al motor de Plush.
Esta es una lista de implementaciones predeterminadas:
.html
- Procesados como una plantilla Plush, sin cambios con respecto a versiones anteriores..md
- Procesado como un Markdown, despues como una plantilla de Plush, sin cambios con respecto a versiones anteriores..tmpl
- Procesado como una plantilla de Go..js
- Procesado como una plantilla de Plush.
func init() {
r = render.New(render.Options{
// ...
TemplateEngines: map[string]render.TemplateEngine{
".tmpl": GoTemplateEngine,
},
// ...
})
}
func GoTemplateEngine(input string, data map[string]interface{}, helpers map[string]interface{}) (string, error) {
// since go templates don't have the concept of an optional map argument like Plush does
// add this "null" map so it can be used in templates like this:
// {{ partial "flash.html" .nilOpts }}
data["nilOpts"] = map[string]interface{}{}
t := template.New(input)
if helpers != nil {
t = t.Funcs(helpers)
}
t, err := t.Parse(input)
if err != nil {
return "", err
}
bb := &bytes.Buffer{}
err = t.Execute(bb, data)
return bb.String(), err
}