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
}