Rigasite

Accueil > Le site & les outils informatiques > Macro Word pour passer sous SPIP

Macro Word pour passer sous SPIP

jeudi 15 décembre 2005, par rigas

Une macro qui permet de convertir un document Word au format SPIP

Macro pour convertir un document Microsoft© Word 97 au format SPIP 1.3

Telecharger macro_word.zip (taille 114 ko) ci-dessous

Voir commentaires, présentation et source originale sur le site Spip-contrib.

Copyright © 2002, Alexis Dupont-Roc distribuée sous licence GPL.
Légère Modif de Rigas pour préciser le répertoire d’installation Windows XP


L’INSTALLATION (SOUS WINDOWS XP Pro)


- dézipper macro_word.zip

- renommer "macro_word.dot" en "Document Spip.dot" (c’est plus joli !)

- Sous XP : copier "Document Spip.dot" dans

C :\Program Files\Documents and Settings\MonNom\Application data\Microsoft\Modèles\

Où MonNom est votre nom d’usager dans le système.

Si la macro n’est pas là, Word ne la reconnaît pas.

- Démarrer Word

- choisir Fichier->Nouveau->Autres Documents->Document Spip.dot

- Taper du texte en utilisant les styles proposés, ou en faisant couper-coller à partir d’un texte déjà écrit.

- Puis générer du texte au format SPIP dans un nouveau document en
cliquant sur la petite baguette magique sous "Edition"

La macro effectue les transformations puis sélectionne le texte. On peut copier et coller dans la fenêtre SPIP le texte.


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 indissocialbles 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 :

1. passe les pargraphes n’utilisant pas un des styles précédents au style "Normal"
2. transforme les paragraphes de style "Titre 1" en :

Titre 1

3. transforme les paragraphes de style "Titre 2" en : Titre 2

4. transforme les paragraphes de style "Titre 3" en : Titre 3

5. transforme le texte italique+gras (même dans les tableaux) en : texte italique gras
6. transforme le texte italique (même dans les tableaux) en : texte italique
7. transforme le texte gras (même dans les tableaux) en : texte gras
8. transforme les tableaux Word en tableaux SPIP en ajoutant un saut de ligne avant et après si nécessaire. C’est même la chose la plus utile de cette macro.
9. transforme les sauts de ligne individuels entre deux paragraphes de style "Normal" en :

10. transforme les paragraphes de style "Liste" en : - texte de liste (avec un tiret devant)
11. transforme les notes Word en note SPIP (c’est-à-dire avec les doubles crochets avant et après, et c’est très utile aussi) : [1]
12. transforme le texte gris (style "Code") en l’entourant avec les mots code pour que cela apparaîsse comme du code.... :

texte code
texte code


13. transforme le texte vert pas beau (style "Html") en : texte html avec html avant et après
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. 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 reconnaitrait 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.

- Probleme de "
" imbriqué dans des accolades dans le code généré :
Si, par exemple, la fonction Find de Visal 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ème 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.


[1une note

Un message, un commentaire ?

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é ?