Harper Marie,
You need to go through several steps. The first is to change
(1)
Animals
Cat 2, 4
Dog 1, 2, 5
into
(2)
Animals Cat 2, 4
Animals Dog 1, 2, 5
This you want to turn into
(3)
Animals Cat 2
4
Animals Dog 1
2
5
The next step is this:
(4)
Animals Cat 2
Animals Cat 4
Animals Dog 1
Animals Dog 2
Animals Dog 5
Finally, you apply Fred's step, so to speak, to move the page numbers to the beginning in each line and sort the text.
You can do all this in JavaScript, you don't need external disk files. It's probably easiest to work on an array to get from the first to the second stage and from the third to the fourth. The second to the third stage is probably best done on a string. You can manipulate this string using JavaScript's various text functions, including the sort.
In Indesign/JavaScript, to get the contents of a document, place the cursor somewhere in the text and do this:
myString = app.selection[0].parentStory.contents;
which returns the document as a string. To get the contents as an array, do this:
myArray = app.selection[0].parentStory.contents.split('\r');
The string is split on \r, the return character, so in this case you get an array of lines (paragraphs, really). To turn an array into a string, use
myString = myArray.join('\r');
This string can be used to replace the old index with the new one: the last line in your script could be:
app.selection[0].parentStory.contents = myString;
Hope this helps.
Peter
... View more