Template-Engine
Template-Rendering mit CloudyKit Jet.
Entry-Typen
| Kind | Beschreibung |
|---|---|
template.set |
Template-Set mit gemeinsamer Konfiguration |
template.jet |
Einzelnes Template |
Template-Sets
Ein Set ist ein Namespace der verwandte Templates enthält. Templates innerhalb eines Sets teilen sich die Konfiguration und können sich gegenseitig über den Namen referenzieren.
- name: views
kind: template.set
Alle Konfiguration ist optional mit sinnvollen Standardwerten:
| Feld | Typ | Standard | Beschreibung |
|---|---|---|---|
engine.development_mode |
bool | false | Template-Caching deaktivieren |
engine.delimiters.left |
string | {{ |
Variablen-Öffnungstrennzeichen |
engine.delimiters.right |
string | }} |
Variablen-Schließtrennzeichen |
engine.globals |
map | - | Variablen verfügbar für alle Templates |
Templates
Templates gehören zu einem Set und werden für interne Auflösung über den Namen identifiziert.
- name: layout
kind: template.jet
set: app.views:views
source: |
<html>
<body>{{ yield content() }}</body>
</html>
- name: home
kind: template.jet
set: app.views:views
source: |
{{ extends "layout" }}
{{ block content() }}
<h1>Willkommen, {{ name }}</h1>
{{ end }}
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
set |
reference | Ja | Übergeordnetes Template-Set |
source |
string | Ja | Template-Inhalt |
Template-Auflösung
Templates referenzieren sich gegenseitig über Namen, nicht Registry-IDs. Die Auflösung funktioniert wie ein virtuelles Dateisystem innerhalb des Sets:
- Standardmäßig wird der Registry-Entry-Name (
entry.ID.Name) zum Template-Namen - Mit
meta.namefür benutzerdefinierte Benennung überschreiben:
- name: email-welcome-v2
kind: template.jet
set: app.emails:templates
meta:
name: welcome
source: |
{{ include "header" }}
Hallo {{ user }}!
Dieses Template wird als welcome im Set registriert, also verwenden andere Templates {{ include "welcome" }} oder {{ extends "welcome" }}.
Vererbung
Templates können Eltern-Templates erweitern und Blöcke überschreiben:
# Eltern definiert yield-Punkte
- name: base
kind: template.jet
set: app.views:views
source: |
<html>
<head><title>{{ yield title() }}</title></head>
<body>{{ yield body() }}</body>
</html>
# Kind erweitert und füllt Blöcke
- name: page
kind: template.jet
set: app.views:views
source: |
{{ extends "base" }}
{{ block title() }}Meine Seite{{ end }}
{{ block body() }}<p>Inhalt hier</p>{{ end }}
Lua-API
Siehe Template-Modul für Rendering-Operationen.