All Projects → samdark → Typograph

samdark / Typograph

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

Projects that are alternatives of or similar to Typograph

Charming
😎 Lettering.js in vanilla JavaScript
Stars: ✭ 954 (+883.51%)
Mutual labels:  typography
Personal Goals
List of books I've read, projects I've done, videos I've seen, articles I've read or podcasts I've listened to.
Stars: ✭ 75 (-22.68%)
Mutual labels:  typography
Interior
Design system for the modern web.
Stars: ✭ 77 (-20.62%)
Mutual labels:  typography
Google Type
Collaborative typography project using select passages from Aesop's Fables set to Google Fonts
Stars: ✭ 971 (+901.03%)
Mutual labels:  typography
Chinese Hershey Font
Convert Chinese Characters to Single-Line Fonts using Computer Vision
Stars: ✭ 70 (-27.84%)
Mutual labels:  typography
3270font
A 3270 font in a modern format
Stars: ✭ 1,197 (+1134.02%)
Mutual labels:  typography
Bojler
Bojler is an email framework
Stars: ✭ 885 (+812.37%)
Mutual labels:  typography
Vertical Rhythm
Put some typographical vertical rhythm in your CSS. LESS, Stylus and SCSS/SASS versions included.
Stars: ✭ 83 (-14.43%)
Mutual labels:  typography
Sing App
💥Free and open-source admin dashboard template built with Bootstrap 4.5 💥
Stars: ✭ 1,187 (+1123.71%)
Mutual labels:  typography
Gatsby Starter Prismic I18n
Based on gatsby-starter-prismic with Internationalization (i18n) support
Stars: ✭ 77 (-20.62%)
Mutual labels:  typography
Heti
赫蹏(hètí)是专为中文内容展示设计的排版样式增强。它基于通行的中文排版规范而来,可以为网站的读者带来更好的文章阅读体验。
Stars: ✭ 1,003 (+934.02%)
Mutual labels:  typography
Linearicons
Linearicons is the highest quality set of line icons, matching with minimalist UI designs in iOS.
Stars: ✭ 64 (-34.02%)
Mutual labels:  typography
Buildtimes
✏️ Musings on building (and breaking) websites
Stars: ✭ 76 (-21.65%)
Mutual labels:  typography
Chakert
Python typography enhacer tool for lxml-based html and raw text
Stars: ✭ 31 (-68.04%)
Mutual labels:  typography
React Typesetting
React typesetting components.
Stars: ✭ 80 (-17.53%)
Mutual labels:  typography
Awesome Typography
✏︎ Curated list about digital typography 🔥
Stars: ✭ 947 (+876.29%)
Mutual labels:  typography
Doric
Protocol oriented, type safe, scalable design system foundation swift framework for iOS.
Stars: ✭ 75 (-22.68%)
Mutual labels:  typography
Fontanello
Because you have a weak spot for fonts
Stars: ✭ 85 (-12.37%)
Mutual labels:  typography
Kirby Typography
Typographic enhancements for your Kirby-driven website.
Stars: ✭ 80 (-17.53%)
Mutual labels:  typography
Piazzolla
Piazzolla type family
Stars: ✭ 77 (-20.62%)
Mutual labels:  typography

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

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].