Ceux qui auraient découvert chain_queries dans notre billet consacré à ce JavaScript remarqueront des changement significatifs dans l’interface : par rapport à la version initiale, le panneau présente désormais deux cases à cocher : Seulement évaluer et, en grisé, Conserver la mise en forme. chain_queries_panneau_diff.png

En effet, Peter Kahrel a refondu son JS en le dotant d’une nouvelle fonction (originellement celle du JS chain_queries_output annoncé sur twitter) qui permet d’extraire et d’enregistrer dans un nouveau document le résultat d’une ou de plusieurs expressions régulières. Pour l’activer, rien de plus simple : après avoir sélectionné la ou les regex voulue(s) parmi celle de la liste, cochez la case Seulement évaluer (et Conserver la mise en forme si besoin) et cliquez sur OK (pour utiliser la fonction première de chain_queries, à savoir l’exécution à la chaîne de plusieurs requêtes GREP pré-enregistrées, il ne faut donc pas activer cette option).

chain_queries_seulement_evaluer.png

Aussitôt s’ouvre un nouveau document dans lequel figure le résultat de la regex. Le document, l’article ou la sélection sur lequel porte la regex reste intact, même si votre expression régulière comporte un remplacement.

À quoi cela sert-il d’avoir le résultat d’une regex si elle n’effectue pas les Rechercher/Remplacer demandés ? À bien y réfléchir, à beaucoup de choses.

On peut tout d’abord vérifier que la regex exécute bien ce qu’on lui demande, rien de plus, rien de moins. Exemple : vous devez sélectionner toutes les adresses e-mail d’un document pour leur appliquer un style de caractère. Vous testez manuellement sur deux-trois pages la regex \S+@\S+. Par acquis de conscience, vous préférez la tester sur l’intégralité de votre texte. Vous lancez chain_queries, et là, dans un nouveau document, vous découvrez la liste de toutes les adresses courriel classées, par défaut, par ordre alphabétique. Mince ! Vous ne l’aviez pas remarqué : certaines sont encadrées ou suivies de signes de ponctuation qui se retrouvent donc dans la mise en forme.

Vous modifiez votre regex comme suit : \b\S+@\S+\b. Vous l’enregistrez et lancez chain_queries en mode Seulement évaluer. Vous visualisez aussitôt le résultat. C’est bon. Vous pouvez appliquer la regex à votre texte en toute tranquillité.

Deuxième exemple : dans un ouvrage portant sur la famille Tournier, l’auteur vous demande la liste de tous les prénoms des membres de la famille. Une regex comme \b[-\w]+(?=\sTournier) permet de les retrouver. Enregistrez la requête (ici « famille tournier »), lancez le JavaScript. La liste des prénoms est prête, classée par ordre alphabétique, les doublons ayant été supprimés (le JS le fait automatiquement).

Dernier exemple. Vous avez mis en page un ouvrage composé dans InDesign de plusieurs articles réunis dans un livre. Chaque article comporte une bibliographie. L’auteur souhaite une bibliographie générale. Aucun problème. Les paragraphes des références bibliographiques ont un style de paragraphe spécifique. Pour les retrouver, il suffit d’indiquer uniquement le nom du style dans Rechercher le format, tous les autre champs restant vides. Enregistrez la regex. Lancez chain_queries en mode Seulement évaluer et cochez la case Conserver la mise en forme. Ainsi, tous les attributs de caractère sont préservés (autrement dit, les styles de caractère et de paragraphe ont été eux aussi exportés dans le nouveau document). Cette option annule néanmoins le classement par ordre alphabétique, ce qui se rétabli facilement. Bien sûr, les doublons sont supprimés.

Ce ne sont là que des exemples. D’aucuns y trouveront sûrement d’autres usages. N’hésitez pas à nous les faire connaître. La nouvelle version de chain_GREP_queries est téléchargeable ici.