Filtrer les expressions régulières dans Jekyll
Jekyll est un générateur de site web statique.
Il permet, par exemple, de transformer vos fichiers écrits avec Markdown en un blog.
Un de ses avantages est de pouvoir étendre les fonctionnalités de bases.
Dans cet article, je vais vous partager un plugin que j’ai trouvé pour gérer les expressions régulières.
Contexte
Par défaut, Jekyll offre de nombreux filtres : https://shopify.github.io/liquid/filters/
Il est possible de :
- Calculer la valeur absolue d’une valeur numérique : abs
- Transformer la première lettre d’une phrase en majuscule : capitalize
- Encoder une chaîne de caractères dans une URL : url_encode
- …
Besoin
Les filtres disponibles par défaut permettent de gérer la majorité des cas.
Cependant, j’ai rapidement eu besoin de gérer les chaînes de caractères plus complexes.
Les expressions régulières étaient alors nécessaires, mais non disponibles de base.
Il faut donc étendre les fonctionnalités offertes par Jekyll.
Plugin
Il est possible d’ajouter des plugins personnels facilement.
Pour cela, il suffit d’ajouter un peu de code Ruby dans le répertoire _plugins
.
Dans notre cas, le fichier _plugins/regex-filter.rb
contient le code ci-dessous :
Ce code a été trouvé sur le forum stackoverflow : Jekyll filter for regex substitution in content?
Je ne suis pas un expert en Ruby, mais il est facilement compréhensible que ce code remplace l’expression régulière passée en paramètre par la dernière valeur de la fonction.
Utilisation
Pour activer ce filtre, il faut utiliser le nom de la fonction comme filtre.
Par exemple, le code ci-dessous supprimera le préfixe http://
ou https://
:
Il vous suffit maintenant de créer le fichier _plugins/regex-filter.rb
et d’utiliser le filtre pour gérer les expressions régulières.