Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Класс для автоматического применения правил русской типографики для веб

License

Notifications You must be signed in to change notification settings

samdark/Typograph

Repository files navigation

Типограф (PHP5)

Авторы:

При создании типографа помимо личного опыта использовались:

Спасибо:

… и всем, кто пользуется типографом и сообщает об ошибках.

Отдельное спасибо Max-у за плагин к Wordpress.

На данный момент типограф умеет:

  • Обрабатывать тексты в различных кодировках(требуется iconv).
  • Заменять кавычки на ёлочки.
  • Склеивать двойные кавычки.
  • Заменять знак дефиса или два знака дефиса подряд — на знак длинного тире.
  • Заменять знак дефиса, ограниченный с обоих сторон цифрами — на знак короткого тире.
  • Заменять множество пробелов или табуляций на один пробел.
  • Заменять х в выражениях вроде 10x10 на знак умножения.
  • Исправлять неправильную расстановку запятых.
  • Разносить неправильно расставленные кавычки.
  • Вставлять неразрывный пробел после инициалов, сцеплять инициалы.
  • Делать неразрывными названия организаций и аббревиатуры форм собственности.
  • Делать неразрывными имя собственное и относящееся к нему сокращение.
  • Не разделять 2007 г., ставить пробел, если его нет.
  • Сцеплять скобки со словами.
  • Заменять 1/2 1/4 3/4 на спецсимволы.
  • Следить за тем, чтобы предлоги и союзы не находились в конце строки.
  • Следить за тем, чтобы частицы бы, ли, же и т.д. не отрывались от предшествующего слова.
  • Форматировать русские денежные суммы, расставляя пробелы в нужных местах.
  • Заменять от 3-х до 5-и точек подряд на троеточие.
  • Притягивать к слову запятые, отделять пробелом от последующего слова.
  • Притягивать к слову восклицательный знак.
  • Делать замену для +-.
  • Обрабатывать вложенные кавычки.
  • Притягивание чисел к знаку умножения.
  • Запятые до «а» и «но».
  • Притягивание «;» к предшествующему слову.
  • Убирает лишние знаки: «??» в «?», «!!!!» в «!!!».
  • Правильные апострофы в «LO'Лайт».
  • Прямая речь.
  • Неразрывные IP-адреса.

Использование класса

Простой пример:

require_once('Typographus.php');
$typo = new Typographus();
$text = $typo->process($text);

Для обработки текста в кодировке, отличной от WINDOWS-1251, укажите кодировку в конструкторе(требуется iconv):

$typo = new Typographus('UTF-8');

Если возникнет необходимость не обрабатывать текст внутри какого-либо блока — добавьте его при помощи метода addSafeBlock():

$typo->addSafeBlock('<clear>', '</clear>');

Для задания полностью своего набора безопасных блоков можно сначала очистить набор блоков:

$typo->removeAllSafeBlocks(); 

Если вам понадобится изменить символы замены, воспользуйтесь методом setSym():

$typo->setSym('nbsp', '&nbsp;');

Если хотите, чтобы все буквы ё менялись автоматом на е:

$typo->setOpt(Typographus::CONVERT_E, true);

Если хотите, чтобы спец-знаки были выведены как HTML-сущности:

$typo->setOpt(Typographus::HTML_ENTITIES, true);

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

Вместе с классом типографа в архиве вы можете найти плагины для Smarty. Скопируйте их в вашу папку plugins.

Если вы хотите подключить постфильтр Smarty (т.е. обработать всю страницу уже после её формирования) — пишем при инициализации Smarty:

$smarty->load_filter('output', 'typograph');

Данный подход не рекомендуется использовать т.к. использование может сказаться на производительности.

Если вам необходимо обработать конкретную переменную - применеям модификатор в шаблоне:

{$text|typograph}

Использование типографа в WordPress, Drupal, CakePHP, Invision Power Board

В архиве прилагаются инструкции и необходимые файлы.

About

Класс для автоматического применения правил русской типографики для веб

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •