Macro pour convertir un document Microsoft Word 97 au format SPIP 1.3
macro_word v1.0 (taille 114 ko)

Copyright  2002, Alexis Dupont-Roc distribue sous licence GPL.


----------------
 L'INSTALLATION
----------------

 - renommer "macro_word.dot" en "Document Spip.dot" (c'est plus joli !)
 - copier "Document Spip.dot" dans C:\Program Files\Microsoft Office\Modles\Autres Documents
 - Dmarrer Word
 - choisir Fichier->Nouveau->Autres Documents->Document Spip.dot
 - Tapper du texte en utilisant les styles proposs
 - Puis gnrer du texte au format SPIP dans un nouveau document en
   cliquant sur la petite baguette magique sous "Edition"


----------------
 FONCTIONNEMENT
----------------

Cette macro est compose de plusieurs sous-macros. "versSpip" tant la macro principale
appelant les autres une  une, dans un ordre bien dfini.


Ces macros sont indissocialbles des styles qui viennent avec le fichier "macro_word.dot".
Elles utilsent plus particulirement les styles :
 - wdStyleNormal ("Normal")
 - wdStyleHeading1 ("Titre 1")
 - wdStyleHeading2 ("Titre 2")
 - wdStyleHeading3 ("Titre 3")
 - wdStyleList ("Liste")
 - wdStyleHyperlink ("Lien Hypertexte")
 - "Code"
 - "Lien en code SPIP"
 - "Html"


"versSpip" effectue les transformations suivantes :

 1.  passe les pargraphes n'utilisant pas un des styles prcdents au style "Normal"
 2.  transforme les paragraphes de style "Titre 1" en : {{{texte}}}
 3.  transforme les paragraphes de style "Titre 2" en : {{texte}}<br />
 4.  transforme les paragraphes de style "Titre 3" en : {texte}<br />
 5.  transforme le texte italique+gras (mme dans les tableaux) en : {{ {texte} }}
 6.  transforme le texte italique (mme dans les tableaux) en : {texte}
 7.  transforme le texte gras (mme dans les tableaux) en : {{texte}}
 8.  transforme les tableaux Word en tableaux SPIP en ajoutant un saut de ligne avant et aprs si ncessaire
 9.  transforme les sauts de ligne individuels entre deux paragraphes de style "Normal" en : <br />
 10. transforme les paragraphes de style "Liste" en : - texte
 11. transforme les notes Word en note SPIP : [[une note]]
 12. transforme le texte gris (style "Code") en : <code>texte</code>
 13. transforme le texte vert pas beau (style "Html") en : <html>texte</html>
 14. transforme les liens Hypertexte de Word en : [lien->adresse du lien] (le style "Lien en code SPIP" ne
     fait que colorier du texte en bleu et permet d'crire directement les liens avec la syntaxe de SPIP.
     Le texte ne sera pas modifi.)
 15. transforme les images (flottantes ou non) en : <IMGn|left> (n tant leur ordre d'apparition dans le document)
 16. cre un nouveau document avec le code SPIP gnr et en effectue une copie dans le presse-papier



----------
 LES BUGS
----------

 - Si le document source commence (ou fini) par un tableau la macro plante :
   la macro vrifie si une ligne a bien t saute avant (et aprs) le tableau, sinon SPIP ne le reconnaitrait pas. Or s'il n'y a aucun caractre avant (aprs) le tableau, le test de VisualBasic ne marche pas ??? Donc, la solution est simple ... Ne commencez pas votre document par un tableau et, si votre document fini par un tableau, sautez une ligne juste aprs ! 

 - Si les lignes d'un mme tableau n'ont pas toutes le mme nombre de colonnes la macro plante :
   C'est normal ! SPIP ne gre que des tableaux simples.

 - Probleme de "<br />" imbriqu dans des accolades dans le code gnr :
   Si, par exemple, la fonction Find de Visal Basic recherche du texte en gras. Le texte trouv est slectionn, puis la macro reformate le tout pour SPIP... malheureusement avec Word, si vous finissez une ligne par du texte en gras, le saut de ligne est aussi en gras.
   bref, "texte_en_grasPtexteP" sera remplac par "{{texte_en_gras<br />P}}texteP". Et ceci peut causer quelques problme dans des cas extrmes. Je cherche une facon d'obtenir "{{texte_en_gras}}<br />PtexteP", mais je n'y arrive pas. Donc, avis aux pros du VB, si vous avez une solution, je suis preneur.



