Template-Engine
Template-Engine
Abschnitt betitelt „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.
local templates = require("templates")Template-Sets abrufen
Abschnitt betitelt „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, errend
-- Set verwenden...
set:release()| Parameter | Typ | Beschreibung |
|---|---|---|
id | string | Template-Set-Registry-ID |
Gibt zurück: Set, error
Templates rendern
Abschnitt betitelt „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, errend
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
Abschnitt betitelt „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
Abschnitt betitelt „Jet-Syntax-Referenz“Jet verwendet {{ }} für Ausdrücke und Kontrollstrukturen, {* *} für Kommentare.
Variablen
Abschnitt betitelt „Variablen“{{ user.name }}{{ user.email }}{{ items[0].price }}Bedingungen
Abschnitt betitelt „Bedingungen“{{ if order.shipped }} <p>Shipped!</p>{{ else if order.processing }} <p>Processing...</p>{{ else }} <p>Received.</p>{{ end }}Schleifen
Abschnitt betitelt „Schleifen“{{ range items }} <li>{{ .name }} - ${{ .price }}</li>{{ end }}
{{ range i, item := items }} <p>{{ i }}. {{ item.name }}</p>{{ end }}Vererbung
Abschnitt betitelt „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
Abschnitt betitelt „Includes“{{ include "partials/header" }}<main>Content</main>{{ include "partials/footer" }}| 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.