Quelques trucs pour Pelican

- Mise à jour le 2013-05-24

La version 3.0 de Pelican est sortie cet été. Pelican est le générateur statique de blog utilisé pour ce site et auquel je contribue lorsque j’en ai l’occasion. Ce billet regroupe quelques trucs et astuces pour faciliter son utilisation.

Archives par année

Pour regrouper les articles par année, dans la page des archives, l’astuce est d’utiliser la fonction groupby de jinja2 :

{% for year, list in dates|groupby('date.year')|reverse %}
  <h4>{{ year }}</h4>
  <ul>
  {% for article in list %}
  <li><a href='{{ article.url }}'>{{ article.title }}</a>,
    <time datetime="{{ article.date.isoformat() }}">{{ article.locale_date }}</time></li>
  {% endfor %}
  </ul>
{% endfor %}

Gestion des assets (css, js)

Une de mes contributions à pelican est l’intégration de webassets, bibliothèque qui permet gérer les assets (css, javascript): concaténation, minification, compilation … L’utilisation de webassets est décrite dans la doc. Par exemple, pour les css:

{% assets filters="cssmin", output="css/style.min.css", "css/inuit.css", "css/pygment-monokai.css", "css/main.css" %}
    <link rel="stylesheet" href="{{ SITEURL }}/{{ ASSET_URL }}">
{% endassets %}

va produire un fichier css minifié avec un tag de version pour la gestion du cache:

<link href="http://SITEURL/theme/css/style.min.css?b3a7c807" rel="stylesheet">

Ne pas générer certaines pages

Pour ne pas générer les pages pour chaque auteur (inutile quand il n’y a qu’un seul auteur):

AUTHOR_SAVE_AS = False

Pour ne pas générer les pages avec les liste de catégories et de tags:

DIRECT_TEMPLATES = ('index', 'archives')

Compilation automatique

Le module python watchdog permet de détecter les changements sur les fichiers pour relancer la compilation. On l’utilise avec la commande watchmedo:

watchmedo shell-command --patterns="*.rst" -i ".\#*" \
          --recursive --command="pelican -s pelican.conf.py" content

Note

Mise à jour 24/05/2013 Le mode autoreload de Pelican (pelican -r | --autoreload) surveille désormais le contenu ainsi que le fichier de configuration et le thème.

Commentaires