Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EMT-php8

Типограф Муравьёва ( mdash.ru ), портированный на php8+.

Что изменено

  • типограф переписан для обеспечения совместимости с php8+
  • изменено правило mdash_symbol_to_html_mdash (теперь символ " — " должен быть окружён пробелами)
  • добавлено правило double_minus_to_html_mdash (последовательность " -- " заменяется на " — ")

Движок v3

Начиная с 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' или env EMT_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);

About

EMT typograf compatible with php8+

Resources

Stars

1 star

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages