Macro MicrosoftWord

à l’attention des rédacteurs du site

 jeudi 9 février 2012  |  Avril 2012  |  0 Commentaires
   Dr Michel NAHON

Macro Word v.3 - Word2spip

L’installation

renommer " macro_word.dot " en " Document Spip.dot " (c’est plus joli !) ;
copier " Document Spip.dot " dans C :\Program Files\Microsoft Office\Modèles\Autres Documents [1] ;
Démarrer Word ;
choisir Fichier->Nouveau->Autres Documents->Document Spip.dot ;
Taper du texte en utilisant les styles proposés ;
Puis générer du texte au format SPIP dans un nouveau document en cliquant sur la petite baguette magique sous " Edition ".

Fonctionnement

Cette macro est composée de plusieurs sous-macros. " versSpip " étant la macro principale appelant les autres une à une, dans un ordre bien défini.

Ces macros sont indissociables des styles qui viennent avec le fichier " macro_word.dot ".
Elles utilsent plus particulièrement 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 :

 passe les paragraphes n’utilisant pas un des styles précédents au style " Normal " ;
 transforme les paragraphes de style " Titre 1 " en : {{{texte}}} ;
 transforme les paragraphes de style " Titre 2 " en : {{texte}} ;
 transforme les paragraphes de style " Titre 3 " en : {texte} ;
 transforme le texte italique+gras (même dans les tableaux) en : {{ {texte} }} ;
 transforme le texte italique (même dans les tableaux) en : {texte} ;
 transforme le texte gras (même dans les tableaux) en : {{texte}} ;
 transforme les tableaux Word en tableaux SPIP en ajoutant un saut de ligne avant et après si nécessaire ;
 transforme les sauts de ligne individuels entre deux paragraphes de style " Normal " en : <br /> ;
 transforme les paragraphes de style " Liste " en : - texte ;
 transforme les notes Word en note SPIP : [[une note]] ;
 transforme le texte gris (style " Code ") en : texte ;
 transforme le texte vert pas beau (style " Html ") en : <html>texte</html> ;
 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é.) ;
 transforme les images (flottantes ou non) en : <IMGn|left>(n étant leur ordre d’apparition dans le document) ;
 créée un nouveau document avec le code SPIP généré 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 vérifie si une ligne a bien été sautée avant (et après) le tableau, sinon SPIP ne le reconnaîtra pas. Or s’il n’y a aucun caractère avant (après) 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 après !

 Si les lignes d’un même tableau n’ont pas toutes le même nombre de colonnes la macro plante : C’est normal ! SPIP ne gère que des tableaux simples.

 Problème de "<br />" imbriqué dans des accolades dans le code généré : Si, par exemple, la fonction Find de Visual Basic recherche du texte en gras. Le texte trouvé est sélectionné, 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 problèmes dans des cas extrèmes. 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.
P.-S.

Note des admins : cette macro a été créée par Alexis. Denis a ajouté la gestion des liens internes.
Notes

[1] Nota SPIP-Contrib : chemin valable si vous travaillez sous Windows, à adapter pour les autres environnement

 Vos messages

    Vos commentaires

    Forum sur abonnement

    Pour participer à ce forum, vous devez vous enregistrer au préalable. Merci d’indiquer ci-dessous l’identifiant personnel qui vous a été fourni. Si vous n’êtes pas enregistré, vous devez vous inscrire.

    Connexions’inscriremot de passe oublié ?

Suivre les commentaires : RSS 2.0 | Atom