Vorlagen/Templating

HTML-Vorlagen

Eine HTML-Vorlage ist eine Text- / HTML-Datei mit externen Variablen, die in `` {…} `` eingeschlossen sind. Zusätzlich gibt es grundlegende Programmierkonstrukte (Bedingungen, Schleifen, Funktionen), mit denen die Vorlagenausgabe in Abhängigkeit von den Variablen geändert werden kann.

Für Projekt-, Layer- und Feature-Vorlagen stellt das System Objekte `` project``, `` layer`` und `` feature`` mit ihren jeweiligen Eigenschaften zur Verfügung, die beim Templating verwendet werden können. Hier ist ein Beispiel für eine Formatierungsvorlage von Features.

## <- diese Zeichenkombination markiert Kommentare
## Formatierung eines "city" Feature, welches die folgenden Attribute besitzt: "name", "area", "population"

@with feature.attributes as atts

    @if atts.population > 100000
        <div class="big-city">{atts.name | html}</div>
    @else
        <div class="small-city">{atts.name | html}</div>
    @end

    <p> <strong>Area:</strong> {atts.area} </p>
    <p> <strong>Population:</strong> {atts.population} </p>

@end

Eine vollständige Beschreibung aller verfügbaren Funktionen finden Sie in der Dokumentation zur Template-Engine <https://github.com/gebrkn/chartreux> _.

Konfigurationsvorlagen

Konfigurationsvorlagen (`` config.cx``) ähneln HTML Vorlagen und verwenden die selben Programmierkonstrukte. Ein wichtiger Unterschied ist, dass Variablen in zwei Klammern eingeschlossen werden müssen: `` {{…}} `` . Eine Konfigurationsvorlage sollte im JSON-Format vorliegen. Dann kann auch die “Shortcut” -JSON-Syntax verwendet werden (Dokumentation).

Beispiel einer Konfigurationsvorlage

## Konfiguration der Hauptanwendung

@include database-config.cx
@include server-config.cx

timeZone "Europe/Berlin"

## Wir haben vier Standorte, von denen jeder sein eigenes "root" Verzeichnis besitzt

web {
    sites [
        @each [1, 2, 3] as siteIndex
            {
                host "www{{siteIndex}}.mydomain.com"
                root.dir "/data/web/{{siteIndex}}"
                errorPage {
                    type "html"
                    path "/data/templates/error.cx.html"
                }
            }
        @end
    ]
}