chulakov/ch-php-typograph

Component lets tune Muravjev typograph and use it

Installs: 6 414

Dependents: 1

Suggesters: 0

Security: 0

Stars: 1

Watchers: 5

Forks: 1

Open Issues: 0

Type:php-typograph-component

1.0.7 2021-12-10 10:25 UTC

This package is auto-updated.

Last update: 2024-04-10 15:25:24 UTC


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

Работа конфигуратора

  1. Объявление конфигуратора типографа. Настройка типографа с правилами, прописанными в конфигах и внутри самого конфигуратора по умолчанию
$configurator = new TypographConfigurator();
$configurator->configure();
  1. Настройка типографа с правилами, переданными через конструктор конфигуратора
$configurator = new TypographConfigurator($additionalRules, $changedRules);
  1. Пример объявления новых правил
$additionalRules = [
    [
        'selector' => 'Abbr',
        'ruleName' => 'nobr_vtch_BC',
        'params' => [
            'pattern' => '/(^|\s|\&nbsp\;|)([дД]о)?[ ](н)\.?[ ]?э\./ue',
            'replacement' => '$m[1] . $this->tag($m[2] . " н."." э.", "span", array("class" => "nowrap"))',
        ],
    ],
];
  1. Пример объявления изменений правил
$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"))',
        ],
    ],
];

Использование типографа

  1. Создание объекта типографа с пользовательскими настройками и обработка текста. В момент создания обекта класса TypographFacade внутри него создается
    конфигуратор типографа
$typograph = new TypographFacade();
$processedText = $typograph->process('до н. э.');