Export ODT pour Trac
Le mercredi 30 décembre 2009, 11:27 - Lien permanent
Et voilà, je viens de boucler une première version utilisable d’un plugin d’export ODT pour Trac.
Parce que une fois c’est bien, deux fois c’est mieux, et trois fois bonjour les dég… euh, non en fait ça devrait marcher pareil que le reste. Il faut excuser mon humour pourri, mais je cauchemarde rêve de l’XML en ce moment.
Après avoir bien cherché, je suis obligé de me rendre à l’évidence : il n’y a toujours personne d’autre que moi qui ait écrit de feuille de style XSLT pour convertir de l’HTML en ODT. Dans l’autre sens, il y en a pléthore, mais dans ce sens, rien. Comme j’ai réutilisé pour le plugin Trac les feuilles que j’avais écrites pour le plugin Dotclear, je me suis dit qu’il n’était pas forcément complètement stupide d’en faire un projet séparé. C’est donc ce que j’ai fait, j’ai ouvert un projet sur Gitorious appelé xhtml2odt (oui, très original, je sais). J’en ai profité pour écrire tout un tas de tests unitaires, pour m’éviter les régressions et aussi parce que ça se prête quand même bien aux conversions
.
Je vais maintenant adapter le plugin Dotclear pour qu’il utilise ces feuilles, qui ont été légèrement améliorées lors de la réalisation du plugin Trac.
Si vous décidez de les utiliser pour un autre plugin d’export ODT dans une autre appli, ce serait cool de m’envoyer un petit mail, ça m’intéresse 
Voilà, si vous utilisez Trac et que vous êtes intéressé par l’export ODT des les pages du wiki, n’hésitez pas à tester ! Ce n’est pas encore parfait mais c’est déjà suffisamment avancé pour que vos retours soient utiles.















Commentaires
mercredi 30 décembre 2009, 14:41
Pas mal du tout !
Personnellement, c’est plutôt un export vers du PDF qu’il me faudrait, mais vers de l’ODT, c’est déjà un pis-aller assez intéressant
mercredi 30 décembre 2009, 14:47
@bochecha : Merci !
Pour l’export PDF, ça existe déjà (de plusieurs façons différentes), regarde là : http://trac-hacks.org/tags/pdf
mercredi 30 décembre 2009, 15:23
@Aurélien Bompard : En fait, je pensais plutôt à un truc plus générique de transformation (x)html vers pdf, dans la même veine que ta feuille XSLT.
mercredi 30 décembre 2009, 16:28
Coooool
Pour un projet sur lequel je bosse parfois (un logiciel documentaire de gestion de notices bibliographiques), j’avais commencé à pondre les feuilles XSLT pour avoir un export ODT (bien mieux que l’actuel RTF bancale - beurk).
Je n’avais pas envisagé de passer par la vue HTML existante (beh oui, j’ai de l’XML en entrée) ; mais je vais tenter le coup, merci pour l’idée et le code
Si ça fonctionne comme escompté et que je finis par utiliser ton projet, je te ferai signe, bien entendu.
Merci beaucoup !
mercredi 30 décembre 2009, 16:32
Une feuille de style XSLT pour convertir du HTML en ODT, c’est très intéressant
ça. Sinon, étant donné que Trac est développé en Python, il serait sans doute
intéressant d’utiliser lpOD (langages & plates-formes OpenDocument) qui est
fait pour ce genre de problématiques.
Évidemment, une feuille de style XSLT est peut être plus approprié dans ton
cas, mais ça ne coûte rien de jeter un coup d’oeil
Voici le site du projet en question : http://lpod-project.org/
mercredi 30 décembre 2009, 21:06
@tOkeshu : Ah, c’est très intéressant ça, je ne connaissait pas. Et pourtant, j’ai cherché, promis. Et pas qu’un peu. Bref.
En fait il y a deux approches à l’export ODT depuis une appli web :
Dans le premier cas, il est effectivement mieux d’utiliser le langage de l’appli et de s’intégrer dans l’API, c’est ce que j’ai fait avec le plugin Dokuwiki. Ça donne un meilleur contrôle et une couverture exhaustive du formatage.
Dans le second cas, ben, la seule solution que j’ai trouvée est de convertir le HTML en ODT XML, puis de l’insérer dans un document ODT qui sert de modèle. Il reste ensuite à :
En tout cas, lpod est très intéressant, je vais le garder sous le coude. Pour l’instant, en python, je n’ai utilisé qu’ODFpy, qui est assez bas niveau (d’un point de vue strictement codage, parce qu’il a un très haut niveau de qualité !).
mercredi 30 décembre 2009, 21:13
@trashy : OK, hésite pas ! Les feuilles XSLT ne vont pas suffire à faire tout le boulot, la procédure est globalement la suivante :
Voilà, mon projet fournit la conversion HTML -> ODT et des exemples de styles ODT XML utilisés dans la conversion (gras, italique, souligné, etc), mais c’est tout. Tout le reste est nécessairement fait par du code, dans le langage que tu préfères.
J’ai comme projet d’amélioration l’ajout d’un petit (si possible) script python qui ferait toutes les opérations, ne serait-ce que pour donner l’exemple, mais encore dans les cartons.
mercredi 30 décembre 2009, 22:19
I, for one, bow down to your superior XSLT/ODT skillz, d00d.
mercredi 30 décembre 2009, 22:23
@Xavier : Meurchi mon gars
Au passage, je pense que les feuilles XSL seraient très utiles pour faire un export ODT dans Wordpress… (wink wink, nudge nudge)
samedi 2 janvier 2010, 14:42
Pas encore essayé, mais je vais le faire