Ikiwiki : un générateur de wiki

Anne web ikiwiki

J’avais commencé à utiliser ikiwiki pour générer ce site.

Puis, j’ai changé d’avis, et j’ai migré vers txt2site, mais c’est surtout parce que j’utilise txt2tags par ailleurs depuis longtemps, et qu’il était pénible d’utiliser plusieurs langages de marquage (surtout lors de copier/coller d’une page dans une autre). C’est néanmoins un bon outil pour ceux qui n’ont pas ce problème.

Installation

Cette partie explique comment installer simplement un répertoire servant de racine à ikiwiki et utilisant mercurial comme système de gestion de version.

On ne traite pas ici de la partie wiki proprement dite, c’est-à-dire que tout ce qui permet d'éditer en ligne à partir d’un navigateur web. Ces fonctionalités sont désactivées dans cette installation.

Installer l’outil

Il faut d’abord installer l’outil bien sûr. Sous ubuntu, ça se fait simplement par :

$ sudo apt-get install ikiwiki

Setup

La procèdure automatique est la plus simple :

$ ikiwiki --setup /etc/ikiwiki/auto.setup

Il faut répondre à quelques questions :

Nom du wiki : Notes
Système de contrôle de version utilisé : mercurial
Identifiant de l'administrateur (utilisateur du wiki ou openid) : anne
warning: do not know how to set up the mercurial_wrapper hook!

Ce warning n’est pas important : on s’en occupera manuellement plus loin.

Après quelques messages d’information, il demande un mot de passe pour administrer le wiki, et c’est bon.

Comme on ne veut pas laisser tout en vrac à la racine, on déplace ce qui a été créé :

$ mv ~/Notes.setup .ikiwiki/Notes.setup
$ mv Notes/ hg

Ici, on laisse le répertoire cible créé par défaut dans public_html/Notes car ça nous convient, mais on peut aussi le déplacer si on le souhaite.

On édite ensuite .ikiwiki/Notes.setup pour mettre à jour :

  • srcdir => /home/anne/hg/Notes
  • on vérifie que destdir => '/home/anne/public_html/Notes nous convient.

On modifie également :

  • adminemail pour mettre la bonne adresse mail ;
  • on commente cgiurl et cgi_wrapper car on ne veut pas utiliser le wiki, en fait ;

Puis, pour prendre les modifications en compte :

$ ikiwiki -setup ~/.ikiwiki/Notes.setup

et on peut vérifier que le site a été correctement créé.

Du côté des sources, on remarque que le répertoire .ikiwiki est automatiquement mis dans .hgignore car il ne doit pas être dans le système de gestion de version.

Mise à jour automatique

On a vu lors de l’installation qu’il y avait un message :

warning: do not know how to set up the mercurial_wrapper hook!

On va donc s’en occuper.

L’idée est de configurer mercurial pour que le site soit automatiquement mis à jour quand on transfert des nouvelles données. Pour cela, il faut éditer hg/Notes/.hg/hgrc et ajouter par exemple :

[hooks]
changegroup = ikiwiki --setup /home/anne/.ikiwiki/Notes.setup --post-commit

Ainsi, à chaque fois que l’on fait un hg push, on appelle ikiwiki --setup pour mettre le site à jour.

On peut avoir besoin de faire des mises à jour avant d’appeler ikiwiki. Le plus simple est alors de faire un Makefile avec une cible ikiwiki qui construit tout ce qu’il faut avant la mise à jour du site. Mais pour pouvoir utiliser le Makefile dans le dépot, il faut d’abord récupérer les fichiers transférés. On va donc avoir :

[hooks]
changegroup = hg update ; make ikiwiki

avec par exemple un Makefile qui compile la doc avant la mise à jour :

ikiwiki : doc.pdf
	ikiwiki --setup /home/anne/.ikiwiki/Notes.setup --post-commit

doc.pdf : doc.tex
	rubber --pdf $<

Et après

Pour l’instant, bien sûr, il est vide. Et il faut donc passer à l'édition.

Edition

Après la phase d’installation, on peut commencer à ajouter du contenu dans son site.

Mercurial

Notre site ikiwiki a été installé pour utiliser mercurial. On va donc récupérer les sources depuis n’importe où dans le monde en faisant :

$ hg clone ssh://anne@ssh.pacalet.fr//home/anne/hg/Notes

On a alors un dépot local dans le répertoire Notes.

On commence ensuite par éditer un premier fichier :

$ echo "coucou" > index.mdwn

et on le transfère :

$ hg add index.mdwn
$ hg commit -m "premier essai"
$ hg push

et normalement, le site distant a du être mis à jour, ce qu’on peut contrôler en allant voir la page sur le web.

Le but n’est pas ici d’expliquer comment utiliser [[mercurial | 🎶0048_mercurial]] : on voit le principe. Et si tout va bien, à chaque push, le site sera mis à jour.

Fichiers ikiwiki

Par défaut, les fichiers traités par ikiwiki sont ceux qui ont l’extension .mdwn. La syntaxe utilisée est le Markdown à laquelle s’ajoute des formattage spécifiques .

On peut aussi utiliser des directives pour générer certains contenus particuliers.

Les pages sont produites en utilisant des //templates// (voir ci-dessous).

Templates

Voir template.

Style

Voir template.

Plugins

ikiwiki propose un nombre impressionnant de plugins .

Pour activer un greffon, il faut éditer ~/.ikiwiki/Notes.setup et l’ajouter dans add_plugins. Un certain nombre de greffons sont regroupés dans goodstuff qui est présent par défaut dans le //setup// standard.

Voir aussi :