Sur cette page
Filtres
Les variables peuvent être modifiées par filtres. Les filtres sont séparés de la variable par un symbole de barre verticale (|). Plusieurs filtres peuvent être chaînés. La sortie d’un filtre est appliquée au suivant.
{{ page.title|truncate(25)|capitalize }}
filter_by
Filtre une collection de pages par nom/valeur de variable.
{{ collection|filter_by(variable, value) }}
Exemple:
{{ pages|filter_by('section', 'blog') }}
filter
Pour les cas plus complexes, vous devez utiliser le filter natif de Twig.
Exemple:
{% pages|filter(p => p.virtual == false and p.id not in ['page-1', 'page-2']) %}
markdown_to_html
Convertit une chaîne Markdown en HTML.
{{ markdown|markdown_to_html }}
{% apply markdown_to_html %}
{# Markdown here #}
{% endapply %}
Exemples :
{% set markdown = '**This is bold text**' %}
{{ markdown|markdown_to_html }}
{% apply markdown_to_html %}
**This is bold text**
{% endapply %}
toc
Extrait uniquement les en-têtes correspondant au selectors donné (h2, h3, etc.), ou à ceux définis dans la configuration pages.body.toc s'ils ne sont pas spécifiés.
Le paramètre format définit le format de sortie : html ou json.
Le paramètre url est utilisé pour créer des liens vers des titres.
{{ markdown|toc(format, selectors, url) }}
Exemples :
{{ page.body|toc }}
{{ page.body|toc('html') }}
{{ page.body|toc(selectors=['h2']) }}
{{ page.body|toc(url=url(page)) }}
json_decode
Convertit une chaîne JSON en tableau.
{{ json|json_decode }}
Exemple:
{% set json = '{"foo": "bar"}' %}
{% set array = json|json_decode %}
{{ array.foo }}
yaml_parse
Convertit une chaîne YAML en tableau.
{{ yaml|yaml_parse }}
Exemple:
{% set yaml = 'key: value' %}
{% set array = yaml|yaml_parse %}
{{ array.key }}
slugify
Convertit une chaîne en slug.
{{ string|slugify }}
u
Le filtre u enveloppe un texte dans un objet Unicode (une instance Symfony UnicodeString) qui expose des méthodes pour « manipuler » la chaîne.
Exemple:
{{ 'cecil_string with twig'|u.camel.title }}
CecilStringAvecTwig
singular
Le filtre singular transforme un nom donné au pluriel en sa version singulière.
{{ string|singular(locale)}}
Exemple:
{# English (en) rules are used by default #}
{{ 'partitions'|singular }}
partition
{{ 'partitions'|singular('fr') }}
partition
plural
Le filtre plural transforme un nom donné au singulier en sa version plurielle.
{{ string|plural(locale)}}
Exemple:
{# English (en) rules are used by default #}
{{ 'animal'|plural }}
animaux
{{ 'animal'|plural('fr') }}
animaux
excerpt
Tronque une chaîne et ajoute un suffixe.
{{ string|excerpt(length, suffix) }}
| Options | Descriptif | Tapez | Par défaut |
|---|---|---|---|
| longueur | Tronque après ce nombre de caractères. | entier | 450 |
| suffixe | Ajoute des caractères. | chaîne | … |
Exemples :
{{ variable|excerpt }}
{{ variable|excerpt(250, '...') }}
excerpt_html
Lit les caractères avant ou après la balise <!-- excerpt --> ou <!-- break -->.
Voir Documentation de contenu pour plus de détails.
{{ string|excerpt_html({separator, capture}) }}
| Options | Descriptif | Tapez | Par défaut |
|---|---|---|---|
| séparateur | Chaîne à utiliser comme séparateur. | chaîne | excerpt|break |
| capturer | Pièce à capturer, before ou after le séparateur. |
chaîne | before |
Exemples :
{{ variable|excerpt_html }}
{{ variable|excerpt_html({separator: 'excerpt|break', capture: 'before'}) }}
{{ variable|excerpt_html({capture: 'after'}) }}
highlight
Met en surbrillance une chaîne de code avec highlight.php.
{{ code|highlight(language) }}
Exemples :
{{ '<?php echo $highlighted->value; ?>'|highlight('php') }}
preg_split
Divise une chaîne en un tableau à l'aide d'une expression régulière.
{{ string|preg_split(pattern, limit) }}
Exemple:
{% set headers = page.content|preg_split('/<br[^>]*>/') %}
preg_match_all
Effectue une correspondance d'expression régulière et renvoie le groupe pour toutes les correspondances.
{{ string|preg_match_all(pattern, group) }}
Exemple:
{% set tags = page.content|preg_match_all('/<[^>]+>(.*)<\/[^>]+>/') %}
hex_to_rgb
Convertit une couleur hexadécimale en RVB.
{{ color|hex_to_rgb }}