Selon moi, le projet a atteint un état d'aboutissement qui le rend utilisable par d'autres, d'où cette annonce.
De plus, lors du récent salon Solutions Linux à Paris, j'en ai parlé avec des membres du projet OpenOffice.org sur leur stand, et l'un d'entre eux a dit que certains de ses collègues envisageaient de développer une fonctionnalité similaire. Dans le but d'éviter une duplication des efforts, j'aimerais faire connaître le projet par le biais de cet article, dont la deuxième partie présente les références et les aspects techniques.
NdM: Sous licence GPL2. XHTML2ODT est en fait une bibliothèque de conversion, qui est actuellement utilisée dans les grffons suivants :
Tout d'abord, la limitation principale : il n'est pas prévu de convertir le style complet de la page web dans le document, donc pas de rendu CSS ni de gestion de la balise "font".
Ce point ayant été abordé, la conversion est néanmoins assez fidèle tout en restant souple, car elle est basée sur deux aspects principaux :
- La conversion du XHTML en OpenDocument grâce à des feuilles XSL ;
- L'inclusion de ce XML dans un document ODT "modèle" qui pourra être personnalisé avec les styles désirés.
De cette façon, la gestion des styles se fait simplement en éditant le fichier ODT modèle, la conversion du XHTML essayant d'utiliser au maximum les styles prédéfinis dans OpenOffice. Les styles manquants seront ajoutés, avec un rendu par défaut proche de celui du navigateur.
Un des axes de développement étant de faire le maximum en XSL, le code à écrire pour utiliser cette bibliothèque reste léger. Il est donc relativement aisé de l'inclure dans des greffons d'export, quelque soit le langage. En effet, parmi les deux projets qui utilisent déjà xhtml2odt, l'un est en PHP et l'autre est en Python.
De plus, on peut trouver deux exemples de code dans les sources, sous la forme de scripts en ligne de commande. Là aussi, il y en a un en PHP et l'autre en Python.
Du point de vue de la qualité du code :
- La grande majorité des éléments du XHTML 1.0 sont pris en compte et convertis ;
- Le projet compte à l'heure actuelle 117 tests unitaires pour éviter les régressions futures ;
- Les documents ODT produits passent les tests de validation avec succès ;
- Le code XSL et celui des deux scripts-exemples fournis est largement commenté.
Il est intéressant de noter deux choses à propos de la conversion de XHTML vers ODT :
- À ce jour, il n'existe pas à ma connaissance d'autre projet de conversion dans ce sens, alors que les programmes permettant de faire l'inverse sont nombreux ;
- La fondation OpenDocument Fellowship a proposé un prix de 11 500 dollars à qui réaliserait un export parfait de HTML vers ODT. Je n'ai pas les compétences pour participer à ce concours, mais si quelqu'un veut s'appuyer sur xhtml2odt pour le réaliser, qu'il n'hésite pas !
Ce dont le projet aurait maintenant besoin pour avancer serait que le code soit utilisé pour d'autres greffons d'export. Le premier qui me vient à l'esprit serait un greffon d'export ODT pour Wordpress.
Je suis aussi évidemment intéressé par les bugs qui seraient découverts dans la conversion ou les scripts fournis, ainsi que par toute contribution. Mon objectif avoué étant tout simplement de populariser au maximum le format OpenDocument.
Aller plus loin
- Page de développement sur Gitorious (241 clics)
- Greffon Dotclear utilisant xhtml2odt (258 clics)
- Greffon Trac utilisant xhtml2odt (33 clics)
- Articles concernant xhtml2odt (et ODF) sur le blog de l'auteur (240 clics)
# Pourquoi ?
Posté par Victor . Évalué à 8.
De odt vers html, je peux comprendre : on fait un document, puis on le publie sur le net.
Dans l'autre sens, je ne vois pas trop, des exemples ?
[^] # Re: Pourquoi ?
Posté par Cyrille Pontvieux (site web personnel, Mastodon) . Évalué à 10.
Sur un wiki il est facile de travailler à plusieurs et d'avoir un historique des changements. Lorsqu'on le souhaite on peut demander un export vers un format bureautique ouvert. Et utiliser l'XHTML directement permet d'avoir une librairie généralisée, sans ajout de code compliqué au code du wiki et où une correction de bug dans la librairie se répercute automatiquement sur tous.
[^] # Re: Pourquoi ?
Posté par Aurélien Bompard (site web personnel) . Évalué à 6.
L'idée, dans le cas d'un wiki comme Doku ou Trac, est d'écrire sa doc dedans, en collaboratif, et de produire ensuite un document ODT au format de la société ou de l'association pour l'envoyer à l'extérieur.
Dans le cas de Dotclear, ça peut être intéressant pour archiver son blog. J'ai même une personne assez connue de la communauté qui m'a demandé si ça pourrait marcher sur son blog qui a plus de 2000 articles, car il voudrait le publier sur La Poule ou l'Œuf.
[^] # Re: Pourquoi ?
Posté par jeffcom . Évalué à 5.
[^] # Re: Pourquoi ?
Posté par toctoc1 . Évalué à 4.
Exemple: Sur un serveur d'entreprise, tu crées une base de données avec liste de produits, adresse clients etc…
suffit alors de quelques click pour générer un document type devis, lettre type etc… qu'on peut ensuite retoquer sous OOo.
J'ai précisémment besoin d'un truc comme ça, tiens….
[^] # Re: Pourquoi ?
Posté par mensoif_gerard . Évalué à 3.
[^] # Re: Pourquoi ?
Posté par jeffcom . Évalué à 3.
[^] # Re: Pourquoi ?
Posté par ndesmoul . Évalué à 3.
En gros on sélectionne différents articles, dont on peut régler l'ordre d'apparition dans le futur livre. Une fois cette sélection faite, on peut obtenir une sortie au choix au format pdf, ou au format odt.
J'ignore ce qu'ils utilisent pour la conversion html vers ODT.
Quand j'avais essayé, la version odt comportait parfois des problèmes de mise en page. Mais sinon, j'avais trouvé la fonctionnalité assez intéressante.
[^] # Re: Pourquoi ?
Posté par Aurélien Bompard (site web personnel) . Évalué à 3.
[^] # Re: Pourquoi ?
Posté par Frédéric Heulin . Évalué à 2.
Tu es dans une équipe et vous avez un wiki interne.
Avec xhtml2odt, on peut imaginer faciliter la production de livrables
(en tout cas sur la forme ;-) ).
Ça peut aussi aider à convaincre les gens d'utiliser le wiki aussi :
« regarde, tu fais pas le travail deux fois, tes documents/livrables (de la méthode machin/UP/RUP/RIP) sont produits automatiquement ! »
[^] # Re: Pourquoi ?
Posté par Itaapy . Évalué à 2.
Perso chez nous on utilise un wiki2odt pour produire les docs commerciaux en réutilisant au maximum l'information et en pouvant travailler à plusieurs, voir les pages à relire etc.... (cf aussi ma note sur le projet lpod plus bas).
[^] # Re: Pourquoi ?
Posté par ratoune . Évalué à 1.
Dans le milieu universitaire (et plus largement d'enseignement), module qui s'annonce extrêmement pratique. Je travaille très régulièrement à partir d'articles de presse. Allez donc reformater une page copiée-collée de n'importe quel journal en ligne, vous verrez assez vite l'énorme intérêt de ce script!
Pour illustrer cela, faite un petit essai dans vos journaux en ligne favoris. En général, pour chaque article, vous avez la possibilité d'imprimer. Vous obtenez donc une version imprimable... mais avec de nombreux cadres. Deux options: faute de temps (souvent): impression dans un fichier PDF, et ensuite c'est la galère pour la mise en page dans des dossiers à distribuer aux étudiants. Ou bien le copier-coller dans OOo, et là... pfff, il faut supprimer les cadres, appliquer des styles qui mettent le texte n'importe où, on obtient des lignes non justifiées, parfois l'ensemble du texte n'apparaît pas...
Bref, merci de cette proposition que je vais suivre de très près!
Bonne continuation!
[^] # Re: Pourquoi ?
Posté par Beurt . Évalué à 1.
# démo
Posté par leif_thande . Évalué à 2.
[^] # Re: démo
Posté par Aurélien Bompard (site web personnel) . Évalué à 2.
Sur mon blog, tu peux utiliser l'icône "ODT" en haut à droite de chaque article, voilà un bon exemple (avec des images) :
http://aurelien.bompard.org/post/2010/01/31/Copenhague-%3A-l(...)
Chez Framablog, l'icône est tout en bas de l'article, en dessous du formulaire d'ajout de commentaires.
[^] # Re: démo
Posté par Aurélien Bompard (site web personnel) . Évalué à 2.
# Licence
Posté par Aurélien Bompard (site web personnel) . Évalué à 5.
[^] # Re: Licence
Posté par Aurélien Bompard (site web personnel) . Évalué à 7.
[^] # Re: Licence
Posté par LeBouquetin (site web personnel, Mastodon) . Évalué à 7.
#tracim pour la collaboration d'équipe __ #galae pour la messagerie email __ dirigeant @ algoo
[^] # Re: Licence
Posté par Alain Ternet . Évalué à -1.
Maintenant, si tu penses que tu auras des patchs intéressants, reste dans du (L)GPL mais j'ai des doutes :)
[^] # Re: Licence
Posté par Aurélien Bompard (site web personnel) . Évalué à 4.
Marrant comme méthode de persuasion. Je suis pas sûr que ce soit toujours très efficace.
Je pense que le copyleft a pas mal d'intérêts, donc je vais rester en (L)GPL. Par contre, je reconnais que plus j'y réfléchis, plus je trouve que la LGPL est plus pertinente que la GPL pour le projet dont il s'agit ici.
À voir, peut-être que je changerais dans le futur, si il y a un réel besoin. En attendant, xhtml2odt reste GPLv2+.
[^] # Re: Licence
Posté par Etienne Bagnoud (site web personnel) . Évalué à 1.
"It was a bright cold day in April, and the clocks were striking thirteen" - Georges Orwell
[^] # Re: Licence
Posté par Aurélien Bompard (site web personnel) . Évalué à 2.
[^] # Re: Licence
Posté par Etienne Bagnoud (site web personnel) . Évalué à 1.
"It was a bright cold day in April, and the clocks were striking thirteen" - Georges Orwell
[^] # Re: Licence
Posté par Etienne Bagnoud (site web personnel) . Évalué à 2.
"It was a bright cold day in April, and the clocks were striking thirteen" - Georges Orwell
[^] # Re: Licence
Posté par Alain Ternet . Évalué à -1.
Ca n'a rien à voir avec de la persuasion, il faut arrêtez la parano que ton script reste en GPL ou pas, ca n'a aucune importance pour moi. Je n'ai jamais demandé que tu utilises la BSD.
J'émettais justes quelques commentaires sur la dépêche (comme le permet le système DLFP):
- Que le dév, même s'il reste intéressant pour un besoin très spécifique, n'est quand même pas énorme. Ce n'est pas un gros logiciel.
- Que tu n'auras probablement pas beaucoup de patch externe,
- Que dans ce genre de script, la BSD est une licence très valable qui donne plus de liberté, (comme permettre l'inclusion de la lib dans un logiciel à source privée, ce qui aurait comme conséquence de mettre à disposition plus d'ODT, ce qui est aussi important qu'un éventuel patch)
Maintenant, l'attitude que tu as de dire :"je verrouille en GPL, on verra s'il y a une demande" est parfaitement valable.
Perso, je publie ce genre de script en WTFPL http://sam.zoy.org/wtfpl/
# Autre utilitaire comparable
Posté par gvdmoort . Évalué à 2.
http://johnmacfarlane.net/pandoc/
Mais la conversion vers l'ODT n'est apparue que sur une version récente. Je n'ai donc jamais testé cette fonctionnalité, je n'en ai d'ailleurs pas l'utilité, je me sers essentiellement de markdown2pdf, que je trouve fabuleux comme moyen de créer des documents impeccables à partir d'un éditeur de texte.
Et il y a aussi un script html2markdown qui permet de récupérer des pages web, mais le résultat est assez variable.
http://www.k1ka.be/desidia/?2009-11-01_Conversion_entre_form(...)
[^] # Re: Autre utilitaire comparable
Posté par Aurélien Bompard (site web personnel) . Évalué à 1.
Par contre, vu que c'est un exécutable Haskell, c'est plus difficilement intégrable dans un plugin d'export pour une appli web qu'une feuille de style XSL. Différents usages, donc.
[^] # Re: Autre utilitaire comparable
Posté par gvdmoort . Évalué à 2.
# Bravo
Posté par Emeric . Évalué à 3.
bravo pour cette idée et cette réalisation. Ca a le mérite d'être original.
# Merci
Posté par fyah . Évalué à 3.
Ca marche impec, un grand merci :) !
# Dépendance PHP 5.3
Posté par Aurélien Bompard (site web personnel) . Évalué à 2.
Merci !
# Il semble que tu savais que ça existait pour Spip depuis quelque temps
Posté par Beurt . Évalué à 2.
Heu... ? Sur une des listes de diffusion destinées à Spip, ici: http://www.mail-archive.com/spip-zone@rezo.net/msg07222.html tu présentais en février un plugin similaire. On te répondait que ça existait déjà pour Spip depuis quelque temps... Tu reconnaissais que l'autre plugin était plus intéressant...
Pourquoi alors nous dis-tu que tu ne connais pas d'autre projet qui fait ça ?
Je suis un peu supris.
[^] # Re: Il semble que tu savais que ça existait pour Spip depuis quelque te
Posté par Aurélien Bompard (site web personnel) . Évalué à 4.
Désolé pour la confusion...
# Corrections
Posté par Aurélien Bompard (site web personnel) . Évalué à 2.
Donc si vous avez testé hier et que ça vous a explosé dans les doigts, c'est le moment de retester !
Je rappelle qu'on peut récupérer un .tar.gz des sources par ce lien : http://gitorious.org/xhtml2odt/xhtml2odt/archive-tarball/mas(...) (pour ceux qui ne connaîtraient pas par coeur les méandres de Gitorious, et qui ne voudraient pas utiliser Git)
Merci pour les encouragements, ça fait très plaisir.
# Projet lpod
Posté par Itaapy . Évalué à 3.
À itaapy nous y participons pour le langage Python qui est l'implémentation la plus avancée pour le moment. Cf. http://www.itaapy.com/nos-solutions/recherche/lpod
Je remarque d'ailleurs qu'on a fait un rst2odt qui transforme le reStructuredText mais pas de xhtml2odt !
Nous avons également fait un wiki qui s'exporte en fichier odt, soit une seule page, soit un plan de pages. Release prévue cette semaine.sur http://hforge.org
[^] # Re: Projet lpod
Posté par Aurélien Bompard (site web personnel) . Évalué à 2.
C'est vrai qu'on manque d'une bonne API de haut niveau sur le format OpenDocument, je vous souhaite donc tout le succès possible !
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.