Security News
Supply Chain Attack Detected in @solana/web3.js Library
A supply chain attack has been detected in versions 1.95.6 and 1.95.7 of the popular @solana/web3.js library.
Помогает автоматически расставить неразрывные пробелы, исправить мелкие опечатки, привести кавычки к правильному виду, заменить дефисы на тире в нужных местах и многое другое.
Попробуйте типограф в действии.
npm install typograf
<script src="./node_modules/typograf/dist/typograf.min.js"></script>
<script>
var tp = new Typograf({lang: 'ru'});
alert(tp.execute(' Мир - мой мир!! '));
</script>
npm install typograf
const Typograf = require('typograf');
const tp = new Typograf({lang: 'ru'});
console.log(tp.execute(' Мир - мой мир!! '));
По умолчанию висячая пунктуация отключена.
Для включения необходимо подключить правила:
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'});
// Название правила, название настройки, значение
// Неразрывный пробел перед последним словом в предложении, не более 5 символов
tp.setting('common/nbsp/beforeShortLastWord', 'lengthLastWord', 5);
// Вложенные кавычки тоже «ёлочки»
tp.setting('ru/punctuation/quote', 'lquote2', '«');
tp.setting('ru/punctuation/quote', 'rquote2', '»');
tp.setting('ru/punctuation/quote', 'lquote3', '«');
tp.setting('ru/punctuation/quote', 'rquote3', '»');
// Неразрывный пробел после короткого слова, не более 3 символов
tp.setting('common/nbsp/afterShortWord', 'lengthShortWord', 3);
// Типографический смайлик
Typograf.rule({
name: 'common/other/typographicSmiley',
handler: function (text) {
return text.replace(/:-\)/g, ':—)');
}
});
// Режим по умолчанию, HTML-сущности, как UTF-8 символы
var tp = new Typograf({lang: 'ru'});
tp.execute('12 кг...'); // 12 кг…
// HTML-сущности в виде имён
var tpName = new Typograf({
lang: 'ru',
htmlEntity: {type: 'name'}
});
tpName.execute('12 кг...'); // 12 кг…
// HTML-сущности в виде цифр
var tpDigit = new Typograf({
lang: 'ru',
htmlEntity: {type: 'digit'}
});
tpDigit.execute('12 кг...'); // 12 кг…
// Все HTML-сущности в UTF-8, а невидимые сущности в виде цифр
// Невидимые сущности —       ­ ‌ ‍ ‎ ‏
var tpNameInvisible = new Typograf({
lang: 'ru',
htmlEntity: {
type: 'name',
onlyInvisible: true
}
});
tpNameInvisible.execute('12 кг...'); // 12 кг…
// Все HTML-сущности в UTF-8, а заданные в списке в виде цифр
var tpDigit = new Typograf({
lang: 'ru',
htmlEntity: {
type: 'digit',
list: ['nbsp', 'shy', 'mdash', 'ndash']
}
});
tpDigit.execute('12 кг...'); // 12 кг…
Данный live-режим необходим, если текст типографируется на каждый ввод символа в текстовых полях.
var tp = new Typograf({lang: 'ru', live: true});
По умолчанию типограф не заменяет неразрывные пробелы на обычные, чтобы не удалить ранее проставленные неразрывные пробелы. Если в тексте неправильно расставлены неразрывные пробелы, включите правило common/nbsp/replaceNbsp
.
Перед типографированием в live-режиме неразрывные пробелы заменяются на обычные, т. к. один и тот же текст типографируется многократно при каждом вводе символа.
var tp = new Typograf({lang: 'ru'});
// Отключить типографирование внутри тега <no-typography>
tp.addSafeTag('<no-typography>', '</no-typography>');
//...
// Отключить типографирование внутри управляющих конструкций какого-нибудь шаблонизатора
tp.addSafeTag('\\{\\{', '\\}\\}'); // {{...}}
tp.addSafeTag('\\[\\[', '\\]\\]'); // [[...]]
//...
// Отключить типографирование внутри PHP-кода
tp.addSafeTag('<\\?php', '\\?>');
tp.execute(text);
Если 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
v5.8.0
Доработки по расстановке кавычек и апострофа #143, #214. Правило ru/punctuation/apostrophe
переименовано в common/punctuation/apostrophe
.
Рефакторинг обработки HTML-сущностей и безопасных тегов #216, #217.
FAQs
The client and server typography
The npm package typograf receives a total of 7,296 weekly downloads. As such, typograf popularity was classified as popular.
We found that typograf demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
A supply chain attack has been detected in versions 1.95.6 and 1.95.7 of the popular @solana/web3.js library.
Research
Security News
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
Security News
Research
Socket researchers have discovered malicious npm packages targeting crypto developers, stealing credentials and wallet data using spyware delivered through typosquats of popular cryptographic libraries.