https://github.com/samdark/typograph
Класс для автоматического применения правил русской типографики для веб
https://github.com/samdark/typograph
russian-specific typographer typography
Last synced: about 1 year ago
JSON representation
Класс для автоматического применения правил русской типографики для веб
- Host: GitHub
- URL: https://github.com/samdark/typograph
- Owner: samdark
- License: other
- Created: 2011-09-06T19:42:39.000Z (almost 15 years ago)
- Default Branch: master
- Last Pushed: 2014-02-08T22:10:15.000Z (over 12 years ago)
- Last Synced: 2025-03-27T12:38:27.177Z (about 1 year ago)
- Topics: russian-specific, typographer, typography
- Language: PHP
- Homepage: http://rmcreative.ru/blog/post/tipograf
- Size: 254 KB
- Stars: 99
- Watchers: 16
- Forks: 13
- Open Issues: 4
-
Metadata Files:
- Readme: readme.md
- Changelog: history.md
- License: LICENSE.md
Awesome Lists containing this project
README
Типограф (PHP5)
===============
- Страничка: http://rmcreative.ru/blog/post/tipograf
- Онлайн-версия: http://rmcreative.ru/typograph/
Авторы:
- [Максим Оранский](http://smee-again.livejournal.com/), первоначальный код, тестирование, правила.
- [Александр Макаров](http://rmcreative.ru), код, тестирование, правила, плагины для Smarty, дальнейшая поддержка.
При создании типографа помимо личного опыта использовались:
- http://philigon.ru/
- http://artlebedev.ru/kovodstvo/
- http://pvt.livejournal.com/
Спасибо:
- [-=Ustas=-](http://vingrad.ru/@-=Ustas=-/)
- [faZeful](http://fazeful.ru/)
- [Naruvi (Begemot)](http://priop.ru/)
- grasshopper
- eagle
- SHAman
- Eagle
- grasshopper
- Max
- Reki
- Zav
- sadhaka
- Алексей Волкогон
… и всем, кто пользуется типографом и сообщает об ошибках.
Отдельное спасибо 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('', '');
~~~
Для задания полностью своего набора безопасных блоков можно сначала очистить набор блоков:
~~~
$typo->removeAllSafeBlocks();
~~~
Если вам понадобится изменить символы замены, воспользуйтесь методом setSym():
~~~
$typo->setSym('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
--------------------------------------------------------------------------
В архиве прилагаются инструкции и необходимые файлы.