Hacking Zim

Date
Catégories
Tags

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.

.. video:: /vids/softs/zim-new-wiki-syntax-01.ogv|controls,preload=none,poster=/pics/softs/zim-large.png

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.

.. video:: /vids/softs/zim-templates-01.ogv|controls,preload=none,poster=/pics/softs/zim-large.png

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.