StandaloneTypograf — gem для подготовки текста к публикации или типографирования текста на лету (вывод комментариев, например)
Пушкин писал Дельвигу: "Жду "Цыганов" и тотчас тисну...", (c) 1827 - А. С. Пушкин
Превратится в:
Пушкин писал Дельвигу: «Жду „Цыганов“ и тотчас тисну…», © 1827 — А. С. Пушкин
Пример работы (онлайн типограф): http://typograf.herokuapp.com
Отличия от типографа Лебедева и ruby библиотеки Gilenson
- автономность (самостоятельная/standalone обработка текста не зависящая от сторонних сервисов);
- выполняет прямую функцию (не преобразует в html, работает с plain текстом);
- корректная обработка вложенных кавычек (в отличие от gilenson);
gem install standalone_typograf
Создайте экземпляр типографа и передайте ему текст как единственный обязательный аргумент:
@text = %Q( "Я "читал" стихи Быкова,- сказал он." (c) )
typograph = StandaloneTypograph::Typograph.new(@text)
typograph.prepare #=> «Я „читал“ стихи Быкова,— сказал он.» ©
По умолчанию типограф работает в режиме utf
, если вам необходма подстановка html-кодов, передайте переметр mode
со значением html
typograph = StandaloneTypograph::Typograph.new(@text, mode: :html)
typograph.prepare #=> «Я „читал“ стихи Быкова,— сказал он.» ©
Метод prepare
вызывает все возможные обработчики текста. Вы можете вызвать только некоторые, передав массив с названием необходимых процессоров, в метод processor
typograph = StandaloneTypograph::Typograph.new(@text)
typograph.processor(:dashes, :mnemonics)
Вы так же можете использовать метод prepare
исключив ненужные обработчики. Для этого необходимо передать массив с названием ненужных процессоров с параметром exclude
при инициализации типографа:
typograph = StandaloneTypograph::Typograph.new(@text, exclude: :fractions)
typograph.prepare # бедут выполнены все преобразования кроме замены дробей
Значение | Тип | Замена Utf | Замена Html |
---|---|---|---|
" | Внешняя, открывающая | « | « |
" | Внешняя, закрывающая | » | » |
" | Внутренняя, открывающая | „ | „ |
" | Внутренняя, закрывающая | “ | “ |
StandaloneTypograf::Typograf.new(text).processor(:quotes)
Значение | Замена Utf | Замена Html |
---|
- | — | —
StandaloneTypograf::Typograf.new(text).processor(:dashes)
Значение | Замена Utf | Замена Html |
---|
- | |
Неразрывные пробелы используются при отбивке длинного тире, одно-двухбуквенных слов и некоторых частиц.
StandaloneTypograf::Typograf.new(text).processor(:nbspaces)
Значение | Замена Utf | Замена Html |
---|---|---|
(c) | © | © |
(tm) | ™ | ™ |
(r) | ® | ® |
+- | ± | ± |
-> | → | → |
<- | ← | ← |
~= | ≈ | ≈ |
StandaloneTypograf::Typograf.new(text).processor(:mnemonics)
Значение | Замена Utf | Замена Html | Html код |
---|---|---|---|
1/1 | none | 1⁄1 | <sup>1</sup>⁄<sub>1</sub> |
1234124/454325 | none | 1234124⁄454325 | <sup>1234124</sup>⁄<sub>454325</sub> |
Типограф производит замену дробей только в режиме html, при этом он генерирует html код используя теги верхнего и нижнего индексов, вследствие чего, количество заменяемых дробей бесконечно.
StandaloneTypograf::Typograf.new(text).processor(:fractions)
Чтобы отключить замену дробей используйте параметр exclude
при инициализации
StandaloneTypograf::Typograf.new(text, :exclude => :fractions)
Значение | Замена Utf | Замена Html |
---|---|---|
... | … | … |
StandaloneTypograf::Typograf.new(text).processor(:ellipsis)
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request