Motor de Plantillas
Motor de Plantillas
Sección titulada «Motor de Plantillas»Renderizar contenido dinamico usando el motor de plantillas Jet. Construir paginas HTML, emails y documentos con herencia e inclusiones de plantillas.
Para configuración de conjunto de plantillas, consulte Motor de Plantillas.
local templates = require("templates")Adquirir Conjuntos de Plantillas
Sección titulada «Adquirir Conjuntos de Plantillas»Obtener un conjunto de plantillas por ID de registro para comenzar a renderizar:
local set, err = templates.get("app.views:emails")if err then return nil, errend
-- Usar el conjunto...
set:release()| Parámetro | Tipo | Descripción |
|---|---|---|
id | string | ID de registro del conjunto de plantillas |
Devuelve: Set, error
Renderizar Plantillas
Sección titulada «Renderizar Plantillas»Renderizar una plantilla por nombre con datos:
local set = templates.get("app.views:emails")
local html, err = set:render("welcome", { user = {name = "Alice", email = "alice@example.com"}, activation_url = "https://example.com/activate?token=abc"})
if err then set:release() return nil, errend
set:release()return html| Parámetro | Tipo | Descripción |
|---|---|---|
name | string | Nombre de plantilla dentro del conjunto |
data | table | Variables a pasar a la plantilla (opcional) |
Devuelve: string, error
Metodos de Set
Sección titulada «Metodos de Set»| Método | Devuelve | Descripción |
|---|---|---|
render(name, data?) | string, error | Renderizar plantilla con datos |
release() | boolean | Liberar conjunto de vuelta al pool |
Referencia de Sintaxis Jet
Sección titulada «Referencia de Sintaxis Jet»Jet usa {{ }} para expresiones y estructuras de control, {* *} para comentarios.
Variables
Sección titulada «Variables»{{ user.name }}{{ user.email }}{{ items[0].price }}Condicionales
Sección titulada «Condicionales»{{ if order.shipped }} <p>Shipped!</p>{{ else if order.processing }} <p>Processing...</p>{{ else }} <p>Received.</p>{{ end }}{{ range items }} <li>{{ .name }} - ${{ .price }}</li>{{ end }}
{{ range i, item := items }} <p>{{ i }}. {{ item.name }}</p>{{ end }}Herencia
Sección titulada «Herencia»{* Padre: layout.jet *}<html><head><title>{{ yield title() }}</title></head><body>{{ yield body() }}</body></html>
{* Hijo: page.jet *}{{ extends "layout" }}{{ block title() }}My Page{{ end }}{{ block body() }}<p>Content</p>{{ end }}Inclusiones
Sección titulada «Inclusiones»{{ include "partials/header" }}<main>Content</main>{{ include "partials/footer" }}Errores
Sección titulada «Errores»| Condición | Tipo | Reintentable |
|---|---|---|
| ID vacio | errors.INVALID | no |
| Nombre de plantilla vacio | errors.INVALID | no |
| Permiso denegado | errors.PERMISSION_DENIED | no |
| Plantilla no encontrada | errors.NOT_FOUND | no |
| Error de renderizado | errors.INTERNAL | no |
| Conjunto ya liberado | errors.INTERNAL | no |
Consulte Manejo de Errores para trabajar con errores.