Класс для автоматического применения правил русской типографики для веб
Авторы:
При создании типографа помимо личного опыта использовались:
Спасибо:
… и всем, кто пользуется типографом и сообщает об ошибках.
Отдельное спасибо Max-у за плагин к Wordpress.
Простой пример:
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', ' ');
Если хотите, чтобы все буквы ё менялись автоматом на е:
$typo->setOpt(Typographus::CONVERT_E, true);
Если хотите, чтобы спец-знаки были выведены как HTML-сущности:
$typo->setOpt(Typographus::HTML_ENTITIES, true);
Вместе с классом типографа в архиве вы можете найти плагины для Smarty.
Скопируйте их в вашу папку plugins
.
Если вы хотите подключить постфильтр Smarty (т.е. обработать всю страницу уже после её формирования) — пишем при инициализации Smarty:
$smarty->load_filter('output', 'typograph');
Данный подход не рекомендуется использовать т.к. использование может сказаться на производительности.
Если вам необходимо обработать конкретную переменную - применеям модификатор в шаблоне:
{$text|typograph}
В архиве прилагаются инструкции и необходимые файлы.