Page en cours de rédaction.
Détails du fonctionnement de Pelican pour mon usage.
Les différentes sources sont disponibles sur mon Gitlab :
Mon thème est basé sur le thème simple fourni avec Pelican. Au fur et à mesure je le réécrit entièrement car certaines pages n'ont plus vraiment grand chose à voir avec celles d'origines. Les CSS sont 100% maison et ça se voit.
La configuration de Pelican est située dans deux fichiers :
pelicanconf.py
: configuration générale. C'est elle qui va être exécutée lors de la commande pelican -rl
.publishconf.py
: configuration pour la publication. Elle importe les variables utilisées dans pelicanconf.py
mais va écraser celles modifiées. Utilisée par le makefile
ou si le site est généré par la commande pelican content -s publishconf.py
.
J'utilise image-process
pour générer des miniatures.
Dans pelicanconf.py
:
IMAGE_PROCESS = { "thumb": { "type": "image", "ops": ["crop 0 0 50% 50%", "scale_out 150 150 True", "crop 0 0 150 150"], }, "article-image": { "type": "image", "ops": ["scale_in 600 600 True"], }, }
Sera créé dans chaque dossier d'images un sous dossier 'thumb' où seront placées les miniatures.
Pour générer une miniature dans un article :
[{: .image-process-article-image}
Avec un lien vers le fichier source :
[{: .image-process-article-image}]({static}/images/JACK.jpg)
Dans pelicanconf.py
:
# Markdown extensions MARKDOWN = { 'extension_configs': { 'markdown.extensions.extra': {}, 'markdown.extensions.meta': {}, 'markdown.extensions.codehilite': {}, # https://facelessuser.github.io/pymdown-extensions 'pymdownx.tilde':{}, 'pymdownx.blocks.caption':{}, 'pymdownx.blocks.details':{}, 'pymdownx.blocks.html':{}, 'pymdownx.fancylists':{}, }, 'output_format': 'html5', }
Il va être possible d'insérer dans pelicanconf.py
des variables qui vont être utilisée dans le template.
Par exemple :
SITE_PRESENTATION = 'Un super site qui poutre'
Pourra être insérer dans le template de la manière suivante via Jinja :
{% if SITE_PRESENTATION %} {{ SITE_PRESENTATION }} {% endif %}
Cela fonctionne aussi avec des listes, ici de liens :
LINKS = ( ("Super lien", 'https://supersite.tld'), ("Super NUL", 'https://sitepasbien.tld'), )
{% if LINKS %} <ul> <li><a href="{{ link }}">{{ name }}</a></li> </ul> {% endif %}