1. If people complain it misses features (such as GREP styles), they can be invited to write a workaround themselves!
2. JS is version independent. Well, largely, at least. If some properties in CS6 or '7 change names (again!), it should be relatively easy to update.
3. JSON is a general format (isn't it? I'd have to look into it) so, finally, the writers of Scribus have something to look into.
1. You need the same ID version as the document, because otherwise you cannot open it.
2. It Won't Ever Work, because (if you read that thread) people who "need" the downsave are expecting way too much.
1. Does this mean I can stop working on my experimental CSx binary-image-to-INX conversion?
Oh, [Jongware-22], so your witty foil spurs me on!
> 2. JS is version independent. Well, largely, at least. If some
> properties in CS6 or '7 change names (again!), it should be
> relatively easy to update.
No, no! (And next up is CS5.5). The beauty is that as long as you set app.scriptPreferences.version to 5.0 before you start parsing the document, then you don't have to wory about name changes. (Of course, that makes it impossible to gracefully handle CS4/CS5 features. But OK, sure, you can set it to 7.0 and handle the CS5 features and not worry about CS5.5/CS7 changing the names...)
> 3. JSON is a general format (isn't it? I'd have to look into it)
> so, finally, the writers of Scribus have something to look into.
Kind of like saying, "Oh, your script writes its output in UTF-8? Great, no problem!" when it's really UTF-8 but when you look inside its XML. You know what else is XML inside? That's right, IDML! Not that the writers of Scribus couldn't look at IDML. It's 100% documented. [OK, maybe 95%]
> 1. You need the same ID version as the document, because otherwise
> you cannot open it.
Noooo! The key is you give the script to the CS5 user who wants to downsave for CS3.
> 1. Does this mean I can stop working on my experimental CSx
> binary-image-to-INX conversion?
Wait...are you the reason all these people are reporting corrupt INDD documents? Oh, Jongware!
I wondered if there wasn't a format other than IDML or INX that descrbed reasonably well the format of an InDesign document, and then I realized that the Scripting DOM is basically such a model. And even better, since you can ask InDesign to use an older version of the scripting DOM, you can ensure that you don't give CS3 anything that it shouldn't be able to evaluate.
Apparently I was missing a great irony. It turns out that actually, INX and IDML use the Scripting DOM as their model. To quote from the CS2 INX docs (I figured going back in time was useful):
INX is an XML-based format used to serialize and deserialize the InDesign scripting DOM. This format is most useful with the Save Backwards feature of InDesign, which allows you to use an earlier version of InDesign to open a document that was created in a later version of InDesign. InCopy and GoLive also use the INX format. Each of these usages has a different set of valid elements and attributes; this document addresses only the elements used in the Save Backwards feature. However, concepts introduced here also apply to other situations.
So, my idea isn't really new at all. (Worse, I probably read that section of the IDML/INX documentation and just forgot about it).