Outline converter

J'ai commencé à développer un convertisseur d'outliners en PHP il y a plus d'un an, pour finir par l'abandonner au bout de quelques semaines après avoir buté sur la gestion du format RTF. J'ai repris son développement depuis quelques jours, en python cette fois-ci, et le résultat est beaucoup plus prometteur.

Le projet a connu de nombreuses moutures. En fait, il a commencé en python sous la forme d'un outil de conversion des fichiers keynote en gjots. Après la découverte de l'outliner zim, je décidais de développer quelque chose de plus générique ; d'où le passage en PHP / html / css / javascript, langages que je maîtrise beaucoup mieux que le python. Suite aux difficultés techniques décrites plus haut, le projet est cependant retourné dans mon interminable liste de « choses qui faut qu'je fasse un de ces quatre, quand j'aurai le temps ! ».

La réactivation du projet et le retour au python furent liés à une série de faits :

  • La nécessité de récupérer de plus en plus souvent des informations stockées dans des fichiers keynote.
  • Le fait que le python me fasse de moins en moins « peur » grâce notamment au développement des plugins Gedit (même si le code reste encore maladroit - non pythonesque).
  • La découverte de pyth, un outil python permettant de convertir des données RTF en virtuellement ce que je je veux ; beaucoup mieux que mon pseudo parser écrit en PHP.
  • La découverte d'un autre outil python, odt2txt, pour convertir des fichiers odt en fichiers texte avec une syntaxe wiki (markdown) ; plus aucune excuse donc pour ne pas réograniser plus rationellement l'ensemble de mes notes.

Ainsi, en quelques heures, j'ai retranscris la plus grande partie du code PHP en python et codé ce qui restait en suspens pour obtenir enfin une première version utilisable.

Alors le nom « Outline Converter » est sans doute présomptueux, en tout cas pour le moment, car l'outil est avant tout destiné à récupérer les dizaines de Mo de données écrites avec Keynote ou Gjots pour les transformer en quelque chose qui soit utilisable par Zim. En gros, convertir un outline en une structure hiérarchique de dossiers et de fichiers, donc utilisable aussi avec un navigateur de fichiers et un simple éditeur de texte.

projet.rnb-py