Hacking Zim
Zim est un outliner capable de gérer une collection de fichiers plats. Alors que je progresse peu à peu dans ma maîrtise du langage python, j'ai décidé d'essayer d'adapter le logiciel à certains de mes besoins.
Une première évolution doit permettre de gérer des bloc-notes dont les documents sont écrits avec d'autres syntaxes wiki que la syntaxe par défaut, basée sur celle de DokuWiki.
Les modifications doivent permettre à Zim de supporter l'utilisation de différentes syntaxes ; il n'est pas dans mes intentions d'écrire le code apte à gérer ces syntaxes (markdown, ReStructuredText, AsciiDoc, wikicreole, etc.). J'ai écris un gestionnaire de format pour ma propre syntaxe (et qui n'intéresse donc que moi) ; si le temps le permet, j'écrirai des gestionnaires pour d'autres formats (notamment wikicreole et markdown), mais ce n'est pas le but premier de l'évolution.
- Sélection du format de syntaxe wiki à la création d'un bloc-notes.
- Récupération de tous les formats dont le nom de module commence par « wiki ».
- Récuparation des formats utilisateurs placés dans
~/.local/share/zim/formats
.
Le code est disponible en tant que branche du projet Zim sur Launchpad : https://code.launchpad.net/~ruinibau/zim/wiki-syntax. Attention : n'utiliser pas ce code en production ! Si vous voulez tester Zim, installer Zim !
La seconde évolution concerne les modèles de page. Zim en possède 2 par défaut : un modèle « Calendar » utilisé lorsque l'on insère une page dans l'espace de nom qui sert d'agenda au bloc-notes, et un modèle « New » utilisé lors de la création d'une nouvelle page. Comme je compte gérer ma liste d'ouvrages avec Zim (après avoir convertit mes collections Tellico), l'évolution a pour but de permettre la sélection d'un modèle lorsque l'on créé une nouvelle page.
- Sélection d'un modèle lors de la création d'une nouvelle page.
- Récuparation des modèles de page utilisateur (
~/.local/share/zim/templates/wiki
). - Le modèle sélectionné écrase le modèle par défaut de l'espace de nom.
J'ai profité de cette note pour tester le nouvel élément HTML 5 video: (et la syntaxe wiki me permettant de le déclarer) ; les vidéos sont visibles sous Firefox 3.6/4, Opera 11 et Chromium 8 (un navigateur moderne quoi) ; elles ont été enregistrées avec RecordMyDesktop.