Skip to content

Nufeen/typo

Repository files navigation

Типограф (Russian typography script)

Documentation below will remain in russian since this package is language-specific and seems to be needed by russian-speaking users only.

Cкрипт для расстановки переносов и привязывания предлогов в русскоязычных текстах.

Installation

npm install ru-typo

Usage

По умолчанию привязываются предлоги, тире заменяется на широкое:

typo(string)
Before After
не в силах выдержать несовершенства мира - закрыл я очи невсилах выдержать несовершенства мира— закрыл я очи

Options

digits

При достаточно широкой колонке цифры привязываются с двух сторон:

typo(string, { digits: true })
Before After
...купите 200 граммов водки и 30 граммов огурца ...купите200граммов водки и30граммов огурца

digitsR

Привязывает цифры слева:

typo(string, { digitsR: true })
Before After
...купите 200 граммов водки и 30 граммов огурца ...купите 200граммов водки и 30граммов огурца

header

В заголовках приклеиваются длинные предлоги:

typo(string, { header: true })
Before After
Как ничего не понять и не подать виду Какничего непонять инеподать виду

hyphen

Обратите внимание, в части браузеров на сегодня уже работают нативные css переносы (с указанным в html языком): https://developer.mozilla.org/ru/docs/Web/CSS/hyphens#Browser_compatibility

расстановка переносов:

typo(string, { hyphens: true })
Before After
В это время Ленин скрывается на конспиративной квартире. В это вре­мя Ле­нин скры­ва­ет­ся на кон­спи­ратив­ной квар­ти­ре.

Регулярные выражения для переносов взяты с http://vyachet.ru/hyphen-russian-html-text/ (модифицированный алгоритм Христова).

quotes

Превращает "прямые кавычки" в «ёлочки»:

typo(string, { quotes: true })
Before After
Обратиться в ООО "Компания "Рога и Ко." Обратиться вООО «Компания «Рога иКо.»