chulakov / ch-php-typograph
Component lets tune Muravjev typograph and use it
Installs: 9 256
Dependents: 1
Suggesters: 0
Security: 0
Stars: 1
Watchers: 5
Forks: 1
Open Issues: 0
Type:php-typograph-component
Requires
- php: >=5.6
- oleg-chulakov-studio/mdash: 1.0.0
Requires (Dev)
- phpunit/phpunit: ^4.8 || ^5.7
README
Компонент типографа на ЯП PHP со встроенным конфигуратором
Конфигуратор типографа настраивает правила типографа Муравьева.
Добавление или удаление третов в конфигураторе не реализовано. Если какой-либо трет нужно полностью исключть из типографирования, то можно отключить все его правила.
- Трет - это блок или модуль правил. Например: трет Symbol содержит правила обнаружения и обработки различных символов.
-
Правило - это массив, состоящий из регулярок(-ки) обнаружения случая в тексте и регулярок(-ки), на которые соответственно необходимо заменить найденный случай в тексте.
Также имеется (неоябзательная) ячейка в массиве с описанием сути правила. -
Typograph composer-пакета oleg-chulakov-studio/mdash - это наследник TypographBase. В нем объявлены не все правила третов, которые доступны в классе TypographBase.
В результате не все правила класса TypographBase можно подключить / отключить. Потому некоторые правила третов класса TypographBase прописаны
в переменной $additionalOptions класса TypographConfigurator для их последующей настройки. -
Класс Typograph с пространством имен Chulakov\PhpTypograph наследуется от класса Typograph из composer-пакета oleg-chulakov-studio/mdash, т. к. необходимо было добавить
правила типографу, которые были доступны в классе TypographBase, но перестали быть доступны в классе Typograph из composer-пакета oleg-chulakov-studio/mdash.
Установка
Чтобы установить компонент, нужно в composer.json добавить следующие строки:
"require": { "chulakov/ch-php-typograph": "^1.0.0", }
Или набрать команду:
composer require chulakov/ch-php-typograph
Работа конфигуратора
- Объявление конфигуратора типографа. Настройка типографа с правилами, прописанными в конфигах и внутри самого конфигуратора по умолчанию
$configurator = new TypographConfigurator(); $configurator->configure();
- Настройка типографа с правилами, переданными через конструктор конфигуратора
$configurator = new TypographConfigurator($additionalRules, $changedRules);
- Пример объявления новых правил
$additionalRules = [ [ 'selector' => 'Abbr', 'ruleName' => 'nobr_vtch_BC', 'params' => [ 'pattern' => '/(^|\s|\ \;|)([дД]о)?[ ](н)\.?[ ]?э\./ue', 'replacement' => '$m[1] . $this->tag($m[2] . " н."." э.", "span", array("class" => "nowrap"))', ], ], ];
- Пример объявления изменений правил
$changedRules = [ [ 'selector' => 'Etc.time_interval', 'keysOfRule' => [ 'pattern', 'replacement', ], 'valuesOfKeyRule' => [ '/([\d]{1,2}\:[\d]{2})(-|\&mdash\;|\&minus\;)([\d]{1,2}\:[\d]{2})/eui', '$this->tag($m[1] . "–" . $m[3], "span", array("class" => "nowrap"))', ], ], ];
Использование типографа
- Создание объекта типографа с пользовательскими настройками и обработка текста. В момент создания обекта класса TypographFacade внутри него создается
конфигуратор типографа
$typograph = new TypographFacade(); $processedText = $typograph->process('до н. э.');