Конфигуратор типографа настраивает правила типографа Муравьева.
Добавление или удаление третов в конфигураторе не реализовано. Если какой-либо трет нужно полностью исключть из типографирования, то можно отключить все его правила.
-
Трет - это блок или модуль правил. Например: трет 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('до н. э.');