Bonjour,

Après le test d'export de Philippe sur un document texte simple (14/08), j'ai refait quelques tests supplémentaires, toujours avec Writer. Résultats:

- L'extension par défaut d'un XHTML est .xhtml, mais on peut la changer dans "outils -> Paramétrage du filtre XML". Ce n'est donc pas un problème, contrairement à ce que j'avais dit dans mon dernier mail du 14/08...


- Par contre, il s'avère que OOo n'effectue pas de "nettoyage" du document avant de lancer le filtre d'export. Il se contente de nourrir le filtre avec "l'image" qu'il a du document au moment même.

Seulement voilà, au cours des modifications de style de l'utilisateur (ajouts et retraits de mise en gras, d'italiques, etc.), cette image est de moins en moins "nette". Des groupes de caractères sont formés pour être mis en gras; mais lorsque l'utilisateur enlève cette mise en gras, le groupe reste défini et il est repris lors de l'export, se traduisant par des <span> inutiles.

Idem pour les paragraphes; des styles de paragraphes sont "créés" pour l'occasion lors de l'écriture du document, mais même lorsque ce "style virtuel" n'est plus utile (ses attributs correspondant exactement au style standard), il est repris dans l'export et le paragraphe garde ce style.

Démonstration:

1) Premier test:

1. Ouvrir un nouveau document, écrire "Ceci est un test."
2. Exporter en XHTML.

Il n'y a pas eu de modification de style; le code est donc 'propre'...
SAUF QUE...
Eh oui, le filtre a exporté deux octets en extra juste avant le </p>, hexadécimal C2 A0, ce qui correspond curieusement à l'Unicode (UTF-8) pour l'espace " ".


Mais attendez:

2) Deuxième test:

1. Dans le même document, sélectionner "Ceci est"
2. Cliquer sur gras deux fois, pour l'activer et le désactiver de suite.
3. Exporter.

Le résultat devrait être le même, pas vrai?

Ben non. Un <span> de classe T1 a été créé autour de "Ceci est", dont la seule caractéristique est d'avoir un "font-weight: normal". C'est-à-dire, le font-weight par défaut du paragraphe parent.

En attendant, le C2 A0 a disparu... et pourtant nous n'avons pas touché au paragraphe lui-même, juste à des caractères de début de ligne.


Plus rigolo encore:

3) Troisième test:

1. Sélectionner la ligne complète.  Pas forcément en triple-cliquant.
2. Cliquer deux fois sur gras.
3. Exporter.

Cette fois-ci, le <span> a disparu, le paragraphe est "propre"! Mais en fait non! Parce qu'il est maintenant de classe "P1", qui copie les attributs de "Standard" et rajoute... "font-weight: normal". C'est-à-dire, le font-weight par défaut de Standard.

Et le C2 A0 est revenu!  Il nous avait manqué, celui-là.


Fin de la démonstration. On pourrait en rajouter, mais il est 23:45 et demain je bosse. Ca, et j'ai le "Crown of Slaves" de David Weber et Eric Flint qui m'attend.


Bon, soyons réalistes; tout ça n'est pas véritablement grave dans la mesure où le rendu du document n'est pas affecté.

Mais, un des principes du XHTML est qu'il doit pouvoir être parsé facilement pour pouvoir l'intégrer dans des sites web, des bases documentaires, etc. Des <span> partout sans raison logique et des paragraphes avec des classes bizarres pourraient mettre des bâtons dans les roues des outils se chargant de l'intégration, avec au final des sysadmins jetant l'éponge et retournant à Word (j'en rajoute, là, non?).

La moindre des choses serait de faciliter le travail de ces outils en fournissant un XHTML avec une structure la plus propre possible. Ce qui serait une franche nouveauté dans le milieu de la gestion de contenu, faut bien l'avouer. Et puis, ça gâche de la place. (Rigolez, mais on enfonce le "HTML" de MSWord à cause de ça aussi! On ferait un bien beau concurrent si on pointait les défauts de MSOffice tout en ayant les mêmes...)


Ce n'est pas vraiment la faute du filtre d'export, bien que l'apparition/disparition de l'unicode C2A0 me fasse hausser les sourcils. Je pense que c'est surtout dû à la façon dont OOo gère, en interne, les changements de styles que subissent les éléments d'un document, en ne "résorbant" pas les styles/groupements créés pour un temps et devenus obsolètes. Et sauvegarder puis rouvrir ne change rien, ce n'est donc pas seulement un problème de "gestion immédiate" des éléments.

Mais je n'ai aucune idée du projet OOo qui gère ça, ou même s'il en existe un; quelqu'un sait? J'aurais bien dit Framework, mais rien dedans ne semble correspondre à ça...


Nicolas

--
"If you try to stay sane in life, it'll just
drive you crazy.  So, you may as well go crazy
now and have fun with life."
--MegaZone


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Répondre à