Избранное »

22.09.2014 – 07:27 | 2 Комментарии | 6 793 views

Здравствуйте все, кто работает в Индизайне!
Извещаем вас о том, что на youtube.com начал работу канал «InDesign Мастерская вёрстки». Там уже размещены 13 видео с полным описанием как работать с программой DoTextOK. И другие интересные темы, касающиеся …

Читать полностью »
Работа в InDesign

Хитрости и секреты, приемы работы, уроки

Новая версия!

Особенности новой версии Индизайна

Плагины

Описание плагинов, информация о плагинах для работы с Adobe InDesign

Скрипты

Готовые к использованию скрипты для Adobe InDesign

Скриптинг

Описание языка, приёмов и методов программирования для Adobe InDesign

Home » Скрипты

DoQueryList — программа обработки текста запросами

Добавлено на 27.10.2012 – 10:57Без комментариев | 5 263 views

Вот скрипт, решающий следующие задачи:
- сохранение очередности текстовых и grep-запросов, хранящихся в стандартных каталогах индизайна, для повторного исполнения;
- копирование текстовых и grep-запросов в отдельные папки, а также сохранение списка очередности их вызова в отдельном каталоге для повторного исполнения их как на этой машине, так и на другой.
- выполнение последовательности запросов, сохраненных этим скриптом на другой машине, без записи их в стандартные каталоги индизайна.

Идея скрипта в том, что вместо того, чтобы засорять стандартные каталоги индизайна многочисленными пользовательскими запросами, скрипт берет по списку очередной запрос из пользовательского каталога, помещает его в один из стандартных каталогов, выполняет и удаляет его. После этого обрабатывается следующий запрос.

Чтобы пользоваться этим скриптом, у пользователя должны быть административные права полного доступа к каталогам индизайна, где хранятся запросы.
Конечно, можно разобраться в работе скрипта по всплывающим подсказкам, которые есть для каждой кнопки. Но чтобы не было вопросов по логике программы, имеет смысл прочитать это руководство.

Запрос — сохраненный опыт обработки текста

Для обработки текста использование операций поиска-замены и обработка текста grep-запросами — нормальная практика работы с текстом. И если иметь большой набор запросов на разные случаи жизни, и проверенные очередности их запуска, то подготовка текста будет выполняться очень просто. Значит, надо иметь возможность готовить запросы и иметь средство запоминать очередности выполнения запросов под  своими именами для повторного использования.

В программе InDesign есть отличный инструмент создания, проверки и запоминания созданных запросов для дальнейшего использования.

Запрос должен выполняться без ошибок. Вот пара примеров сообщений об ошибках:

Запросов с подобными сообщениями быть не должно.

Пиктограмма «дискета» — инструмент сохранения проверенного запроса со своим именем:

Каталоги запросов

Индизайн ищет запросы в каталогах программы и каталогах пользователя.

Каталоги программы, это
C:\Program Files\Adobe\Adobe InDesign CS5.5\Presets\Find‐Change Queries\Grep\en_US\
для grep‐запросов и

C:\Program Files\Adobe\Adobe InDesign CS5.5\Presets\Find‐Change Queries\Text\en_US\
для поиска‐замены текста.

Пользовательские каталоги у всех разные, одно слово «пользовательские».

Так grep‐запросы помещаются в
~\Adobe\InDesign\Version 7.5\en_US\Find‐Change Queries\GREP\

Запросы поиска‐замены текста тут:

~\Adobe\InDesign\Version 7.5\en_US\Find‐Change Queries\Text\

Тильда ‘~’ означает путь к вашему пользовательскому каталогу. Для разных операционных систем и версий он разный. В этих маршрутах en_US означает, что используется программа с американским интерфейсом. Для русского будет ru_RU.

На макинтоше доступ к пользовательским каталогам выглядит иначе.

В меню готовых запросов окна Find/Change сперва идут текстовые запросы, а затем grep‐запросы (см. следующую картинку). Разделения на прикладные и пользовательские нет. Вот на картинке ниже для примера были показаны два запроса, в их имени есть ‘‐dtok’. Они оба в размещены пользовательских каталогах, но из меню ‘Find/Change’ этого узнать нельзя. Наверное, в этом есть здравый смысл – программа так защищается от создания одноимённых запросов в разных каталогах.

Имеющийся в программе инструмент создания запросов очень хороший, с его помощью можно сделать, отладить и сохранить для повторного использования любую изощренную обработку текста. Но в штатном режиме надо делать много рукодвижений для выполнения каждого из них, и нет удобного средства сохранять очередность выполнения запросов.  И эту проблему можно решить данным скриптом. Желательно создать для него в стандартной папке скриптов Scripts Panel отдельный каталог.

Скрипт DoQueryList — работа с запросами

Окно программы выглядит так:

В левом окне сворачиваются/разворачиваются каталоги с запросами обработки текста и grep-запросами. Двойным щелчком на запросе или нажатием на кнопку ‘+’ выбранный запрос помещается в правое окно. Перед названием текстового запроса будет ‘T:’, перед названием grep-запроса — ‘G:’.

Запросы упорядочиваются стрелками вверх и вниз — предварительно надо выделить строку.

Двойной щелчок на запросе в правом окне удалит его из списка. Другой вариант удаления — пиктограмма ‘красный крест’. С помощью этой кнопки можно одним щелчком удалить несколько выделенных строк.

 Выполнение запросов

Кнопка ‘Обработать текст’ предназначена для обработки текста выбранными запросами. Выполняются не все запросы правого окна, а только те, что предварительно выделены.

Обрабатывается или выделенная часть текста, или вся статья, когда курсор просто в тексте.

Если запрос выполнен, рядом с ним появится знак ‘+’.

Снять эти плюсы можно щелчком на пиктограмме ‘красный крест’. Также эти плюсы исчезнут при любой операции с запросами (добавление, перемещение, повторный запуск и пр.)

Работа со списками и запросами

Пиктограммы — кнопки со стрелками на листе бумаги — для сохранения перечня запросов и загрузки одного из сохраненных ранее перечней. Пользователь должен иметь административные права помещать файлы и создавать папки в каталоге, где размещён этот скрипт.

Сохранение перечня запросов

После щелчка на кнопке появится меню:

В этом перечне будут сохранены названия запросов, хранящихся в стандартных каталогах индизайна.

Сохранение списка запросов и самих запросов

Очевидно, что если хочешь поделиться опытом обработки текста своими запросами, или работаешь на нескольких машинах, то надо сохранить как перечень запросов, так и сами запросы. Скрипт сохранит всю эту информацию в отдельном каталоге, если первый символ имени будет плюс.

Этот каталог размещается в той же папке, где и скрипт.

Название начинается с плюса, в данном случае +QueryList@Newspaper.indique, создаётся каталог с таким именем, и в нём сохраняются перечень запросов и сами запросы.

Загрузка созданных ранее запросов

Загрузка созданного ранее списка запросов выполняется этой кнопкой:

Всегда открывается папка, в которой размещен сам скрипт, по умолчанию там создаются все пользовательские наборы. Поэтому имеет смысл именно в него помещать все созданные кем-то наборы запросов.

Для загрузки данных надо выделить indique-файл в выбранном каталоге сохранённых запросов и нажать ОК.

Если выбирается indique-файл, в начале имени которого нет плюса, то будут загружаться запросы, хранящиеся в стандартных каталогах. Если имя indique-файла начинается с символа ‘+’ (будем именовать его как +indique-файл ), то загружаются запросы из папок Text и Grep рядом с этим файлом.

При загрузке запросов, перечисленных в +indique-файле, в правом окне перед именем каждого запроса будет звездочка.

Так визуально разделяются случаи использования запросов из стандартных каталогов и запросов из пользовательских каталогов.

Одновременное присутствие пользовательских и стандартных запросов

Очевидно, что можно в созданную ранее последовательность запросов добавить стандартные. Они будут исправно работать. Сохранить эту смесь можно только в отдельном каталоге, имя которого будет начинаться с ‘+’. При попытке сохранить её в обычном indique-файле будет выведено сообщение об ошибке.

Информация об используемом каталоге пользовательских запросов

Очевидно, что возможность загружать созданные запросы может обернуться проблемой — где взять информацию, какой каталог сейчас используется.

Чтобы узнать это, поместите курсор в шапку окна скрипта. В информационном окне появятся сведения о списке, который только что был загружен или сохранён.

Завершение работы

Сохраняется не только содержимое окна, но и информация, из какого пользовательского каталога были взяты эти запросы. При повторном запуске, если этот каталог ещё есть, список загрузится из него, без звёздочек, как будто это на время загрузки скрипта еще один стандартный каталог запросов. Также сохраняется информация о положении окна программы на экране. Если оно было передвинуто, при повторном запуске оно откроется на том месте, где было закрыто.

Выбор языка

Язык меню выбирается щелчком на пиктограмме с флагом.

Благодарности

Благодарю Питера Карела (Peter Kahrel) /Великобритания/, Лорана Турньера (Laurent Tournier) /Франция/, Жаннету Кат (Janneta Kat) /Германия/, Татьяну Прокофьеву (Россия) и Алексея Чмеля (Россия) за помощь в переводе сообщений с русского на другие языки и участие в тестировании программы.

 

Продолжение следует?

Думаю, да. Невозможно сразу учесть абсолютно всё, поэтому обновления будут.

Чтобы получать их, пришлите письмо со своим именем на адрес doquerylist@gmail.com.

Но и Вы не стесняйтесь. Будут вопросы, предложения, идеи — пишите.

Это же так классно — играючи делать то, что раньше отнимало заметное время.
Сделаем подготовку текста к вёрстке интересным и лёгким занятием!

 

Михаил Иванюшин

ivanyushin#yandex.ru

 

Дополнение от 11 мая

 

Правки

1. Иногда возникал отказ обработки текста по причине, что Text Column не обрабатывается. Исправлено, теперь обрабатывается.

2. При загрузке нового файла все строки правого окна стразу выделяются.

3. Если программа отказывается работать из-за того, что нет полномочий записи в каталоги, то это не ошибка программы, а проблема пользователя. Поговорите с ближним окружением, кто в теме, как дать каталогам нужные права.

Изменения в работе с пользователями

Надоело собирать всех написавших на doquerylist@gmail.com в список рассылки. Пусть теперь это делает smartresponder.ru. Поэтому предлагаю всем, кому интересно такое решение, подписаться в размещенной ниже форме. После этого придёт ссылка на последний архив с этим скриптом.

Ваше имя: *
Ваш e-mail: *

Оставить комментарий!

Вы должны быть в системе чтобы оставить комментарий.