PoussĂ© vers le langage Python â trĂšs Ă la mode en ce moment, mais moi, la mode… â par nĂ©cessitĂ© pragmatique (vu les prix des dĂ©veloppeurs, autant s’y mettre soi-mĂȘme), j’ai dĂ©couvert ce langage informatique, tout nouveau pour moi. C’est aussi simple Ă manipuler qu’efficace !
Je vous rassure, je ne suis pas devenu dĂ©veloppeur Python en 2 semaines d’« auto-formation », d’autant moins en considĂ©rant que mon auto-formation s’est rĂ©sumĂ©e Ă me creuser la tĂȘte pour trouver la formulation de recherche Duck Duck Go qui me renverrait les bouts de codes pertinents que je pourrais piquer pour mes programmes…

(source : Wikipédia).
Mais j’ai rĂ©solu mon problĂšme. Na.
Le ProblÚme (avec un grand « P »)
Comment faire passer un article contenu dans un document InDesign (donc tout beau, tout propre, et tout validĂ© dans sa version finale par son auteur.trice) vers le logiciel Microsoft Word, tout en conservant les hyperliens Ă l’intĂ©rieur du document (vers des ancres) fonctionnels ?
En utilisant un export HTML (hérité) depuis InDesign, et en ouvrant ce fichier avec Word.
OK, mais en faisant cela, les liens internes au fichier InDesign deviennent relatifs au fichier HTML enregistré sur le disque, et Word ne reconnaßt plus ces liens, qui ne fonctionnent plus.
Des liens…
Voici comment InDesign gĂ©nĂšre les liens vers les ancres dans son export HTML (hĂ©ritĂ©)…
…alors que pour que cela fonctionne dans Word, il faudrait que ces liens ressemblent plutĂŽt Ă :
(notez la disparition du nom du fichier HTML dans l’attribut « href » de la balise « a »).
…vers des ancres
Quant aux ancres, elles apparaissent ainsi dans le fichier HTML gĂ©nĂ©rĂ© par InDesign…

…alors que pour ĂȘtre comprises par Word, elles devraient plutĂŽt ressembler Ă :

(l’attribut « id » de la balise « a » a Ă©tĂ© renommĂ© en « name »)
On conserve ainsi les liens hypertextes vers des cibles internes au document fonctionnels une fois le document ouvert dans Word.
La solution (avec un petit « s »)
Pour effectuer ces changements, on peut faire comme cela :
1°/ Utiliser le logiciel NotePad++ (sur PC) ou Sublime Text (sur Mac) pour faire un rechercher/replacer sur le nom des ancres ; on transforme alors :
<a id="
en :
<a name="
2°/ Une fois le document ouvert dans Word, on peut supprimer la mention au fichier en affichant les codes de champ (avec ALT+F9) et en faisant un nouveau rechercher/remplacer sur le nom du fichier HTML (pour le remplacer par [rien]).
Ainsi, les hyperliens dans Word qui ressemblaient Ă …

…deviennent…

…et se remettent Ă fonctionner ! (aprĂšs avoir fait ALT+F9 pour faire disparaĂźtre ces satanĂ©s codes de champs et enregistrĂ© le fichier en .docx).
Ăa, c’Ă©tait la solution avec un petit « s ». Il y en a donc une autre…
La Solution (avec un grand « S » cette fois)
Franchement, « faire du Word », ça n’amuse personne. Mais manipuler les codes de champs dans Word, on est Ă deux-doigts d’un excĂšs de pĂ©nibilitĂ© au travail tout Ă fait rĂ©prĂ©hensible par la loi. Il fallait donc trouver une Solution (avec un grand « S »). C’est Ă ce moment que les Monty Pythons interviennent :

OK, ils n’ont rien Ă voir lĂ -dedans, Ă part qu’ils ont donnĂ© leur nom au langage informatique qui va me permettre de rĂ©soudre mon problĂšme : le Python.

La premiĂšre chose, c’est que Python est un langage informatique « relativement » simple, surtout parce qu’on trouve Ă©normĂ©ment de doc. en ligne et que d’autres ont dĂ©jĂ rencontrĂ© les mĂȘmes problĂšmes que moi (j’en suis sĂ»r).
La deuxiĂšme chose, c’est que si je peux faire quelque-chose Ă la main sur mes fichiers, il doit y avoir moyen de le faire sans les mains.
Donc hop ! Je remonte mes manches virtuelles, je bricole un peu par ci, je creuse un peu par lĂ , je copie/colle beaucoup, je supprime, je recommence… Je dĂ©couvre, quoi ! Et Ă la fin, j’ai le plaisir d’obtenir mon premier script en Python fonctionnel, pompeusement intitulĂ© :
correct-indd-html-v1.4.py
Opérations effectuées
Ce programme :
- remplace l’attribut « id » des ancres pour le remplacer par « name » ;
- supprime la mention au fichier HTML dans les liens vers les ancres.
On lance le script, on dĂ©signe le fichier Ă traiter (le fichier cible n’est pas modifiĂ©, une copie du rĂ©sultat est enregistrĂ©e sur le disque Ă cĂŽtĂ© du fichier original), le script corrige tout cela tout seul (en utilisant les fonctions de rechercher/remplacer GREP de Python) et quand j’ouvre le nouveau fichier avec Word, tous mes liens sont fonctionnels !
Ăa valait bien un grand « S », ça, non ?
Lien vers le script ‘correct-indd-html’
Les fichiers de ce script de conversion des ancres et des liens dans un fichier HTML (hĂ©ritĂ©) gĂ©nĂ©rĂ© par InDesign dans le but de l’ouvrir avec Microsoft Word et de conserver ces liens fonctionnels est disponible sur mon dĂ©pĂŽt GitHub (toutes versions) ici.
Vous pouvez Ă©galement tĂ©lĂ©charger la version 1.4 du script directement depuis ce lien ou ci-dessous (copie enregistrĂ©e ici, avec fichier d’aide correspondant) :
Avertissement
Bien sĂ»r, ce script est Ă utiliser « à vos risques et pĂ©rils », et vous seriez mignons (et mignonnes) de ne l’utiliser que pour faire des tests et en aucun cas en exploitation, ou alors vous prenez vos responsabilitĂ©s.
Une fois cet avertissement compris et assimilĂ©, depuis ce premier programme, j’en ai Ă©crit bien d’autres, des scripts Python. Et j’en ai encore au moins autant en tĂȘte qui ne demandent qu’Ă Ă©clore… Ă bientĂŽt !