Типограф на JavaScript
Помогает автоматически расставить неразрывные пробелы, исправить мелкие опечатки, привести кавычки к правильному виду, заменить дефисы на тире в нужных местах и многое другое.
Попробуйте типограф в действии.
Черты:
Форматы:
Использование
В браузере
npm install typograf
<script src="./node_modules/typograf/dist/typograf.min.js"></script>
<script>
var tp = new Typograf({lang: 'ru'});
alert(tp.execute(' Мир - мой мир! '));
</script>
Node.js
npm install typograf
const Typograf = require('typograf');
const tp = new Typograf({lang: 'ru'});
console.log(tp.execute(' Мир - мой мир!! '));
Плагины
API
Висячая пунктуация
По умолчанию висячая пунктуация отключена.
Для включения необходимо подключить правила:
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" />
Включить или отключить правила
var tp = new Typograf({lang: 'ru'});
tp.enable('ru/money/ruble');
tp.enable('ru/money/*');
tp.enable('*');
tp.disable('ru/money/ruble');
tp.disable('ru/money/*');
tp.disable('*');
Изменить настройку у правила
var tp = new Typograf({lang: 'ru'});
tp.setting('common/nbsp/beforeShortLastWord', 'lengthLastWord', 5);
Добавить простое правило
Typograf.rule({
name: 'common/other/emoji',
handler: function (text) {
return text.replace(/:-\)/g, '\uD83D\uDE0A');
}
});
Режим работы
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('...');
Типографика на лету
Данный live-режим необходим, если текст типографируется на каждый ввод символа в текстовых полях.
var tp = new Typograf({lang: 'ru', live: true});
Подробнее
Неразрывные пробелы
По умолчанию типограф не заменяет неразрывные пробелы на обычные, чтобы не удалить ранее проставленные неразрывные пробелы. Если в тексте неправильно расставлены неразрывные пробелы, включите правило common/nbsp/replaceNbsp
.
Перед типографированием в live-режиме неразрывные пробелы заменяются на обычные, т. к. один и тот же текст типографируется многократно при каждом вводе символа.
Отключение типографирования в участках текста
var tp = new Typograf({lang: 'ru'});
tp.addSafeTag('<no-typography>', '</no-typography>');
tp.addSafeTag('\\{\\{', '\\}\\}');
tp.addSafeTag('\\[\\[', '\\]\\]');
tp.addSafeTag('<\\?php', '\\?>');
tp.execute(text);
Сжатие с UglifyJS
Если typograf.js
сжимается вместе с другими js-файлами в UglifyJS
,
то необходимо использовать опцию ascii_only: false
, иначе типограф будет работать некорректно.
Разработка
git clone https://github.com/typograf/typograf.git
Пересборка:
npm run rebuild
Пересборка и запуск тестов:
npm test
Подготовка новой версии:
npm run dist
Проверка скорости работы правил:
npm run benchmark
MIT License
Ссылки