Introduction à IDJS, nouveau format de scripts InDesign
January 11, 2023 | Extras | fr | en
La blague la plus cocasse que l'on puisse lire concernant la migration d'ExtendScript vers UXP se trouve dans la documentation (générée par IA ?) d'Adobe : « ExtendScript utilise une version obsolète de JavaScript (ES3), de l'époque où JavaScript était codé sur des cartes perforées. » MDR ! Adobe essaie de nous persuader que nos bons et loyaux scripts JSX, soudain frappés d'obsolescence programmée, étaient en fait rédigés sur des papyrus. Reste à vérifier si IDJS entraînera dans InDesign la révolution annoncée…
Malheureusement, il n'y a guère d'informations de fond. Certes, l'équipe d'Adobe.com nous a délivré un aperçu technique lors de la sortie d'InDesign 2023 (18.x) en octobre dernier, mais cette « documentation » est si dispersée et lacunaire qu'elle apparaît comme un brouillon de spécification griffonné sur un coin de table et mis en ligne tel quel à la fin d'un repas arrosé.
Espérons que des guides plus solides soient en cours de rédaction — peut-être est-ce le cas sur GitHub, github.com/AdobeDocs/uxp-indesign, à supposer que les « lorem ipsum » se métamorphosent en phrases intelligibles. Pour l'heure, c'est aux développeurs de scripts de se forger eux-mêmes, empiriquement, une documentation qui tienne la route. Certains de mes confrères sont heureusement à pied d'œuvre. C'est à eux que l'on doit les premières expérimentations en matière d'UXP (Unified Extensibility Platform) et de scripting IDJS.
Ce que vous devez savoir sur UXP
Définition liminaire : UXP est la « nouvelle infrastructure pour les scripts et plugins des applications Creative Cloud », entendez la baguette magique, la boîte de Pandore, propageant enfin le JavaScript moderne (ECMAScript 6) et le HTML de compétition dans nos fenêtres et nos panneaux InDesign, Photoshop, etc. La ressource la plus précieuse que j'ai trouvée à ce sujet est la playlist YouTube initiée par Davide Barranca il y a déjà presque deux ans : UXP: Things you need to know. Dans un anglais parfait, pertinent et stimulant, Davide vous expose ici de A à Z les principes fondamentaux (et les chausse-trapes) d'UXP.
→ UXP: Things you need to know (Videos)
→ V. aussi le brillant opus “Adobe UXP plugins development with React JS”
Quelques facettes annoncées d'UXP
Les annonces relatives à UXP et au scripting UXP postées l'année dernière sur l'Adobe Tech Blog méritent encore d'être lues aujourd'hui pour se faire une idée du battage et des mutations à venir. Je vous recommande tout spécialement les billets signés Padma Krishnamoorthy.
→ Big Updates Coming to UXP (22-Mar-2022)
→ Announcing UXP Scripting in Photoshop (9-Aug-2022)
→ V. aussi, de V. Nachiyar, InDesign v. 18 Ships w/ Scripting Powered by UXP
→ et, de P. Barman, How Openicon Uses a Single UXP Codebase for Multiple Creative Cloud Apps
Les gourous du scripting InDesign à la rescousse
Concernant plus particulièrement le scripting UXP pour InDesign — c'est-à-dire l'extension IDJS destinée à remplacer (à terme) notre bon vieux JSX — un bel aperçu a été publié en novembre par Gregor Fellenz, en allemand (translate.google est votre ami si vous ne parlez pas allemand !) En décembre, Martin Kraetke postait à son tour un excellent billet de synthèse, examinant notamment les ajustements syntaxiques à opérer entre ExtendScript et ECMAScript 6.
→ Quickstart UXP Scripting (DE), par G. Fellenz
→ Was bringt InDesigns neue UXP Scripting API? (DE), par M. Kraetke
Roland Dreger sur GitHub
Enfin, le scrupuleux Roland Dreger — l'un des développeurs de scripts InDesign les plus talentueux — est tombé dans la marmite et a ouvert sur GitHub un repo InDesign UXP Scripting, collection de « ressources, articles et didacticiels autour du scripting UXP pour Adobe InDesign ». Mieux, il a commencé à tester des bouts de code IDJS à une adresse voisine : InDesign UXP Scripting Snippets. Bien qu'embryonnaires, ces ressources permettent de se familiariser avec les concepts sous un angle concret, et de se lancer dans l'écriture de scripts en dialecte IDJS.
→ InDesign UXP Scripting (Ressources)
→ InDesign UXP Scripting Snippets