Un fabfile pour Pelican

J'ai déjà dit tout le bien que je pensais de Fabric, et l'aide apportée par cette librairie pour l'utilisation de Pelican. Je publie ici la dernière version du fabfile que je me suis concocté, quelques explications suivent.

from fabric.api import *
import os
import fabric.contrib.project as project

def regen() :
    local('pelican -s /home/pierre/pelican/314r/settings.py -t /home/pierre/pelican/pelican-themes/314r /home/pierre/pelican/314r')

def publish() :
    local('lftp ftp://identifiant:motdepasse@lautre.net -e "mirror  -R  /home/pierre/pelican/314r/output/   /www/314r.fr/calepin ; quit"')

def article(titre) :
    if not os.path.exists('%s' % titre):
        fichier = open('%s' % titre, 'w')
        fichier.write('''Titre
#########################################################
:author: 314r
:date: 2011-00-00 00:00
:category:
:tags:  ''')
        fichier.close()

def commit() :
    local('bzr add')
    local('bzr commit -m "maj site"')

Les commandes

fab regen génère le site.

fab publish transfère le site via ftp chez mon hébergeur. J'utilise lftp comme client ftp en ligne de commande.

fab article:nom_du_fichier créé un nouveau fichier nommé nom_du_fichier avec la structure minimale d'un article pour Pelican (titre, auteur, date etc). Si le nom du fichier comprend l'extension .rst il sera pris en compte à la prochaine génération du site, sinon il joue le rôle de brouillon.

fab commit, j'utilise Bazaar pour gérer les versions du site.

Rien de très compliqué donc, mais des commandes qui permettent de fluidifier l'utilisation de Pelican et de moins s'user les doigts. Cet article était également un excellent prétexte pour vérifier le fonctionnement de Pygments, qui gère la coloration syntaxique du code ci-dessus. Visiblement, ça marche.

Article publié le mar. 17 mai 2011
Par 314r