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.

Fonctionnalité permettant de choisir la syntaxe wiki du bloc-notes.
  • 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.

Fonctionnalité permettant de choisir un modèle de 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.