Меню
Главная
Авторизация/Регистрация
 
Главная arrow Прочее arrow Государственный экзамен arrow
Типографика

Разработка типографа

Проектирование

С учётом выявленных в предыдущей главе достоинств и недостатков была спроектирована и реализована на языке PHPпрограммная библиотека, автоматизирующая применение правил экранной типографики к текстам, публикуемым в Интернете. Созданный инструмент, в отличие от своих аналогов, имеет гибкую модульную архитектуру, позволяющую разработчикам независимо развивать и совершенствовать данный типограф. Это становится особенно актуальным в связи с тем, что исходный код библиотеки доступен на площадке для совместной разработки – GitHub.

При проектировании библиотеки был выбран объектно-ориентированный подход. Ключевыми объектами, выделенными в процессе проектирования, являются внешний интерфейс типографа (Typo), объект для работы с текстом (Text) и абстрактный класс модуля (Module). UMLдиаграмма основных классов, используемых в библиотеке, представлена на рисунке 3.1. На данный момент реализовано шесть модулей, отвечающих за определённые группы правил экранной типографики:

Core– центральный модуль, организующий взаимодействие остальных модулей. Управляет кодировкой текста, задаёт режим кодирования спецсимволов и т. п.

Html– обрабатываетHTMLтеги в тексте.

Punct– отвечает за правильную расстановку пунктуации в тексте.

Space– управляет расстановкой пробелов.

Nobr– образует неразрывные конструкции.

Url – добавляет гиперссылки.

Диаграмма основных классов библиотеки

Рисунок 3.1. Диаграмма основных классов библиотеки

Процесс обработки текста разделён на стадии, обозначенные заглавными латинскими буквами (A,B,C,…). Каждый из модулей может содержать код, выполняемый в одной или более стадиях с указанием приоритетов выполнения относительно других модулей. Все стадии выполняются последовательно. Если в каком-либо модуле отсутствует код, выполняемый в текущей стадии – этот модуль пропускается.

Не смотря на то, что разработчики модулей вправе сами решать, каким образом разделить код обработки текста на стадии внутри модуля, для стадий «A», «B» и «C» существуют рекомендации, которых следует придерживаться.

На стадии «A» реализуется предварительная фильтрация текста, например замена участков текста (например, HTMLтегов) на специальные блоки с целью их сохранения. На стадии «B» необходимо применить конкретные правила экранной типографики, реализуемые модулем. На стадии «C» с помощью специальных методов осуществляются операции, обратные стадии «A» – восстановление вырезанных участков текста.

Основу обработки текста составляет механизм Perl-совместимых регулярных выражений (PCRE), позволяющий осуществлять гибкий анализ и обработку текстовых конструкций. Для удобства разработки в классеModuleреализованы специальные методы, упрощающие процесс применения правил экранной типографики в конкретных модулях:

Module::applyRulesPregReplace(array $rules, $text = null)
Применяет ассоциативный массив правил $rules, в котором в качестве ключей указаны регулярные выражения, а в качестве значений – строки для замены. Если указан необязательный параметр $text, то правила будут применены не к текущему обрабатываемому тексту, а к значению $text.

Module::applyRulesReplace(array $rules)
Применяет ассоциативный массив правил $rules, в котором в качестве ключей указаны искомые подстроки, а в качестве значений – строки для замены.

 
Оригинал текста доступен для загрузки на странице содержания
< Пред   СОДЕРЖАНИЕ СКАЧАТЬ   След >
 

СКАЧАТЬ ОРИГИНАЛ
Типографика
Введение1. Основные понятия экранной типографики1.2. Правила экранной типографики1.2.1. Общие правила оформления текста1.2.3. Правила расстановки пробелов и пробельных символов1.2.4. Правила расстановки дефисов, минусов и тире1.2.5. Правила расстановки переносов строки иобразования неразрывных конструкций1.2.6. Правила оформления гиперссылокВыводы по главе 12. Исследование средств автоматизацииподготовки текстов к публикации в Интернете2.1. Обзор средств автоматизацииподготовки текстов к публикации в Интернете2.1.1. Типограф студии Артемия Лебедева2.1.2. Типограф Евгения Муравьёва2.1.3. Типограф Евгения Лепёшкина2.1.4. Типограф студии «RMCreative»2.1.5. Типограф студии «Вито»2.1.6. Типограф «Jevix»2.1.7. Прочие типографы2.2. Сравнительный анализ средств автоматизацииподготовки текстов к публикации в ИнтернетеВыводы по главе 23. Разработка типографа3.1. Проектирование3.2. Системные требования3.3. Настройка параметров3.4. Расширение функциональных возможностей библиотекиВыводы по главе 3ЗаключениеБиблиографический список