Macros Twig

Les macros permettent de simplifier les saisies récurrentes. Elles peuvent être simples/courtes ou concerner des pans entier de code.

Par convention, on range les macros dites génériques (valables pour plusieurs projets / transversales à un projet) dans le répertoire templates/inc/macros/. Celles qui correspondraient à un besoin spécifique pour une rubrique, une fonctionnalité, etc. doivent être rangées au plus près des templates où elles sont utilisées.

Tous les fichiers de macros doivent avoir un nom préfixé macro-*

Dans Scampi-Twig on trouve trois macros génériques (fichier templates/inc/macros/macro-generic.twig) :

  • une macro pour insérer un svg provenant du sprite svg
  • une macro pour insérer un lien externe (avec icône idoine)
  • une macro pour insérer un lien de téléchargement (et son icône)

Variable baseURL :

Les macros ne peuvent pas récupérer les variables globales (du moins pas dans la version nodejs). Par conséquent dès lors qu'une macro contient un chemin devant prendre en compte l'url de base, la variable {{ baseURL }} n'est pas directement interprétable, il faut la prévoir commme l'un des paramètres lors de sa création et la répéter lors de son emploi.

Exemple :

{# fichier de la macro #}
{% macro img(file, alt, baseURL) %}
  <img src="{{ baseURL }}assets/project/images/{{ file }}" alt="{{ alt|default('') }}">
{% endmacro %}

{# page ou template #}
{{ macro.img('scampi.png', 'Scampi', baseURL) }}

Par convention on passe toujours ce paramètre en dernier élément de la macro.

Les informations données dans cette rubrique correspondent à la version 1.0 release candidate de Scampi-Twig, encore en développement. Pour lire la documentation de la version courante (0.3.1), référez-vous au readme du dépôt.