Класс для автоматического применения правил русской типографики для веб
PHP JavaScript
Latest commit 9d2a06b Feb 9, 2014 @samdark Added license
Permalink
Failed to load latest commit information.
FCKEditor init Sep 25, 2011
cakephp
drupal/typographus init Sep 25, 2011
invision_power_board init Sep 25, 2011
smarty init Sep 25, 2011
tests include fix for case sensitive fs Feb 6, 2012
wordpress/TypographMachine init Sep 25, 2011
LICENSE.md Added license Feb 8, 2014
history.md init Sep 25, 2011
readme.md broken links fixed Aug 15, 2012
typographus.php master rollback Jul 27, 2012

readme.md

Типограф (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

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