Créer son blog statique avec rstblog
Edit J'ai migré dorénavant ce blog vers Pelican
Après plusieurs recherches, je pense avoir trouvé mon moteur de blog, il se nomme rstblog, créé par Armin Ronacher, également auteur de Flask. Auparavant pour certains de mes autres sites, j'utilisais un CMS+Blog statique qui se nommait GetSimple. Mais allez savoir pourquoi, malgré la qualité de cette application web, je n'ai pas accroché ! Pendant mes recherches sur une alternative à Django, je suis tombé sur l'auteur de Flask qui a lui-même conçu son blog avec rstblog (normal me direz vous, il en est l'auteur :) )
rstblog c'est quoi
rstblog est un blog statique qui utilise la syntaxe rst (reStructuredText), celle-ci est sensiblement identique aux syntaxes wiki. Pourquoi avoir choisi rstblog ? Les raisons sont les suivantes :
- Sa simplicité et sa légèreté, on ne peut plus simple. L'écriture des billets se fait avec un simple éditeur de texte, pour ma part j'utilise emacs.
- Du full statique, pas de code exécuté sur le serveur (contrairement à GetSimple).
- Le générateur est en Python, ça tombe bien, j'aime ce langage :)
- Couplé avec git on peut d'une part historiser l'évolution du blog, mais également s'en servir comme outil de sauvegarde.
Installation
Afin d'éviter d'avoir des conflits avec des scripts python, j'ai pris l'habitude de créer un environnement virtuel, je vais donc créer un espace virtuel dédié pour rstblog
mkvirtualenv --no-site-packages -p python2.7 rstblog pip install pyyaml babel blinker docutils jinja2 werkzeug pygments
Initialisation du blog
cd votre_blog mkdir -p {static,_templates,2013/3/3} wget -O static/style.css "https://raw.github.com/badele/blog.jesuislibre.org/master/static/style.css" wget -O _template/layout.html "https://raw.github.com/badele/blog.jesuislibre.org/master/_templates/layout.html"
nano config.yml
active_modules: [pygments, tags, blog] author: Bruno Adele canonical_url: http://blog.jesuislibre.org/ feed: name: Famille de geeks subtitle: Une famille complètement geek modules: pygments: style: tango
Je crée ensuite une arborescence qui devrait ressembler au schéma ci-dessous.
blog.jesuislibre.org ├── 2013 │ ├── 2 │ ├── 19 │ │ ├── test-unitaire-automatise-lors-dun-push-sur-github.rst │ │ │ └── 26 │ ├── decouverte-de-lenvironnement-arduino.rst ├── 2009 │ ├── 5 │ ├── 20 │ ├── naissance-dun-geek.rst │ ├── export-vos-donnees-de-kphotoalbum-vers-iptc.rst │ ├── generer-un-schema-xsd-depuis-un-fichier-xml.rst │ │ ├── a-propos.rst ├── config.yml └── _templates └── layout.html
Pour faciliter mes tâches répétitives, notamment le commit sur github ainsi que l'upload sur le serveur., je crée donc un Makefile.
clean: rm -rf _build build: run-rstblog build serve: run-rstblog serve push: git push github master upload: rsync -a _build/ votrecompte@votreserveur:/home/votrerepertoire/ @echo "Done..."
Votre installation est maintenant terminée, il ne vous reste plus qu'à créer vos billets, comme cité plus haut, pour cela, j'utilise le couple Emacs + rest mode
Exemple de process pour la publication d'un billet.
cd votre_blog workon rstblog emacs 2013/3/3/votre_billet make build serve # Pour tester votre blog avant publication sur localhost:5000 git commit make clean build upload push # Pour upload sur votre serveur ainsi que sur github
En espérant que cela donnera aux indécis l'envie de passer le cap :)