Depuis le début de mes activités de recherche, j’utilise un wiki pour prendre des notes au quotidien de mes activités. C’est un espace que j’héberge sur un serveur accessible partout et tout le temps, qui utilise dokuwiki.
De l’intérêt d’un wiki
Ce genre d’outil permet d’éditer en ligne non pas un unique document, mais un ensemble de documents reliés par des liens hypertextes. La lecture et l’écriture peuvent alors se faire de manière non linéaire. Et puis le moteur de recherche interne est très pratique.
Ce que j’aime beaucoup avec cet outil, c’est le fait que la mise en forme du document soit produite grâce à une syntaxe particulière : on peut tout faire au clavier, sans avoir à prendre la souris pour mettre quelque chose en gras, ni apprendre une foultitude de raccourcis clavier. C’est flexible, générique, avec une syntaxe simple.
Et markdown fut
Quand j’ai commencé à utiliser les wiki (d’abord avec Wikini), chaque solution avait son langage. Puis est arrivé markdown, monopole de fait, qui a unifié la syntaxe utilisée. Il ne reste que les outils d’avant cette syntaxe qui utilisent autre chose. J’utilise par exemple beaucoup mkdocs pour rédiger le contenu de sites statiques, comme par exemple jmfavreau.info.
Et comme les éditeurs commençaient à bien le supporter, comme j’avais pris l’habitude de prendre des notes avec, c’est devenu le format texte que j’utilise le plus. Pas forcément super pratique pour le partager avec des gens habitués à des WYSIWYG, mais il existe des outils d’export.
Le format markdown donne le moyen de faire des liens hypertextes bien sûr, et donc d’avoir non pas un document, mais un ensemble de documents hyperconnectés. Seulement voilà, dans sa forme de saisie, il ne permet pas de suivre les liens. Il faut qu’il soit interprété (comme le fait le générateur mkdocs) pour que les liens deviennent cliquables dans un navigateur.
Alors comment faire pour naviguer en local, dans tous les fichiers markdown de son ordinateur ?
MDwiki et websf
En cherchant une solution, j’ai trouvé quelque chose de simple à déployer, et en même temps de très léger et fonctionnel. Il s’agit de coupler un serveur http léger à un interpréteur de markdown côté client.
MDwiki est constitué d’une unique page html, boostée au javascript, qui s’exécute donc en local sur le navigateur, pour proposer un rendu de fichiers au format markdown entreposés sur le serveur.
webfs est quant à lui un serveur http très léger, qui ne fait que servir via ce protocole des fichiers statiques. Pas d’exécution côté serveur, quelque chose de très simple.
La solution que j’ai adoptée consiste donc à faire tourner sur mon ordinateur webfs, tout en créant un lien symbolique depuis le répertoire /var/www/html/wiki/
vers un répertoire qui appartient à mon utilisateur, typiquement ~/wiki/
. En plaçant dans ce répertoire le html de MDwiki (sous le nom w.html
par exemple), et en plaçant tous mes fichiers markdown dans ce dossier, j’ai donc un visualisateur de fichier markdown sur ma machine.
J’utilise donc l’éditeur de mon choix pour modifier les fichiers, et le navigateur connecté à l’adresse http://localhost:8000/wiki/w.html pour visualiser le rendu, et naviguer en suivant les liens hypertextes.
L’intérêt de cette solution, c’est que mes fichiers ne sont pas prisonniers d’un outil : je peux les éditer avec l’outil de mon choix, les copier facilement, utiliser les fonctions de recherches habituelles (en ligne de commande ou de mon environnement de bureau)…