Типограф на JavaScript
Типограф в действии с мобильной версией
Что может типограф:
- правильно расставлять кавычки и тире;
- удаляет:
- «табы» и повторы пробелов;
- пробелы в начале и конце текста, а также пустые строки;
- пробелы перед знаками пунктуации, перед знаком %.
- расстановка абзацев и переносов строк;
- ставит неразрывный пробел:
- перед последним словом;
- после коротких слов;
- перед частицами: ли, ль, же, ж, бы, б;
- после знака № и §.
- заменяет:
- 10 C на 10 °С и 10 F на 10 °F;
- 2007г. на 2007 г.;
- три точки на троеточие;
- Кв. м (км, дм, см, мм) на м²;
- Куб. м (км, дм, см, мм) на м³;
- 12x18 на 12×18;
http://example.com
на http://example.com;- (с) на ©, (r) на ™, +- на ±;
- и пр.
- висячая пунктуация.
Черты:
- гибкость и расширяемость;
- кроссбраузерность;
- мультиязычность;
- utf-8;
- поддержка Node.js;
- TDD.
Использование
В браузере
bower install typograf
<script src="dist/typograf.min.js"></script>
<script>
var tp = new Typograf({lang: 'ru'});
alert(tp.execute(' Мир - мой мир! '));
</script>
Node.js
npm install typograf
var Typograf = require('typograf'),
tp = new Typograf({lang: 'ru'});
console.log(tp.execute(' Мир - мой мир!! '));
Командная строка
npm install typograf -g
typograf
- вывод справки
typograf my_file.txt
- оттипографировать текст по русским правилам
typograf -l en my_file.txt
- оттипографировать файл по английским правилам
typograf -d ru/quot -e ru/optaling/* my_file.txt > new_my_file
- оттипографировать файл с отключенным правилом ru/quot
и включенными правилами ru/optaling/*
Висячая пунктуация
По умолчанию висячая пунктуация отключена.
Для включения необходимо подключить правила:
var Typograf = require('typograf'),
tp = new Typograf({lang: 'ru'});
tp.enable('ru/optalign/*');
console.log(tp.execute('"Мир"'));
А также в HTML-код страницы добавить:
<link rel="stylesheet" href="dist/typograf.css" type="text/css" />
Включить/отключить правило
var tp = new Typograf({lang: 'ru'});
tp.disable('ru/space/afterNum');
tp.enable('ru/space/afterNum');
Добавить правило
Typograf.rule({
title: 'Пример правила',
name: 'common/other/parampampam',
sortIndex: 2000,
func: function(text) {
return text.replace(/parampampam/g, 'tryam');
}
});
Режим работы
var tp = new Typograf({lang: 'ru'});
tp.execute('...');
var tpName = new Typograf({lang: 'ru', mode: 'name'});
tpName.execute('...');
var tpDigit = new Typograf({lang: 'ru', mode: 'digit'});
tpDigit.execute('...');
Лицензия
MIT License
Ссылки