Templates sans logique Mustache et dérivés

Langages sans logique

  • En oppositions aux langages de templates riches : Django, Twig, Jinja, …

  • Aucun opérateur logique : for, if, while, variables, …

  • Deux principes fondateurs :

    • Les valeurs primitives (entiers, chaînes, …) sont remplacées dans le template,

    • Les listes sont itérées.

Exemples : Mustache, Hogan, Handlebars, …

Syntaxe Mustache

  • Remplacement

    Hello {{nom}} !
    
  • Section (l’opérateur le plus important)

    Bonjour {{#connu}} {{nom}} {{/connu}},
    
  • Section inversé

    {{^connu}} Présentez-vous {{/connu}}
    
  • Partiels (inclusion)

    {{> autre_template}}
    
  • Commentaires

    {{! ceci est un commentaire }}
    

Remplacement

Identique aux autres langages de templates

Hello {{nom}}!
Hello toto!

Étant donné le contexte nom"toto".

Sections

  • Remplacent le bloc if

    Hello
    {{#test}}
      {{nom}}
    {{/test}}
    
    Hello
      toto
    
  • Remplacent le bloc for

    Hello
    {{#liste}}
      {{nom}},
    {{/liste}}
    
    Hello
      titi
      tutu
      tata
    

Contexte :

  • testtrue,
  • nom"toto",
  • liste[ nom → "titi", nom → "tutu", nom → "tata"].

Sections

  • Remplacent les filtres

    {{#filtre}}
      Hello toto
    {{/filtre}}
    
      HELLO TOTO
    

Contexte :

  • filtrefunction(x) { return x.toUpperCase(); }

Sections inversées

  • Remplacent le else

    Hello
    {{^test}}
      {{nom}}
    {{/test}}
    
    Hello
      toto
    

    Contexte : testfalse, nom"toto",

Partiels

  • Importe et exécute autre_template.mustache,

    {{> autre_template }}
    
  • Inclusion dynamique, littérale, possibilité d’inclusions récursives.

Lectures

Modules pour node.js

Fork me on GitHub