typoquotes v0.1.3
Typoquotes
JS-класс для преобразования текстов: расстановка кавычек, дефисы, тире, перенос строк, числа, номера, замена комбинаций текста на схожие UTF-символы.
Сборка - webpack. Приложения, использующие библиотеку могут вытягивать ее как bower- или npm-пакет
Install
npm install typoquotes
or yarn install typoquotes
Run
npm start
- run for devnpm run build
- run for production
Source
├src
├─test // тесты для dev-окружения, включение typoquotes.js в bundle
│ ├─*.html
│ ├─index.pug // инклюдит test.pug
│ ├─test.pug // собирает *.html
│ ├─test.js // приложение для тестов
│ └─test.css
├─libtest // пример подключения отдельного typoquotes.js
│ ├─*.html
│ ├─index.pug // инклюдит ./../test/test.pug
│ └─libtest.js // приложения для запуска тестов
├─typoquotes // исходник typoquotes.js, можно использовать для включения в bundle
│ ├─perform
│ ├─preserve
│ ├─process // набор js для преобразования текста
│ │ ├─*.js
│ ├─restore
│ ├─index.js // для экспорта typoquotes.js
│ └─typoquotes.js // js-класс для приложения typoquotes.js
/src/test
- тестовое окружение для dev, пример подключения исходника typoquotes.js для его включения в пакет js-приложения.
Тест-кейсы писать в /src/test/*.html
и подключать в /src/test/test.pug
/src/libtest
- пример подключения собранного в vanilla-js typoquotes.js.
/typoquotes/typoquotes.js
- js-класс приложения.
/typoquotes/process/*.js
- js-методы для преобразований.
Build
├dist
├─test
│ ├─index.html
│ ├─test.min.js
│ └─test.min.css
├─libtest
│ ├─index.html
│ ├─libtest.min.js
│ └─libtest.min.css
├─typoquotes
│ └─typoquotes.min.js
├─typoquotesmce
│ ├─index.js
│ ├─plugin.js
│ └─plugin.min.js
Приложение
/dist/typoquotes/typoquotes.min.js
- js-класс для подключения в любое js-приложение
/dist/typoquotes-mce/plugin.min.js
- плагин для tiny-mce
var typo = new Typoquotes(
{
lang: 'ru' // может быть "ru" или "en",
actionlist: [ // список действий
'quotes', // упорядочивание кавычек
'dashes', // упорядочивание тире
'angles', // градус, дюйм, апостроф
'dblspace', // сокращает множественные пробелы
'specials', // заменяет некоторые комбинации вида (c) {ss} {rub} на UTF-символы © § ₽
'mathchars', // заменяет некоторые комбинации вида {1/8} {^2} на UTF-символы вида ⅛ ²
'punctuation', // настраивает пунктуацию, устраняет двойные символы
'specialspaces', // связывает символы (напр. №) с числами
'phones', // форматирует телефонные номера
'numbers', // форматирует длинные числа (разбивает на разряды)
'nbsp', // связывает предлоги со словами, инициалы с фамилиями
'hellip', // три последовательные точки в символ многоточия
'units' // квадратные и кубические (мм, км, и т.п.) км2 => км²
]
}
)
lang
- язык, не обязательный, по умолчанию "ru"actionlist
- список действий, не обязательный, при отсутствии выполняются все действия
Подключение плагина в TinyMCE
Скопировать /dist/typoquotes-mce/
в папку tinymce/plugins
(вручную или таск-менеджером)
В настройках TinyMCE должен быть установлен параметр language
, значения: ru_RU
или en_US
, поведение плагина зависит от языка, по умолчанию ru_RU
.
Добавить в список плагинов:
"plugins": [
'typoquotesmce'
],
Добавить кнопку в панель:
"toolbar": '... | typoquotesmce | ...'
],
Подключение js-модуля из src
Вытянуть с помощью yarn или npm (package.json):
"dependencies": {
"typoquotes": "git+ssh://git@gitlab.notamedia.ru:mos-front/typoquotes-app.git",
"babel-core": "^6.26.0",
"babel-loader": "^6.3.2",
"babel-plugin-add-module-exports": "^0.2.1",
"babel-preset-env": "^1.6.1",
}
Для webpack:
{
test: /typoquotes/,
loader: 'babel-loader',
options: {
plugins: ['babel-plugin-add-module-exports'],
presets: ['env']
}
},
Подключить в свой js
var Typoquotes = require('typoquotes/src/typoquotes')
// инициализация класса
var typo = new Typoquotes(
{
lang: 'ru'
}
);
// основной процесс
return typo.process(str);
Much appreciated