Mustache ist ein logikloses Template-System, das 2009 von Chris Wanstrath (Mitbegründer von GitHub) veröffentlicht wurde. Der Name kommt von den geschweiften Klammern {{ }}, die an einen Schnurrbart (englisch mustache) erinnern. Mustache kennt keine if-else- oder for-Kontrollstrukturen — die Logik steckt vollständig in den Daten.
Syntax
{{name}} <!-- Variable -->
{{{html}}} <!-- unescaptes HTML -->
{{#liste}} <!-- Section: Schleife oder Bedingung -->
{{.}}
{{/liste}}
{{^leer}} <!-- Inverted Section -->
Keine Einträge
{{/leer}}
{{> partial}} <!-- Partial -->
{{! Kommentar}}
Sections
Eine Section {{#name}}...{{/name}} rendert ihren Inhalt abhängig vom Wert der Daten: Bei einer Liste wird der Block für jedes Element wiederholt, bei einem Wahrheitswert wie ein if. Eine Inverted Section {{^name}} rendert nur, wenn der Wert fehlt oder falsch ist. Das gilt als eleganter Ersatz für Kontrollstrukturen.
Mustache-Implementierungen existieren für rund 30 Sprachen — die Syntax ist damit überall gleich. Verwandt: Handlebars-Befehle (Superset mit Helpers), Pug-Befehle und JavaScript-Befehle.