Un générateur de site statique qui casse des briques. VenC est tellement rapide qu'il enfreint le principe de causalité et produit de l'énergie surunitaire ! |
Avant toute chose, comme nous l'avons vu précédemment, il faut que dans votre fichier de configuration
l'option disable_archives
soit configurée correctement.
Entre les balises header
que nous avons ajoutées à la fin du fichier header.html
, nous allons ajouter le code suivant en utilisant
le motif ForBlogArchives
:
.:ForBlogArchives::{value}:: :.
L'idée ici est d'itérer à travers la liste des archives de VenC, afin de récupérer la valeur de chaque élément de cette liste. Ici,
la valeur correspond au nom de l'archive courante. Ce nom est défini par le format de date que vous avez indiqué dans votre fichier
de configuration principale avec l'option archives_directory_name
.
Mais évidemment le code ci-dessus ne suffit pas, puisque ce que nous voulons c'est une liste HTML de liens vers les archives. Du coup, faisons plutôt quelque chose comme ça :
<ul id="blogarchives"> .:ForBlogArchives:: <li class="blogarchivesitem"> <a href="{path}" title="{value} ({count})">{value}</a> </li> :: :. </ul>
Ça n'a plus la même tête, hein ? En effet :
ul
pour avoir une liste HTML. L'identifiant de la balise ouvrante vous permettra plus tard d'en définir le style CSS.li
dans le premier argument de ForBlogArchives
. On a également assigné à cette balise une classe, qui vous permettra plus tard d'en définir le style CSS.li
, on a ajouté une balise a
pour pouvoir construire notre lien, porté par la variable path
. On remarque également que l'attribut title
affichera entre parenthèses le nombre de publications dans l'archive. Ça n'est pas obligatoire, mais c'est tout de même plus sympa, non ?a
on retrouve bien la variable value
, qui porte le nom de l'archive formatée comme indiqué plus haut.Avec ça, VenC va nous générer ce que nous voulons.
Cependant comme nous l'avons dit dans le chapitre 3.5.2.1, la bonne pratique
est de faire en sorte que le thème, si l'on veut le distribuer, s'adapte à la configuration du blog. En effet, si jamais les archives
sont désactivées, alors ForBlogArchives
ne produira rien et on se retrouvera
avec une paire de balises ul
vide. Ça n'est pas très propre. C'est d'autant plus problématique quand la liste est décorée avec un titre ou est
contenue dans une boîte.
Pour pallier ces problèmes, VenC permet de tester la configuration du projet
afin d'adapter le thème à la situation avec le motif IfBlogMetadataIsTrue
.
.:IfBlogMetadataIsTrue::disable_archives:: <!-- Bloc HTML à conserver si la variable vaut `true` --> :: <!-- Bloc HTML à conserver si la variable vaut `false` --> :.
Ici, ce qu'on teste c'est l'option disable_archives
avec IfBlogMetadataIsTrue
.
Si elle vaut true
, alors on ne fait rien. Sinon, on met le bloc de code
que nous avons écrit tout à l'heure, ce qui nous donne au final :
.:IfBlogMetadataIsTrue::disable_archives:: <!-- Pas de liste d'archives à afficher --> :: <ul id="blogarchives"> .:ForBlogArchives:: <li class="blogarchivesitem"> <a href="{path}" title="{value} ({count})">{value}</a> </li>: :: :. </ul> :.
Avec ça, on est vraiment bon et le thème que vous construisez sera modulable et capable de s'adapter à vos besoins, mais aussi à la configuration de ceux qui utiliseront votre thème !