Routes

Les routes sont utilisées pour configurer la manière dont des requêtes spécifiques sont traitées. Une route fait correspondre le chemin de la requête et détermine quel contenu renvoyer à l’utilisateur. Par exemple, si le chemin de la requête est /tag/my-tag, la route détermine qu’elle doit afficher tag.twig et renvoyer la réponse à l’utilisateur.

Paramètres des routes : Console → Paramètres → Routes

Routes par défaut

Un nouveau blog aura ces 5 routes par défaut.

Nom de la route
Correspondance
Description
Modèle
Filtre d'articles
post
/{slug}
Correspond Ă  un article
post
page
/{slug}
Correspond Ă  une page
page,post
index
/
Page d'index principale (liste tous les articles)
index
tag
/tag/{slug}
Page d'index des tags (liste tous les articles d'un tag spécifique)
tag,index
tag.slug = {slug}
author
/author/{slug}
Page d'index des auteurs (liste tous les articles d'un auteur spécifique)
author,index
author.slug = {slug}

Le filtre d'articles est une expression FilterQ pour filtrer les articles. Ces articles filtrés seront envoyés au modèle en tant que variable _posts. Elle n'est utilisée que dans les pages de listing comme index, tag, author. Les paramètres correspondants ({slug}) peuvent être utilisés dans cette expression.

En plus de ces routes par défaut, il existe des routes spéciales, non personnalisables.

Correspondance
Description
/styles.css
Le fichier CSS principal du blog (généré automatiquement à partir des fichiers SCSS du thème)
/assets/{file_name}
Pour servir les fichiers du thème
/media/{file_name}
Pour servir les médias téléchargés
/p/{hash}
Pour prévisualiser les articles et les pages
/robots.txt
/sitemap.xml, /sitemap-pages.xml, /sitemap-posts-x.xml

Vous pouvez modifier la valeur de correspondance des routes post et page pour changer les permaliens des articles/pages. Par défaut, elle ressemble à /{slug}. Vous pouvez la remplacer par une structure différente pouvant inclure la date, le tag et/ou le nom de l’auteur. Voici quelques exemples.

  • /{year}/{month}/{day}/{slug}
  • /{tag}/{slug}
  • /{author}/{slug}

Notez que {slug} est toujours requis. Les espaces réservés suivants sont pris en charge.

Espaces réservés de base :

Espace réservé
Description
{slug}
Slug de l'article (toujours requis)
{tag}
Slug du premier tag de l'article
{author}
Slug de l'auteur de l'article

Veuillez noter que si vous utilisez {tag} (ou {author}) dans l'URL de l'article/page, tous les articles doivent avoir au moins un tag (ou auteur). Sinon, l'URL de l'article/page affichera une erreur 404.

Espaces réservés basés sur le temps :

  • ReprĂ©sentent la date de publication de l’article
  • Seul l’anglais en minuscules est pris en charge pour les noms de mois et de jours
Espace réservé
Description
Exemple
{year}
Année sur 4 chiffres
2022
{year_short}
Année sur 2 chiffres
99 ou 22
{month}
Numéro du mois sur 2 chiffres
01 ou 12
{month_number}
Numéro du mois sans zéro initial
1 Ă  12
{month_short}
Nom court du mois
jan Ă  dec
{month_long}
Nom complet du mois
january Ă  december
{day}
Jour sur 2 chiffres
01 Ă  31
{day_number}
Numéro du jour sans zéro initial
1 Ă  31
{day_year}
Jour ordinal de l'année
1 Ă  365
{day_week}
Jour de la semaine en 3 lettres
mon Ă  sun
{day_week_long}
Jour de la semaine
monday Ă  sunday
{day_week_number}
Jour de la semaine sous forme de nombre
de 1 Ă  7
{hour}
Heure du jour, au format 24h
00 Ă  23
{minute}
Minute de l'heure
00 Ă  59
{second}
Seconde de la minute
00 Ă  59
{unix}
Horodatage UNIX en secondes
1448406000

Personnaliser d'autres routes par défaut

Comme pour post et page, les routes, d’autres routes par défaut (index, tag, author, et search) sont personnalisables dans une certaine mesure. Voici quelques idées :

  • /author/{slug}→/creator/{slug}
  • /tag/{slug}→/category/{slug}
  • /→/blog

Veuillez noter que vous (ou les développeurs de thèmes) pouvez également ajouter des routes personnalisées en ajoutant des fichiers route-{route}.twig aux fichiers de modèle. Voir ici pour plus de détails.

Routes personnalisées

En plus des 6 routes par défaut, vous pouvez ajouter vos propres routes. Voici quelques exemples d’utilisation :

Veuillez noter que vous (ou les développeurs de thèmes) pouvez également ajouter des routes personnalisées en ajoutant des fichiers route-{route}.twig aux fichiers de modèle. Voir ici pour plus de détails.

Conflits de routes

En général, des conflits de routes peuvent survenir lorsque deux routes ou plus ont la même valeur de correspondance. Dans Hyvor Blogs, les routes post et page peuvent avoir les mêmes valeurs de correspondance. (Vous pouvez le constater, les valeurs par défaut de ces deux routes sont identiques : /{slug}). Cependant, les correspondances des autres routes ne peuvent pas avoir de valeurs dupliquées.

Suffixes et préfixes

Ces suffixes sont pris en charge :

  • /feed - Pour le flux atom (posts_filter doit ĂŞtre dĂ©fini)
  • /page/{page_number} - Pour la pagination

Les correspondances peuvent être préfixées par un code de langue. Consultez la section langues pour configurer plusieurs langues sur votre blog.

Créer un site web

Nous appelons généralement un site web « un blog » lorsqu’il contient des articles et que la page d’accueil les liste tous. C’est le comportement par défaut de Hyvor Blogs. Même en dehors de cet usage, vous pouvez utiliser Hyvor Blogs pour créer un site web général. Par exemple, vous pouvez créer une page de destination pour la page d’accueil, et placer votre blog dans le sous-répertoire /blog.

Plusieurs collections d'articles

Par défaut, votre blog possède une seule collection d’articles, et tous les articles seront listés sur la page d’index. Que faire si vous souhaitez avoir des collections séparées, par exemple des articles de blog et des épisodes de podcast dans le blog ? Vous pouvez utiliser les routes et les tags pour y parvenir.

  • Nous ajoutons un tag podcast Ă  tous les articles de podcast.
  • Nous pouvons personnaliser la route index (/) et son modèle (index.twig) pour afficher un aperçu des articles de blog et des Ă©pisodes de podcast. Pour ce faire, vous devrez mettre Ă  jour index.twig et utiliser notre API de donnĂ©es pour rĂ©cupĂ©rer les articles sĂ©parĂ©ment.
  • Nous ajoutons deux nouvelles routes avec un nouveau modèle :
    • /blog -> pour lister les articles de blog (en utilisant le filtre tag.slug != podcast)
    • /podcast -> pour lister les Ă©pisodes de podcast (en utilisant le filtre tag.slug = podcast)