Les variables par défaut
Ecrit par Herve • 13 Nov 2019
Tiny SSG génère un fichier HTML par fichier markDown. Il met à disposition des variables utilisables dans les fichiers template, en complément de celles mentionnées dans le front-matter.
site
La variable site
est la liste de toutes les pages du site.
Elle est utile pour afficher une liste de posts. Par exemple, pour affiche la liste de toutes les pages dont le template est Post
, on peut écrire :
{% for page_item in site if page_item.layout=="Post" %}
<h1> {{ page_item.titre }} <h1>
<p> {{ page_item.content | safe }}
{% endfor %}
page
La variable page
est la page courante qui est en cours d'affichage.
On accède à ses variables prédéfinies ou définies dans le front-matter ainsi :
<!-- Affichage de l'url de la page et de son titre -->
<a href ="{{ page.slug }}"> {{ page.titre}} </a>
slug
La variable page
est l'URL de la page statique. Elle correspond au nom du répertoire dans lequel se situe le fichier md.
content
La variable content
est le contenu du fichier MarkDown transformé en HTML.
<!-- Affichage du contenu de la page : le HTML construit à partir du MarkDown -->
<!-- Le filtre "safe" indique que le HTML généré est sûr -->
{{ page.content | safe }}
id
La variable id
est Le nom du fichier MarkDown sans l'extension .md
.
createdDate
La variable createdDate
est est la date (système) de dernière modification du fichier MarkDown.
Elle est au format numérique. Elle donne une date exprimée en nombre de secondes écoulées depuis l'heure 0. Sur UNIX, l'heure 0 est 01/01/1970.
Cette valeur numérique est intéressante pour ordonner une liste d'articles, du plus récent au plus ancien par exemple :
{% for page_item in site|sort(attribute='createdDate', reverse=True) if page_item.layout=="Post" %}
createdDateTxt
La variable createdDateTxt
est la date createdDate
au format texte : jour mois (en 3 lettres) et années.
Ce format est modifiable dans le fichier ssg.py :
self.createdDate = strftime("%d %b %Y", gmtime(getmtime(md_file)))
Les images
Tous les sous-répertoires voisins du fichier MarkDown sont réputés contenir des images. Chaque sous-répertoire créera une variable comportant la liste des images du sous répertoire.
Par exemple, la struture de fichier ci-dessous :
myPage
|--- text.md
|--- carousel
| |--- image1.jpg
| |--- image2.jpg
| |--- image3.jpg
|--- gallery
|--- gal1.jpg
|--- gal2.jpg
TinySSG va mettre à disposition 2 variables :
carousel
qui sera une liste de 3 images (image1.jpg
,image2.jpg
,image3.jpg
), etgallery
qui sera une liste de 2 images (gal1.jpg
,gal2.jpg
).
Pour les utiliser dans le fichier template, on invoquera :
{% for im in page.gallery %}
<!-- use lazy loading -->
<img class="lozad" src="blur/{{im}}" data-src="original/{{im}}">
{% endfor %}