Template-Engine
Rendern Sie dynamische Inhalte mit der Jet Template Engine. Erstellen Sie HTML-Seiten, E-Mails und Dokumente mit Template-Vererbung und Includes.
Für Template-Set-Konfiguration siehe Template-Engine.
Laden
local templates = require("templates")
Template-Sets abrufen
Holen Sie ein Template-Set anhand der Registry-ID, um mit dem Rendern zu beginnen:
local set, err = templates.get("app.views:emails")
if err then
return nil, err
end
-- Set verwenden...
set:release()
| Parameter | Typ | Beschreibung |
|---|---|---|
id |
string | Template-Set-Registry-ID |
Gibt zurück: Set, error
Templates rendern
Rendern Sie ein Template nach Namen mit Daten:
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, err
end
set:release()
return html
| Parameter | Typ | Beschreibung |
|---|---|---|
name |
string | Template-Name innerhalb des Sets |
data |
table | An Template zu übergebende Variablen (optional) |
Gibt zurück: string, error
Set-Methoden
| Methode | Gibt zurück | Beschreibung |
|---|---|---|
render(name, data?) |
string, error |
Template mit Daten rendern |
release() |
boolean |
Set an Pool zurückgeben |
Jet-Syntax-Referenz
Jet verwendet {{ }} für Ausdrücke und Kontrollstrukturen, {* *} für Kommentare.
Variablen
{{ user.name }}
{{ user.email }}
{{ items[0].price }}
Bedingungen
{{ if order.shipped }}
<p>Shipped!</p>
{{ else if order.processing }}
<p>Processing...</p>
{{ else }}
<p>Received.</p>
{{ end }}
Schleifen
{{ range items }}
<li>{{ .name }} - ${{ .price }}</li>
{{ end }}
{{ range i, item := items }}
<p>{{ i }}. {{ item.name }}</p>
{{ end }}
Vererbung
{* Parent: layout.jet *}
<html>
<head><title>{{ yield title() }}</title></head>
<body>{{ yield body() }}</body>
</html>
{* Child: page.jet *}
{{ extends "layout" }}
{{ block title() }}My Page{{ end }}
{{ block body() }}<p>Content</p>{{ end }}
Includes
{{ include "partials/header" }}
<main>Content</main>
{{ include "partials/footer" }}
Fehler
| Bedingung | Art | Wiederholbar |
|---|---|---|
| Leere ID | errors.INVALID |
nein |
| Leerer Template-Name | errors.INVALID |
nein |
| Berechtigung verweigert | errors.PERMISSION_DENIED |
nein |
| Template nicht gefunden | errors.NOT_FOUND |
nein |
| Render-Fehler | errors.INTERNAL |
nein |
| Set bereits freigegeben | errors.INTERNAL |
nein |
Siehe Fehlerbehandlung für die Arbeit mit Fehlern.