Getting Started with IDJS (InDesign UXP Scripting Format)
January 11, 2023 | Extras | en | fr
The funniest thing I've read about the ExtendScript-to-UXP migration is in the (AI-generated?) documentation from Adobe: “ExtendScript uses an antiquated version of JavaScript (ES3), from the era when JavaScript was coded on punched cards.” LOL! Adobe is trying to make us feel like our JSX scripts are ancient artifacts, but let's see if IDJS will actually bring about a technological revolution in InDesign…
Unfortunately, there's not much information out there on this subject yet. The developers at Adobe.com have attempted to provide a cursory overview after InDesign 2023 (18.x) was released last October, but it's like trying to find a needle in a haystack of irrelevant and repetitive data.
I'm hoping that more thorough guides will be created soon—maybe on GitHub, github.com/AdobeDocs/uxp-indesign (when the many “lorem ipsum” will mutate into statements!)—but for now, it seems like script developers will have to rely on trial and error to document their own experiences. Thankfully, some of my colleagues are already on the case and are leading the charge for the “Unified Extensibility Platform” (UXP) revolution and the IDJS scripting file format.
UXP “Things You Need To Know”
First and foremost, UXP is the "modern way to create scripts and plugins for Creative Cloud products", it's like a magic wand that turns modern JavaScript (ECMAScript 6) and HTML markup into controls in native application windows. The most valuable resource I have seen on this subject is the YouTube's playlist UXP: Things you need to know created by the wizard Davide Barranca almost two years ago!
→ UXP: Things you need to know (Videos)
→ See also Davide's great opus “Adobe UXP plugins development with React JS”
Learning from UXP Announcements
Some UXP and UXP Scripting announcements posted last year on Medium's Adobe Tech Blog channel are still worth reading today to get a sense of the hype. Read especially those written by Padma Krishnamoorthy.
→ Big Updates Coming to UXP (22-Mar-2022)
→ Announcing UXP Scripting in Photoshop (9-Aug-2022)
→ See also, from V. Nachiyar, InDesign v. 18 Ships w/ Scripting Powered by UXP
→ and, from P. Barman, How Openicon Uses a Single UXP Codebase for Multiple Creative Cloud Apps
InDesign Scripting Gurus to the Rescue
Now, regarding more specifically UXP Scripting for InDesign—that is, the IDJS “specification” intended to ultimately replace JSX—a nice overview was posted last November by Gregor Fellenz, in German (translate.google is your friend if you don't speak German!) Last December, Martin Kraetke posted in turn an excellent article that sheds additional light on the syntactic jump from ExtendScript to ECMAScript 6. (UXP scripts are based on the V8 engine from Google Chrome, associated to a specific API wrapper for handling InDesign components.)
→ Quickstart UXP Scripting (DE) by G. Fellenz
→ Was bringt InDesigns neue UXP Scripting API? (DE) by M. Kraetke
Roland Dreger's GitHub Repositories
Finally, the scrupulous Roland Dreger—one of the most valuable script developers in the InDesign universe—jumped into the pot and opened the InDesign UXP Scripting repository, a set of “collected resources, articles and tutorials around UXP Scripting in Adobe InDesign”. On the other hand, he started experimenting with IDJS in a second repository: InDesign UXP Scripting Snippets. Although still in their infancy, these resources will allow you to familiarize yourself with the new concepts and get started writing scripts in the IDJS dialect.
→ InDesign UXP Scripting (Resources)
→ InDesign UXP Scripting Snippets