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 ! |
Dans les chapitres précédents, nous avons vu comment créer l'entête de votre site. Nous allons maintenant voir comment créer le corps de vos publications.
La première chose à faire est de modifier ou créer le fichier entry.html
et d'y ajouter les balises HTML qui contiendront votre contenu :
<div class="entry" id="entry.:GetEntryID:."> </div>
Certains modules JavaScript nécessitent que le bloc div
ait pour classe la valeur "entry
", c'est donc une bonne pratique
de définir la classe du conteneur de cette façon. Rien ne vous empêche cependant d'ajouter d'autres classes si vous le souhaitez.
Il est également de bon ton, mais pas obligatoire, d'assigner au conteneur un identifiant unique basé sur celui de votre publication. C'est ce que permet de faire
GetEntryID
.
Vous pouvez également ajouter le titre de la publication. Quelque chose comme le code suivant devrait faire l'affaire :
<div class="entry" id="entry.:GetEntryID:."> <h1><a class="entry_title" href=".:GetEntryPath:.">.:GetEntryTitle:.</a></h1> </div>
Ici on utilise deux nouveaux motifs :
GetEntryPath
: permet de récupérer le chemin de la publication.GetEntryTitle
: permet de récupérer le titre de votre publication.Se pose maintenant la question de savoir quand afficher le résumé de votre billet et quand afficher son contenu complet. Il y a trois motifs à considérer pour ça :
GetEntryContent
: permet de récupérer systématiquement le contenu de votre publication.GetEntryPreview
: permet de récupérer systématiquement le résumé de votre publication.PreviewIfInThreadElseContent
: permet de récupérer conditionnellement le résumé ou le contenu de votre
publication. La condition étant de savoir si la page courante à générer se trouve dans un
thread ou s'il s'agit de la page de la publication elle-même. En effet, vous pourriez vouloir afficher uniquement le résumé de vos publications, à moins d'accéder à la publication elle-même.La plupart du temps vous utiliserez GetEntryContent
et c'est ce que nous ferons dans notre exemple. Nous aurions donc quelque
chose comme ceci :
<div class="entry" id="entry.:GetEntryID:."> <h1><a class="entry_title" href=".:GetEntryPath:.">.:GetEntryTitle:.</a></h1> <div class="entry_content"> .:GetEnTryContent:. </div> </div>
Pas de grande modification, si ce n'est l'ajout du motif et d'une paire de balises div
pour pouvoir plus tard personnaliser le style CSS de notre publication.
Voilà pour une version minimale du fichier entry.html
.
Dans les chapitres suivants, nous verrons des modifications plus avancées pour personnaliser ce fichier selon vos besoins.
Selon la façon dont vous souhaitez afficher votre site et son contenu, vous pourriez vouloir rendre visible la
date de publication de votre billet. Pour ce faire, on utilise le motif
GetEntryDate
.
Par exemple, ligne 3 :
1 2 3 4 5 6 7 | <div class="entry" id="entry.:GetEntryID:."> <h1><a class="entry_title" href=".:GetEntryPath:.">.:GetEntryTitle:.</a></h1> <span class="entry-date">.:GetEntryDate:.</span> <div class="entry_content"> .:GetEnTryContent:. </div> </div> |
Souvent, les publications sont regroupées par période de dates de publication (par mois par exemple). Il est possible d'accéder à ces archives. Une bonne pratique est donc d'associer la date ainsi affichée
à un lien vers l'archive correspondante. On utilise pour ça GetEntryArchivePath
.
En changeant la ligne 3 en conséquence, on a alors par exemple :
1 2 3 4 5 6 7 | <div class="entry" id="entry.:GetEntryID:."> <h1><a class="entry_title" href=".:GetEntryPath:.">.:GetEntryTitle:.</a></h1> <span class="entry-date"><a href=".:GetEntryArchivePath:.">.:GetEntryDate:.</a></span> <div class="entry_content"> .:GetEnTryContent:. </div> </div> |
Comme pour les archives, une publication peut appartenir à des catégories. Naturellement, vous pouvez afficher ces catégories dans votre publication. La récupération et l'affichage de ces catégories fonctionnent exactement de la même façon que dans le chapitre 3.5.2.3, mais au lieu d'utiliser ces motifs :
On utilisera les motifs suivants :
En effet, ces deux motifs récupèrent uniquement les catégories associées à la publication courante. La plupart du temps, dans
une publication, on utilisera plutôt GetFlattenedEntryCategories
.
En effet, afficher l'arbre des catégories spécique à la publication n'est pertinent que dans des cas très spécifiques.
En se basant sur le chapitre 3.5.2.3 et sur ce que nous avons vu précédemment, nous aurions alors quelque chose ça :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | <div class="entry" id="entry.:GetEntryID:."> <h1><a class="entry_title" href=".:GetEntryPath:.">.:GetEntryTitle:.</a></h1> <span class="entry-date"><a href=".:GetEntryArchivePath:.">.:GetEntryDate:.</a></span> .:IfBlogMetadataIsTrue::disable_categories:: <!-- Bloc HTML à conserver si la variable vaut true --> :: .:IfBlogMetadataIsTrue::display_entry_categories_as_list:: <ul id="entrycategorieslist"> .:GetFlattenedEntryCategories:: <li class="entrycategoriesitem"> <a href="{path}" title="{value} ({count})">{value}</a> </li> :: :. </ul> :. .:IfBlogMetadataIsTrue::display_entry_categories_as_tree:: .:GetEntryCategoriesTree:: <ul>:: <li><a href="{path}" title="{count} publications">{value}</a>:: {childs}</li>:: </ul> :. :. :. <div class="entry_content"> .:GetEnTryContent:. </div> </div> |
Quelques remarques :
display_entry_categories_as_list
et display_entry_categories_as_tree
qui doivent se trouver dans le fichier de configuration du blog. Or, nous pouvons imaginer
que l'on veuille contrôler l'affichage de nos catégories depuis la publication elle-même, c'est-à-dire en testant une métadonnée de la publication. Pour ce faire, on utiliserait par
exemple le motif IfEntryMetadataIsTrue
à la place de IfBlogMetadataIsTrue
.