16 March 2013

Avant-Propos

Afin de documenter l’installation des outils utilisés sur mon Mac à la fois personnellement et professionnellement, j’ai décidé d’utiliser Jekyll qui à l’avantage de générer un site statique. Un seul répertoire contient donc à la fois le code et les articles.

Cette situation est largement préférable à l’utilisation d’un Wiki ou d’un blog classique nécessitant l’utilisation d’une base de données. Dans le cas d’une mise à jour système, il peut être assez complexe de récupérer la base de données si on n’a pas pensé à la convertir en instructions SQL.

L’inconvéinient en recanche est que l’installation est un peu plus complexe. Et il faut bien compter une petite journée pour tout mettre en place.

Au départ Jekyll n’est qu’un moteur de rendu, il n’inclut pas de thème et il n’est donc pas possible de démarrer immédiatement à rédiger. Pour cela, j’ai donc utilisé Jekyll Bootstrap qui fournit une configuration et un thème.

Le thème est basique mais il a le mérite de m’éviter de réinventer la roue.

Installation

Pour l’installation, c’est assez simple. J’ai récupéré un clone Git de jekyll-boostrap. Puis j’ai ajouté un Gemfile pour l’utiliser avec Bundler. J’ai rajouté rake, powder, RedCloth en dépendances en plus de jekyll pour pouvoir générer le blog.

J’ai modifié la configuration pour retirer les commentaires, les fonctions de partage, les fonctions d’analyse de traffic dont je n’ai pas l’utilité. J’ai rajouté les dossiers et fichiers que j’ai rajouté. J’ai également changé le répertoire de génération par défaut pour que le site soit accessible par Pow:

destination: 'public'
exclude: [".rvmrc", ".rbenv-version", "README.md", "Rakefile", "changelog.md", "Gemfile", "Gemfile.lock", "public", "vendor", "bin", ".bundle"]

Problèmes rencontrés

J’ai eu un peu de mal à le faire tourner, au bout d’un moment il s’est mis à refuser de générer le blog. L’installation de RedCloth a résolu le problème. J’ai n’ai pas investigué plus, je ne comprend pas pourquoi ça fonctionnait sans avant.

Parfois, Jekyll se met à générer le site continuellement, j’ai fait une modification à la main dans vendor/bundle/ruby/1.9.1/jekyll-0.12.1/bin/jekyll pour éviter cela:

lignes 228, 231 et 248:

- def globs(source)
+ def globs(source, destination)

- dirs -= ['_site']
+ dirs -= [destination]

- dw.glob = globs(source)
+ dw.glob = globs(source, destination)

Ce problème sera corrigé dans la version 1.0 de jekyll. Ce correctif ne fonctionne pas dans le cas général (en particulier, le cas où destination = ’…/_site’)

Documentation

À lire: Jekyll Quick Start

Utilisation et documentation complète: Jekyll Bootstrap