Типограф Муравьёва ( mdash.ru ), портированный на php8+.
- типограф переписан для обеспечения совместимости с php8+
- изменено правило mdash_symbol_to_html_mdash (теперь символ " — " должен быть окружён пробелами)
- добавлено правило double_minus_to_html_mdash (последовательность " -- " заменяется на " — ")
Начиная с v3.0 типограф работает на новом движке (EMT\Engine): однопроходный
лексер HTML + плейсхолдеры вместо base64-экранирования, ноль eval(),
типизированные правила вместо /e-регэкспов. Публичный API не изменился;
байтовая совместимость вывода со старым движком закреплена golden-фикстурами
(tests/Golden/, 179 фикстур: 5 профилей + все 69 опций).
- Быстрее старого движка в 1.1–1.8 раза (см.
bench/BASELINE.md), память — вдвое меньше. - Исправления и отличия от v2 (защита от инъекции маркеров, литеральные
</>в тексте,>внутри атрибутов):docs/v3-behavior-changes.md. - Выбор движка:
EMT\EMT_Base::$engine = 'v2'|'v3'|'shadow'или envEMT_ENGINE. Конфигурации, которые v3 не покрывает (кастомные треты/правила черезadd_tret/put_rule, regex-блоки, режимы debug/log), автоматически выполняются старым движком. - Старый движок (v2) объявлен устаревшим и будет удалён в следующей мажорной
версии; до этого он остаётся доступным через
EMT_ENGINE=v2.
composer require atispro/emt-php8
<?php
$html = "<div>HTML-код, который надо оттипографить</div>";
// опции здесь опциональны и приведены для примера
$options = [
'OptAlign.all'=>'off',
//'Etc.split_number_to_triads'=>'off',
'Text.paragraphs'=>'off',
'Space.bracket_fix'=>'off',
];
$html = EMT\EMTypograph::fast_apply($html,$options);