Sorting alphabetically text blocks

Community Beginner ,
Mar 01, 2021 Mar 01, 2021

Copy link to clipboard

Copied

Hi there,

While still a begginer with scripting, I'm looking forward to learn some more about scripting and ID.

For the time being, I'm having a time-consuming routine that I would like to change thanks to scripts.

Here's where I need help:

 

- I need to sort alphabetically text blocks based on a Title (Paraph.style Title 1, for instance, the Level 1, if I may say). I cannot use the well known scripts sort-alpha or any I've found on the web, like the one included in ID, because my text blocks include sub-paragraphs, with various para.styles. When using them, the sub-paragraphs would be put out of their sections. To understand the need, just think about translating texts that are properly listed alphabetically in english. Obviously they're not listed properly anymore after the translation. 

How would you tackle the task ?

 

apart from the Toc, there 's no real hierarchy level in paraph styles, as far I know. Ther's no way, so far, to manipulate groups of mixed paraph.styles (except by using text frames… you see me coming^^).

 

Here's an example:

Before (meaning, after translation)

CCCC (Style: Title 1)

     Title 3 level 2

          text 5

          text 6

BBBBB (Style: Title 1)

     Title 2 level 2

          text 3

          text 4

AAAA (Style: Title 1 level 1)

   Title 1 level 2

          text 1

          text 2

 

After sorting them properly:

AAAA (Style: Title 1 level 1)

   Title 1 level 2

          text 1

          text 2

BBBBB (Style: Title 1)

     Title 2 level 2

          text 3

          text 4

CCCC (Style: Title 1)

     Title 3 level 2

          text 5

          text 6

Idealy, I would select my text blocks then run the script, very similar to sort-alpha scripts we use so far.

The first line of my selection would be in the style used for putting into order the texts

After thinking about it, I believe we could probably break down the task into smaller and simpler sub-scripts, like so :

 

1- Upon selection, detect groups of texts (starting from the 1st letter of Title 1 paraph.style, up to the next one - if any). Record position of 1st letter of selection.

- cut/ paste into new text frames the various group texts, as they are (meaning, keeping the current formatting)

2- - read the first letter of the text frames and sorting alpha the text frames

- Merge the frames

3- Copy/ paste the text from the merged text frame at the initial recorded position

- Delete text frame

 

What do you think ?

 

 

TOPICS
How to, Scripting

Views

242

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Mar 04, 2021 Mar 04, 2021

Copy link to clipboard

Copied

A good first project to sink your teeth into. Your algorithm seems to make a fair amount of sense on paper. You will learn a lot about moving paragraphs around and how to style them with this project; my main piece of advice: Work backwards through a given frame if you are removing paragraphs. 

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Mar 11, 2021 Mar 11, 2021

Copy link to clipboard

Copied

Hi guys,

Happilly, I managed to find a working solution, thanks to Peter Kahrel's awsome script "TableSort".

I'm now trying to create scripts to make a 3-steps sequence for a more versatile use (and to actually give really something useful to the community)

 

Basically, the process is :

- Select the mixed paragraphs I want to sort

- Use grep for adding a tab at the beggining of the first important paragraph lines (which have a specific Title style)

- Run TextToTable

- Remove the empty paragraph (End of cell - glyph "#") that I'm still trying to understand why the heck there're here and what would be the grep expression for removing them.

- Run P.Kahrel's TableSort.jsx (with keep formatting option on, obviously) (1 column/ tab option for both entries)

- Run TableToText to get back the wanted paragraphs

 

So far, it's not a 1-clic job, but it's working very fine, and quick enough.

 

Then, what now… another possible help (please) ?

Can anyone help me with :

 

- grep expression for removing the "space" at the end of a paraph, located at the very end of a cell (see image "end of cell")

 

 

 

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Mar 11, 2021 Mar 11, 2021

Copy link to clipboard

Copied

Here is the Before/ After sample of what I'd like to do with the grep expression

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Mar 11, 2021 Mar 11, 2021

Copy link to clipboard

Copied

For the sake of providing the answer to my own question 😛

Deleting empty bit at the end of the cell.

Select the table

Find: +\z

Leave blank the change part

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Mar 16, 2021 Mar 16, 2021

Copy link to clipboard

Copied

LATEST

Just giving an update on the project, in case someone is interested in juming in, or is just curious.

After being able to talk with our demi-god of us all (Peter Kahrel), who was very helpful and kind, I'm heading to provide 2 scripts.
- 1) A script using Conditionnal Text. The idea is to collapse the non relevelant text blocks, and only show the titles. After sorting the list in a traditionnal way (ID built-in script), we delete the Condition and recover our blocks.

 

- 2) Another script, that will automate the sorting with some options like, reverse sorting and swapping titles (For matters like sorting John_Doe vs Doe_John)

 

Stay tuned…

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines