Status: Редактируемая версия... | Version: 0.1 | Last update: 25.05.2014
Несколько библиотек и утилит общего назначения, предназначенных для использования совместно с Adobe ExtendScript Toolkit.
Я занимаюсь ими в свободное время и в своё удовольствие, поэтому, даже не представляю, когда это всё можно будет считать полностью завершённым. Каждая из библиотек находится в разной стадии готовности и, уверен, до стадии архитектурной зрелости и частоты им ещё далеко. Тем не менее...
Все представленные библиотеки используют общий структурный дизайн, имеют модульную архитектуру, документацию (с которой у меня вечные проблемы из за недостаточного знания jsdoc, лени или нехватки времени) и уже по полной используются мной в различных проектах, включая довольно крупный - Dialog Builder for ExtenScript & ESTK.
Возможно что-то из всего этого кому-то покажется интересным, буду рад...
Общая структура папок описана в readme_struct.md приложении. Как уже отмечалось, все библиотеки используют общий модульный дизайн, идея которого описана в readme_module.md. На сегодня JSXLibs включает:
- Collection - реализация класса Collection для ES, упор сделан на работу с коллекциями объектов, широко применяется в MVC;
- MVC - Фреймворк, реализующий паттерн MVC для JavaScript-приложений, разрабатываемых в среде Adobe ExtendScript, имеет расширяемую модульную архитектуру и пока только одно расширение MVC.DOM. На его основе я разрабатываю свой редактор диалогов Dialog Builder
- PNGLib - небольшая экспериментальная библиотека для формирования в скрипте битовых образов PNG изображений в формате ScripUIImage.
- QTest - консольная библиотека для реализации модульного тестирования в ExtendScript с поддержкой аналогичного как у QUnit синтаксиса в модульных файлах тестов. Для неё есть GUI модуль QTestManager, с поддержкой конфигурационных файлов и пакетной обработки файлов с модульными тестами;
- SimpleUI - набор библиотек, ориентированных на работу с пользовательским UI и соответствующей подсистемой, включает несколько самостоятельных модулей;
- UIColors - работа с цветом в различных форматах, также представлена таблица стандартных html/x11 цветов;
- UIControls - набор расширенных пользовательских элементов управления (ProgressBar, ScrollablePanel, Separator, WebLink и др...);
- UIImage - расширение базового класса ScripUIImage (добавлена поддержка масштабирования в пользовательских элементах управления) и функции для конвертации ScripUIImage в ресурсные строки и обратно;
- ESTKLib - собрание и систематизация стандартных графических ресурсов ESTK;
- _globals - это минимальный набор, значительно облегчающий мне жизнь и часто используемый во многих библиотека, там содержаться инструменты, включаемые в файлах _debug.jsx и _util.jsx, которые расположены в корне основной папки с библиотеками.
С библиотекой SimpleUI я пока ещё не определился - стоит ли делать общий фреймворк или нет... пока всё живёт отдельно. Библиотеки в большинстве своём полностью независимы, в комментариях к ним отмечается, если это не так.
В папке с библиотеками находится папка Tools с утилитами, также написанными на javascript и используемые мной для облегчения собственной жизни в процессе программирования под ESTK :)
В папке, где вы обычно размещаете свои скрипты, создайте новую папку для файлов библиотеки, например, в папке /Program Files (x86)/Adobe/Adobe InDesign CS6/Scripts/Scripts Panel/ создайте папку Include и загрузите туда файлы библиотеки одним из следующих способов:
Если имеется установленный git - выполните в созданной папке в консоли команду:
git clone https://github.com/...
В результате у вас будет склонированы туда все папки, содержащие библиотеки и утилиты.
Скачайте архив и просто распакуйте его в созданную для библиотек папку.
Для подключения библиотеки в вашем скрипте достаточно просто подключить её заголовочный файл:
// подключение только основных инструментов
#include "<путь_к_файлу>/_util.jsx"
// подключение MVC.DOM (также подключит модули _util, Collection и MVC см. html-документацию)
#include "<путь_к_файлу>/MVC.DOM.jsx"
К каждой библиотеке имеется собственная документация, которую я стараюсь постепенно развивать, и, конечно, - примеры. Пользуйтесь... :)
Copyright: © Вячеслав aka Buck, 2014. slava.boyko@hotmail.com
License: Creative Commons Attribution-NonCommercial-ShareAlike 3.0
РУС: РАЗРЕШЕНО СВОБОДНОЕ ИСПОЛЬЗОВАНИЕ ПРОИЗВЕДЕНИЯ, ПРИ УСЛОВИИ УКАЗАНИЯ ЕГО АВТОРА, НО ТОЛЬКО В НЕКОММЕРЧЕСКИХ ЦЕЛЯХ. ТАКЖЕ ВСЕ ПРОИЗВОДНЫЕ ПРОИЗВЕДЕНИЯ, ДОЛЖНЫ РАСПРОСТРАНЯТЬСЯ ПОД ЛИЦЕНЗИЕЙ CC BY-NC-SA.
ENG: THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE (''CCPL'' OR ''LICENSE''). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.