Comment ça marche ?

Supposons que votre article (ou le document tout entier) soit formaté comme ceci :

Au départ, un simple document InDesign contenant des « notes balisées » à votre sauce.

À ce stade, toutes les notes de bas de page « en puissance » se signalent, dans le texte, entre crochets : <NOTE>. Le script propose également deux formats de balisage plus XML-friendly : <note>NOTE</note> et <footnote>NOTE</footnote>. Mais vous pouvez sans problème ajouter d'autres motifs de balisage si vous avez quelque expérience des expressions régulières. Pour ce faire, ouvrez le script dans un éditeur et étendez les choix offerts par l'objet FOOTNOTE_PATTERNS déclaré au début du code :

var FOOTNOTE_PATTERNS = {
    "<footnote>NOTE</footnote>" : "<footnote>([^<]+)</footnote>",
    "<note>NOTE</note>" : "<note>([^<]+)</note>",
    "<NOTE>" : "<([^>]+)>",
    };
 

Lorsque vous lancez ReFoot.js depuis la palette Scripts, vous obtenez une boîte de dialogue rustique qui vous permet de choisir le balisage approprié (issu du jeu FOOTNOTE_PATTERNS) :

Sélectionnez le format (« motif ») des notes à éjecter en bas de page.

Il ne reste plus qu'à presser le bouton « OK » :

Et voilà !

Limitations

Motifs d'expressions régulières. — Les motifs fournis par défaut ne reconnaissent pas une note qui contiendrait, soit un crochet ouvrant, soit un crochet fermant (selon les cas). Par conséquent, il vous faudra peut-être ajouter des motifs moins triviaux pour manipuler des notes structurellement plus corsées. Lors de la création d'un nouveau motif d'expression régulière, gardez bien à l'esprit que votre regex sera à la fois interprétée par le moteur GREP d'InDesign et par la couche RegExp de JavaScript. Les deux ne coïncident pas en tous points. Vous devez enfin utiliser des parenthèses capturantes de niveau 1 afin d'isoler la note visée ($1) à l'intérieur du motif général ($0).

Styles. — L'actuelle version de ReFoot.js crée uniquement des notes de bas de page « plein texte », c'est-à-dire sans enrichissement. Par conséquent, toute mise en forme de caractère appliqué au niveau du balisage sera perdue.

(Merci à Christoph Weis qui m'a donné l'idée de ce petit script.)

• Voir aussi : UnFoot.js