3.5.3 Créer le corps de la publication

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 :

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 :

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.

3.5.3.1 Ajouter et utiliser la date de la publication

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>

3.5.3.2 Ajouter et utiliser les catégories de la publication

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 :