cacatoès

Pelican

Pelican était le moteur en Python utilisé pour génerer ce site statique en HTML depuis des fichiers écrits en Markdown ou reST.

Pelican a l’avantage d’être packagé dans Debian et que son code est entretenu.

En revanche, il hérite de certaines orientations (usage type blog par défaut) qui rendent plus compliquée son utilisation en tant qu’outil minimal et généraliste.

Il faut en effet revenir sur certains réglages par défaut pour ne pas activer certaines fonctions (page d’auteurs, classement chronologique…). Tandis que d’autres réglages pour des choses simples comme la préservation du classement hiérarchique des fichiers semble possible mais beaucoup moins intuitive.

Plugins

La doc pour les plugins est bien résumée sur le Github.

Utilisés

  • ToC : il faut installer le paquet python-bs4
  • Pelican Page Hierarchy : Creates a URL hierarchy for pages that matches the filesystem hierarchy of their sources

Pour ToC, ça fonctionne bien.

Pour PPH, c’est un peu plus rigide : il impose un format pour PAGE_URL, et il impose de devoir créer les fichiers .md de chaque répertoire intermédiaire, sinon il se loupe sur le calcul des noeuds parents et enfants. C’est l’histoire de 10 lignes Python à réécrire.

Idées

Idées qui pourraient me servir :

  • Galeries photos
  • Custom article URLs - Adds support for defining different default URLs for different categories
  • Pin to top Pin Pelican’s article(s) to top “Sticky article”
  • Section number Adds section numbers for article headers, in the form of 2.3.3
  • Show Source Place a link to the source text of your posts.

Typogrify

Pour quelques améliorations esthétiques.

N’est pas activée par défaut, il faut installer la bibliothèque correspondante.

Notes CSS

Syntax Highlighting

Pelican utilise Pygments.

Il y a des thèmes CSS fournis dans la version distribuée par Debian, qu’il faut exporter.

:::bash
#!/bin/bash

CSSDIR="${HOME}/var/www/cacatoes.ml/themes/cacatoes/static/css"

pyglistf=$(mktemp)
pygmentize -L style | grep '*' | cut -c 3- | sed 's/\://g' > "$pyglistf"

cat "$pyglistf" | while read style
do
    pygmentize -S "${style}" -f html -a .highlight > "${CSSDIR}/${style}.css"
    echo "$style"
done

Les classes CSS produites sont très nombreuses. Ne prendre en charge que quelques langages simplifie peut-être la tâche si l’on souhaite styliser soi-même.

Liens