Zim-clip 0.5.0

J'ai un peu oublié de faire évoluer mon extension Firefox zim-clip ces dernières mois, alors que des modifications étaient en cours depuis le mois de décembre dernier. La faute à d'autres projets comme rnb-php. Mais voici enfin une version qui se rapproche de ce que j'ai voulu faire depuis le début.

La principale évolution côté utilisateur est l'apparition d'un bouton dans la barre des extensions qui permet de marquer la page web courante dans une page dédié d'un bloc-notes Zim, qui fait dés lors office de marque-pages.

Capture d'écran

Panneau de marquage vers Zim.

Côté code, il y a eu pas mal de modifications / simplifications, notamment une qui me permet de construire la liste des blocs-notes du panneau de marquage en lisant le fichier zim notebooks.list la première fois que le panneau est ouvert, puis cette liste n'est mise à jour que si le dit fichier a été modifié, le but du jeu étant évidemment de manipuler le moins possible le DOM du panneau à chaque ouverture. Cela fonctionne parfaitement, mais je me suis apperçu que Zim édite le fichier notebooks.list assez souvent, à chaque fois que vous ouvrez un bloc-note, que vous fermez le programme et même quand vous éditez une page du bloc-note courant; De fait, mon code « mettre à jour la liste uniquement si elle a été modifiée » est appelé plus souvent que je ne le souhaiterai, alors même que la liste est restée identique.

Côté ergonomie, le développement avec le SDK des extensions induit pas mal de limitations : je n'ai par exemple pas trouvé comment désactivé un widget pour éviter que le click n'ouvre le panneau de marquage lorsque la page courante n'est pas valide ; dans ces cas là, le formulaire de soumission est masqué et remplaçé par un message. Le widget lui-même ne peut être inséré que dans la barre des extensions ; on peut évidemment le déplacer dans la barre de navigation avec l'outil de personnalisation mais il reviendra dans sa barre originale au prochain démarrage de Firefox.

Enfin, pour ce qui est des relations avec Zim, il sera sans doute ergonomiquement plus efficace pour la version suivante de se passer du plugin « quicknote » que zim-clip appelle pour enregistrer les sélections de texte ou le marquage.

[Firefox]                         |   [Zim]
                                  |
zim-clip -> marks -> marks panel ---> quicknote plugin -> zim action
                                  |
zim-clip -> clips ------------------> quicknote plugin -> zim action
                                  |
Workflow actuel (zim-clip 0.5.0).

Le panneau de marquage est déjà un peu redondant avec la fenêtre de dialogue du plugin quicknote. Si j'active le panneau des sélections (clips), nous aurons 2 workflow identiques, mais aussi double redondance.

[Firefox]                         |   [Zim]
                                  |
zim-clip -> marks -> marks panel ---> quicknote plugin -> zim action
                                  |
zim-clip -> clips -> clips panel ---> quicknote plugin -> zim action
                                  |
Workflow avec le panneau de sélection activé.

Je souhaite donc pouvoir interroger directement Zim, sans avoir à passer par la fenêtre de dialogue du plugin :

[Firefox]                         |   [Zim]
                                  |
zim-clip -> marks -> marks panel ---> zim action
                                  |
zim-clip -> clips -> clips panel ---> zim action
                                  |
Workflow attendu pour zim-clip 0.6.0.

Le code est prêt dans l'extension ; reste plus qu'à travailler du côté de Zim.