3.5.1 Structure du thème

Un thème est composé d'un ensemble de fichiers que VenC charge en mémoire et dont il va se servir pour générer votre site. Nous allons créer dans cette première partie ces fichiers dont nous avons besoin et nous les remplirons au fur et à mesure dans la suite de ce tutoriel.

Pour commencer, placez-vous dans la racine de votre projet :

anonyme@anonymous /path/to/your/project $ ls
blog  blog_configuration.yaml  caches  entries  extra  includes  theme

Si vous n'avez pas déjà installé un thème, le répertoire theme devrait être vide.

Nous allons y créer à l'intérieur deux répertoires :

anonyme@anonymous ~ $ cd /path/to/your/project/theme
anonyme@anonymous /path/to/your/project/theme $ mkdir assets chunks

Ceci étant fait, on va créer les morceaux composant notre site dans le répertoire chunks :

touch \
    header.html \
    entry.html \
    footer.html \
    rssHeader.xml \
    rssEntry.xml \
    rssFooter.xml \
    atomHeader.xml \
    atomEntry.xml \
    atomFooter.xml \
    video.html \
    autio.html

Se pose donc maintenant la question de ce à quoi servent ces fichiers. On peut remarquer une récurrence dans le nom de ceux-là :

header.htmlentry.htmlfooter.html
rssHeader.xmlrssEntry.xmlrssFooter.xml
atomHeader.xmlatomEntry.xmlatomFooter.xml

Pour construire une page, VenC prend d'abord un entête (header.html) où il va chercher des motifs VenC à interpréter.

Puisque VenC est spécialisé dans la construction de blogs, il va ensuite mettre bout à bout le corps d'une publication (entry.html) pour chaque publication à afficher sur la page courante. Comme pour l'entête, VenC va y chercher des motifs à interpréter.

Enfin, une fois que toutes les publications de la page courante ont été rassemblées, VenC termine la construction de la page courante avec un pied de page (footer.html). Comme pour les autres morceaux, VenC cherchera des motifs à interpréter.

C'est la même logique qui est utilisée pour les flux Atom et RSS.

Voilà pour les neuf premiers fichiers.

Il reste maintenant video.html et audio.html : HTML5 permet d'inclure dans une page du contenu multimédia. Il existe un lecteur par défaut avec une configuration minimale, mais il est aussi possible de personnaliser ce lecteur pour avoir les fonctionnalités et l'apparence que vous souhaitez. C'est donc dans ces deux derniers fichiers que ça va se jouer.