Logo de Cecil Cecil
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 }}