Пишите в настоящее время сейчас. Reedach подскажет, где лишнее.
Проверка русского текста для сайтов и редакторов. Находит канцелярит, штампы, воду, оценочные слова, тяжёлый синтаксис и опечатки, объясняет, что не так, и предлагает, как сказать проще. Работает у вас: в браузере или на вашем сервере.
Здесь стиль проверяется прямо в вашем браузере, текст никуда не отправляется. Опечатки и морфологию находит сервер Reedach, его ставят у себя.
Всё, что мешает читать
Канцелярит
осуществляет доставку доставляет
Пустой глагол и отглагольное существительное заменяются одним глаголом.
Штампы
высочайшего качества
Фраза из рекламы звучит одинаково у всех. Заменить фактом: сколько, за какой срок, с какой гарантией.
Оценки и усилители
очень надёжный, уникальный
Оценка не даёт проверить утверждение. Назвать признак или цифру.
Паразиты времени
в настоящее время сейчас
Вступление о нынешнем времени ничего не добавляет. Убрать или назвать дату.
Тяжёлый синтаксис
который…, который…
Два «который» подряд, страдательный залог, длинные предложения и абзацы. Разбить, начать с того, кто действует.
Частые ошибки
согласно договора согласно договору
«Вообщем», «из за», «по приезду», «оплатить за». В подсказке сразу написано, как правильно.
Просторечия
ложит кладёт
«Ихний», «хочут», «щас» в письменном тексте выглядят как ошибка. Подсказка предлагает литературную форму.
Заимствования и жаргон
дедлайн срок
«Фидбек», «юзать», «релевантный»: у каждого слова своя русская замена, а не общий совет.
Паронимы
одел пальто надел пальто
Похожие слова с разным смыслом. Подсказка срабатывает только там, где ошибка однозначна: «одела ребёнка» не отмечается.
Плеоназмы
памятный сувенир сувенир
Одно слово повторяет смысл другого: «в конечном итоге», «свободная вакансия». Остаётся нужное.
Типографика
"Стандарт" - модель «Стандарт» — модель
Прямые кавычки, дефис вместо тире и в диапазонах «10:00-18:00», лишние пробелы, «м2», «25-ый», непарные скобки и латинская буква внутри русского слова.
Опечатки
даволен доволен
Варианты исправления одним нажатием и свой словарь для слов автора.
У многих подсказок есть готовый вариант: нажмите на него, и слово заменится в тексте. Без нажатия текст не меняется. Для опечаток, морфологии и подбора формы слова в замене нужен сервер Reedach, остальное работает и в браузере.


Четыре способа подключить
<script src="…/reedach.min.js">
Сервер в DockerВсё вместе по HTTP API: орфография, морфология и стиль.docker run ghcr.io/dimafaller-en/reedach
Библиотека в кодеСтиль в браузере и Node, всё — в Node с hunspell.npm i reedach
Плагин для WordPressСтиль прямо в редакторе блоков, без сервера, на любом хостинге.wordpress.org/plugins/reedach
Виджет на любую страницу
Подсветка ложится поверх текста в textarea, список замечаний обновляется, пока автор пишет. Нажатие на вариант заменяет слово в поле, Ctrl+Z отменяет замену. «Добавить в словарь» запоминает слово в браузере автора, а сайт может подключить своё хранилище. Интерфейс на русском и английском.
<script src="https://cdn.jsdelivr.net/npm/reedach-widget@0.6.2/dist/reedach.min.js"
integrity="sha384-WC5xx+bGmCEZcBmEp0NXBYwuSuSL/M7jyMu4YGFh5km+xTxXMdgyAfhBN07jDnMs"
crossorigin="anonymous" defer></script>
<textarea data-reedach
data-reedach-endpoint="https://checker.example.ru/v1"
data-reedach-key="ключ-сайта"
data-reedach-format="markdown"
data-reedach-panel="#hints"></textarea>
<div id="hints"></div>
integrity проверяет, что CDN отдал именно этот файл: если его подменят, браузер скрипт не запустит. Хеш свой у каждой версии, берите его из README той версии, которую подключаете.
Все атрибуты, кроме data-reedach, необязательны. Без data-reedach-endpoint проверка идёт только в браузере. Без data-reedach-panel список появится сразу под полем.
Ключ в коде страницы виден любому посетителю. Привяжите его на сервере к адресу своего сайта или отправляйте запросы через сервер сайта: тогда укажите в data-reedach-endpoint адрес своего посредника, а ключ не указывайте.
Из кода
import {attach} from 'reedach-widget';
const checker = attach(document.querySelector('textarea'), {
endpoint: '/api/reedach', // сервер Reedach или посредник; без него — только стиль
format: 'markdown', // 'text' (по умолчанию) или 'markdown'
panel: document.querySelector('#hints'),
disable: ['intensifiers'], // выключить правила по id или целые категории
dictionary: { // своё хранилище слов автора; по умолчанию — localStorage
list: async () => ['Reedach'],
add: async word => { /* сохранить у себя */ },
},
request: null, // своя функция запросов: вход по cookie, CSRF-токен и т. п.
});
checker.check(); // проверить сейчас
checker.stop(); // убрать подсветку и список
Оформление
Виджет не приносит своих цветов и шрифтов, оформление задаёт сайт:
::highlight(reedach-word) { background-color: rgba(255, 61, 31, .15); } /* слова и обороты */
::highlight(reedach-long) { background-color: rgba(20, 20, 20, .06); } /* длинные предложения и абзацы */
::highlight(reedach-spell) { text-decoration: underline wavy #ff3d1f; } /* опечатки */
::highlight(reedach-active){ background-color: #ffc4b5; } /* место, куда перешли из списка */
Список и подсказка собраны из элементов с классами reedach-*. Готовый пример стилей для светлой и тёмной темы — в demo.css. Подсветка работает в Chrome и Edge 105+, Safari 17.2+, Firefox 140+, в старых браузерах будет только список замечаний. Все настройки — в README виджета.
Сервер с орфографией
docker run -d -p 3000:3000 \
-e REEDACH_KEYS="длинный-ключ-сайта=https://ваш-сайт.ru; ключ-для-сервера-сайта" \
ghcr.io/dimafaller-en/reedach
Образ собран для amd64 и arm64, весит 139 МБ, hunspell и словари уже внутри. Тексты не сохраняются и не пишутся в журнал. Страница-пример, как на скриншотах, открывается по адресу /demo/, если запустить сервер с -e REEDACH_DEMO=1.
Ключи: что это и откуда они берутся
Ключ — это пароль от вашего сервера Reedach. Его никто не выдаёт, регистрироваться нигде не нужно: вы придумываете ключ сами, передаёте его серверу при запуске и сообщаете своему сайту. Без правильного ключа сервер текст не проверяет, поэтому чужие сайты и скрипты вашим сервером не воспользуются.
Сделайте два случайных ключа длиной от 16 символов. Подойдёт любой длинный набор букв и цифр, например:
openssl rand -hex 24Передайте оба ключа серверу в
REEDACH_KEYSчерез;. К первому через=допишите адрес своего сайта, он будет для браузера. Второй оставьте без адреса, он для сервера сайта:REEDACH_KEYS="9f2c51d0e8a4b7c3f61e71a2=https://ваш-сайт.ru; 4b8de0a93c17f6b25d0c3f88"Ключ с адресом укажите виджету:
data-reedach-key="9f2c51d0e8a4b7c3f61e71a2". Он будет виден в коде страницы, и это нормально: из браузера сервер примет его только со страницваш-сайт.ru.Ключ без адреса держите в секрете на сервере сайта и передавайте в заголовке
Authorization: Bearer 4b8de0a93c17f6b25d0c3f88. С ним сервер не пустит запрос из браузера.
Для нескольких сайтов заведите по ключу на каждый. У одного ключа может быть несколько адресов через запятую. Чтобы сменить ключ, перезапустите сервер с новым списком.
Ключ из кода страницы чужой сайт со своих страниц использовать не сможет, но скрипт вне браузера сможет, и сдержат его только лимиты. Надёжнее вообще не давать ключ браузеру: отправлять запросы через сервер своего сайта, а Reedach не открывать в интернет. Тогда в виджете вместо адреса Reedach укажите адрес своего посредника, а ключ не указывайте.
Запрос и ответ
curl https://checker.example.ru/v1/check \
-H 'Authorization: Bearer ключ-для-сервера-сайта' -H 'Content-Type: application/json' \
-d '{"text": "В настоящее время мы осуществляем доставку.", "ignore": ["Reedach"]}'
{"issues": [
{"start": 0, "end": 17, "id": "time-parasite-start", "category": "time", "label": "Паразит времени",
"message": "Вступление о нынешнем времени ничего не добавляет к предложению.", "fix": "…"},
{"start": 21, "end": 42, "id": "weak-verb-noun", "category": "bureaucratese", "label": "Канцелярит",
"message": "Пустой глагол плюс отглагольное существительное звучат казённо.",
"fix": "Замените одним глаголом: не «осуществляем доставку», а «доставляем»."}
]}
| Запрос | Что делает |
|---|---|
POST /v1/check | проверить markdown, text или blocks; ignore — слова автора, disable — выключенные правила, checks — какие проверки запускать: spelling, morph, style |
POST /v1/suggest | варианты исправления: {"words": ["превет"]}, до 20 слов за раз |
GET /v1/rules | все правила с категориями и объяснениями — для страницы настроек |
GET /health | сервер работает; ключ не нужен |
Ошибки: 401 — нет ключа, 403 — ключ не для этого сайта, 413 — слишком большой текст, 422 — неверные поля, 503 — сервер занят, повторить через Retry-After секунд.
Настройки
| Переменная | По умолчанию | Что задаёт |
|---|---|---|
REEDACH_KEYS | обязательно | ключи доступа |
PORT | 3000 | порт |
HOST | 0.0.0.0 | адрес |
REEDACH_MAX_BYTES | 200000 | максимальный размер запроса в байтах (200 КБ — около 100 тысяч знаков русского текста) |
REEDACH_CONCURRENCY | 2 | сколько проверок идёт одновременно |
REEDACH_QUEUE | 20 | сколько запросов может ждать; остальные получат 503 |
REEDACH_TIMEOUT | 20000 | сколько миллисекунд может идти одна проверка; дольше — 503 |
REEDACH_DEMO | — | 1 — страница-пример по адресу /demo/ |
Полное описание полей и ответов — в README сервера.
Библиотекой в коде
Только стиль, без зависимостей, в браузере и Node:
npm i reedach
import {checkStyle, sourceBlocks, mergeIssues} from 'reedach';
const markdown = 'В настоящее время мы осуществляем доставку хлеба.';
const blocks = sourceBlocks(markdown); // абзацы, пункты списков, заголовки
const issues = mergeIssues(blocks, {local: checkStyle(blocks)});
for (const it of issues)
console.log(markdown.slice(it.start, it.end), '—', it.label, '—', it.message, it.fix);
start и end указывают на место в исходном тексте, поэтому замечание можно подсветить прямо в поле ввода. Блоки можно передать и без Markdown: checkStyle([{text: '…', kind: 'p'}]), где kind — p (абзац), li (пункт списка) или h (заголовок). Длину предложения и абзаца можно настроить: checkStyle(blocks, {maxSentenceWords: 25, maxParagraphWords: 120}).
Всё вместе — орфография, морфология и стиль — в Node, без отдельного сервиса. Нужен установленный hunspell:
npm i reedach-server
import {check} from 'reedach-server';
const {issues} = await check({
markdown: 'В настоящее время мы осуществляем доставку.',
ignore: ['Reedach'], // слова автора: формы тоже принимаются
disable: ['intensifiers'], // выключить правило по id или целую категорию
});
Плагин для WordPress
Подсказки по стилю прямо в редакторе блоков. Проверка идёт в браузере автора, сервер не нужен, поэтому плагин работает на любом хостинге. Орфографии в плагине нет: для неё нужен сервер.

В панели Reedach — список замечаний, нажатие выделяет фрагмент в тексте. Если у подсказки есть готовый вариант, под ней кнопка: она заменяет слово в записи, «Отменить» возвращает как было. Подсветка работает в заголовке записи, абзацах, подзаголовках, списках, цитатах и подписях. В «Настройках → Reedach» администратор выбирает, какие виды подсказок показывать авторам.
Установите из каталога WordPress: «Плагины → Добавить новый», поиск «Reedach». Или скачайте reedach-wordpress-X.Y.Z.zip из последнего релиза и загрузите в «Плагины → Добавить новый → Загрузить плагин». Нужны WordPress 6.5+ и PHP 7.4+. Лицензия плагина — GPL-2.0-or-later.
Опечатки ищет hunspell
Hunspell — открытая программа проверки орфографии, на которой работает проверка в LibreOffice и Firefox. Reedach не встраивает её в свой код, а запускает отдельной программой на вашем сервере, поэтому текст не уходит в чужие сервисы.
Словари
Русский — dictionary-ru на основе словаря Александра Лебедева, английский — dictionary-en на основе SCOWL. Оба подключены сразу, поэтому английские слова в русском тексте не считаются ошибками. Русскому словарю много лет: новых слов и заимствований в нём может не быть. Для них есть слова автора.
Что проверяется
Слова из букв, в том числе через дефис. Пропускаются ссылки, адреса почты, аббревиатуры заглавными буквами, слова с цифрами, однобуквенные слова и английские сокращения вроде isn't.
Слова автора
Список ignore в запросе или «Добавить в словарь» в виджете. Формы тоже принимаются: если у слова та же основа и после неё не больше пяти букв. У глаголов основа считается без -ть и -ться. Правило работает для слов от пяти букв. В hunspell эти слова не добавляются, поэтому сервер ничего не запоминает между запросами.
Как устроено
Поиск ошибок и подбор вариантов — два разных шага, потому что второй медленнее в сотни раз.
- Ошибки находит короткий запуск
hunspell -lна каждый запрос: тысячи слов за доли секунды. - Варианты подбирает один постоянно запущенный
hunspell -a: примерно 0,3 секунды на слово, до пяти вариантов. Сразу они приходят только для первых десяти ошибок, на всё отводится не больше трёх секунд. Остальные можно запросить через/v1/suggest, когда автор нажмёт на слово. Готовые ответы запоминаются для 5000 слов.
Безопасность
В постоянный hunspell уходят только слова из букв, каждое отдельной строкой со служебным знаком в начале, поэтому никакой текст не станет командой. Слова идут по одному, и ответы разных запросов не перепутаются. Зависший процесс убивается и запускается заново, а после 2000 слов перезапускается в любом случае.
Установка
В Docker-образе hunspell уже есть. Для пакета reedach-server поставьте его сами: apk add hunspell в Alpine, apt install hunspell в Debian и Ubuntu, brew install hunspell на macOS. Словари ставятся вместе с пакетом из npm.
82 правила в 27 категориях
Правила лежат в packages/core/src/rules.js. У каждого есть категория, объяснение, совет и список слов:
{id: 'bureaucratese-verbs', category: 'bureaucratese',
message: 'Канцелярский оборот звучит как отписка и скрывает суть.',
fix: 'Заменить простым глаголом или словом: делать, для, чтобы, это.',
words: ['осуществл*', 'имеет место', 'в рамках', 'в целях', 'с целью', /* … */]},
Звёздочка в конце слова означает «любое окончание»: осуществл* найдёт «осуществляет», «осуществление» и «осуществлять». Правило с start: true срабатывает только в начале предложения, как «В настоящее время». Любое правило или целую категорию можно выключить через disable.
Это простые подсказки. Проверка ищет по словарю и простым правилам, поэтому иногда ошибается и не заменяет редактора.
Источники и лицензии
Правила и формулировки подсказок написаны для проекта. Идеи взяты из открытых статей об информационном стиле: Максим Ильяхов, Бюро Горбунова и другие авторы. Тексты статей в проект не копировались.
Часть пар «англицизм → русское слово» выписана из открытого набора ru_anglicism (Apache-2.0), список паронимов сверен со словариком ФИПИ для ЕГЭ, идеи части проверок типографики взяты из typograf (MIT). Пояснения и регулярные выражения написаны для Reedach.
Ядро reedach не содержит сторонних зависимостей. Сервер использует их так:
| Компонент | Лицензия |
|---|---|
| Az.js — морфологический анализ | MIT |
| Словари Az.js — данные OpenCorpora, сборка pymorphy2 | CC BY-SA |
| dictionary-ru — словарь hunspell, © 1997–2008 Alexander I. Lebedev | BSD-3-Clause |
| dictionary-en — словарь hunspell на основе SCOWL | MIT AND BSD |
| hunspell — запускается как отдельная программа | GPL-2.0 / LGPL-2.1 / MPL-1.1 на выбор |
Шрифты этой страницы — Literata и Golos Text, логотип набран Instrument Serif; все три под лицензией SIL OFL.
Разработка
npm ci
npm test
Для тестов орфографии нужна программа hunspell. Если её нет, эти тесты пропускаются. Новая версия выходит по тегу vX.Y.Z: GitHub прогоняет тесты, публикует пакеты в npm и собирает образ.
История версий
Все пакеты Reedach выходят с одним номером версии: reedach, reedach-widget, reedach-server, Docker-образ и плагин для WordPress.
0.6.2 — 7 ноября 2026
Версии 0.6.0 и 0.6.1 в npm не публиковались (0.6.1 есть только на GitHub и в ghcr: публикацию в npm сорвал сбой журнала подписей). В 0.6.2 те же изменения и исправленные цвета меток в демо виджета.
- Тексты интерфейса. Новая группа правил по словарю Ильи Бирмана и советам Бюро Горбунова: вопрос «Вы уверены?» вместо отмены, кнопка «ОК», ошибка без объяснения («Что-то пошло не так»), подпись поля командой («Введите номер телефона» — так обычно выглядит плейсхолдер на месте подписи), «кликните» и «перейдите по ссылке», ссылка «Подробнее». Подпись поля, «ОК» и «Подробнее» отмечаются, только когда стоят отдельной строкой: внутри обычной фразы эти слова не трогаются. В WordPress группу можно выключить в настройках.
- Подсказка с клавиатуры и на телефоне. Подсказка у слова появляется не только при наведении мышью: после стрелок, Home и End, если курсор стоит в отмеченном слове, и после касания слова на телефоне. Esc и начало набора её убирают.
- Ошибка и совет видны по-разному. Явные ошибки («вообщем», паронимы, просторечия, типографика) подчёркнуты красным поверх обычной подсветки. В плагине для WordPress советы теперь жёлтые, ошибки подчёркнуты, длинные предложения серые. Для разработчиков: новая подсветка
reedach-mistakeи класс у пункта списка, наборMISTAKESв пакетеreedach. - Падеж однородных слов (сервер). «После подписания договора и оплату» → «оплаты», «для клиентов и партнёрам» → «партнёров»: после одного предлога однородные слова стоят в одном падеже. Замена одним нажатием.
- Типографика по своду Бюро Горбунова. Неразрывный пробел между числом и единицей («100 ₽», «5 кг», «2024 г.»), между инициалами и фамилией («А. С. Пушкин») и после «№». Разряды в длинных числах: «1500000» и «1,500,000» → «1 500 000»; номера, ИНН, артикулы и телефоны не трогаются. Английские кавычки “…” → «…», а внутри ёлочек — „…“. Неразрывный пробел не видно, поэтому кнопка такой правки в виджете и в WordPress называется «Неразрывный пробел», а не повторяет текст.
- «ё» по желанию. Подсказка «еще» → «ещё», «черный» → «чёрный» для слов, где «е» иначе не прочитать. По умолчанию выключена: в виджете — параметр
yo: true, на сервере — полеyoв запросе, в WordPress — отдельная галочка в настройках. - Тексты подсказок прогнаны через Reedach. Слова, о которых говорит подсказка, теперь в кавычках («Слово «просто» звучит как оправдание»), подсказки больше не советуют то, что сами же отмечают, исправлено пояснение к паре «осудить» и «обсудить». Серверная подсказка о пустом глаголе больше не срабатывает на «даёт проверить утверждение».
0.5.0 — 7 ноября 2026
- «Пропустить». Если автор решил оставить оборот как есть, замечание можно убрать из списка. Оно не вернётся, пока не изменится его предложение, и помнится в этом браузере. Внизу списка видно, сколько замечаний пропущено, а «Показать снова» возвращает их все.
- Отмена прямо в списке. На месте исправленного или пропущенного замечания появляется строка «Убрано «…». Отменить» или «Пропущено «…». Вернуть». Она остаётся, пока автор не продолжит писать; Ctrl+Z по-прежнему работает.
- «Пропустить» и «Вернуть» есть в виджете и в боковой панели плагина для WordPress. Отмену исправлений в WordPress делает сам редактор, как и раньше.
- Для разработчиков: у
attach()новый параметрskips— своё хранилище пропущенных замечаний (по умолчанию localStorage), новые классыreedach-skip,reedach-done,reedach-hidden.
0.4.0 — 24 октября 2026
- «Убрать» одним нажатием. Если без найденного оборота фраза остаётся грамотной, у подсказки есть кнопка «Убрать»: вводное слово между запятыми, «Не секрет, что …», предложение-формула «Спасибо за внимание!», лишнее определение перед словом. Вместе с оборотом уходят лишние запятые и пробелы, а следующее слово получает заглавную, если нужно: «Не секрет, что цены растут» → «Цены растут». Сразу после «не» и поперёк разметки кнопки нет, там остаётся совет.
- Правки шире подсказки. Кнопка «Принять «…»» меняет кусок рядом с найденным: «Мы купили дом. Который стоит у реки» → «Мы купили дом, который стоит у реки», лишний пробел перед знаком препинания уходит вместе с ним.
- Больше готовых замен. Плеоназмы («счет на оплату» → «счет», «свободная вакансия» → «вакансия»), падеж после «согласно» («согласно договора» → «согласно договору»), повтор слова («что что»), типографика: двойной пробел, пробел перед знаком, кавычки, тире. Любую правку отменяет Ctrl+Z.
- С сервером Reedach вариант встаёт в форму найденного оборота: «оказываем содействие» → «помогаем», «производим оплату» → «оплачиваем», «скриншоты» → «снимки экрана».
- Кнопки работают в виджете и в боковой панели плагина для WordPress.
- Для разработчиков: в ответе у подсказки новое поле
edit{start, end, text, remove?}— готовая правка; как её применить, написано в README пакетаreedach. Полеreplaceтеперь приходит и у правил без своей замены, если её можно сделать механически.
0.3.3 — 16 октября 2026
- Новые частые ошибки. «Что бы» вместо союза «чтобы» («для того, что бы мы творили», «что бы рассказать»), но не в «что бы ни случилось» и «не знаю, что бы почитать». «А так же» вместо «а также». «По настоящему», «по моему» вместо «по-настоящему», «по-моему», но не в «по новому адресу». У всех трёх правил есть исправление одним нажатием.
- С сервером Reedach ещё три проверки: «не» с прилагательным без противопоставления («не сложные сайты → несложные»), падеж после глаголов вроде «заниматься» («занимался настройка → настройкой») и опечатка «пой» вместо «мой» перед существительным («изменило пой подход»).
0.3.2 — 13 октября 2026
- Плагин для WordPress. Русский перевод интерфейса больше не лежит внутри плагина: так просит каталог WordPress.org, переводы там приходят с translate.wordpress.org. Пока русский перевод не загружен туда, интерфейс плагина на английском, подсказки по тексту по-прежнему на русском.
0.3.1 — 12 октября 2026
- Плагин для WordPress. Русский перевод интерфейса подключается без устаревшей функции
load_plugin_textdomain, на которую ругалась проверка WordPress.org. Если для плагина есть перевод с translate.wordpress.org, используется он, иначе — встроенный.
0.3.0 — 12 октября 2026
- Замена одним нажатием. У многих подсказок есть готовый вариант: нажмите на него, и слово заменится в тексте. Без нажатия текст не меняется, замену отменяет Ctrl+Z. С сервером Reedach вариант встаёт в форме найденного слова: «релевантных → подходящих», «минимизировали → сократили». Без сервера, в том числе в плагине WordPress, кнопка с синонимом появляется, только когда найденное слово уже в начальной форме («релевантный», «дедлайн»), иначе остаётся совет. Точные исправления («вообщем → в общем», тире, «м²») работают везде.
- Свои замены у каждого слова в канцелярите, штампах, заимствованиях, жаргоне, частых ошибках и просторечиях. Где одним словом не заменить («в рамках проекта»), остаётся совет.
- Паронимы: «одел пальто → надел», «предвыборная компания → кампания», «представить доступ → предоставить». Подсказка срабатывает только рядом со словом, при котором ошибка однозначна: «одела ребёнка» не отмечается.
- Больше слов: около 120 англицизмов и жаргонных слов с русскими заменами («дедлайн → срок», «фидбек → отзыв», «юзать → использовать»), 50 плеоназмов («памятный сувенир», «в конечном итоге»), 60 канцелярских оборотов («в случае если → если», «на постоянной основе → постоянно»).
- Типографика: дефис в диапазонах («10:00-18:00», «пн-пт», «8-12 мм»), три точки вместо многоточия, тире без пробела с одной стороны, сокращения без пробела («г.Москва», «т.е.»), «м2», «25-ый», «№5», «(c)». Исправление тоже вставляется нажатием.
0.2.0 — 12 октября 2026
- Плагин для WordPress. Подсказки по стилю в редакторе блоков: панель со списком замечаний, подсветка в тексте, нажатие на подсказку выделяет фрагмент. Работает без сервера, на любом хостинге. В «Настройках → Reedach» можно выключить ненужные виды подсказок. Архив плагина приложен к релизу на GitHub.
- Свои замены для иностранных слов. У каждого слова в правиле про латинизмы свой вариант: «релевантный → подходящий, нужный, уместный», «минимизация → сокращение, уменьшение».
- Безопасность. Специально подобранный текст больше не замедляет проверку: исправлены медленные регулярные выражения в проверке стиля, разборе Markdown и поиске адресов почты. Сервер проверяет текст в отдельном потоке и всегда отвечает на другие запросы.
- Сервер. Новая настройка
REEDACH_TIMEOUT(20 секунд): проверка дольше останавливается с ответом 503.REEDACH_MAX_BYTESпо умолчанию 200 000 вместо 1 000 000. JSON с глубокой вложенностью отклоняется с ответом 422. - Выпуски. Публикация ждёт подтверждения владельца, шаги сборки закреплены по точным версиям.
0.1.2 — 12 октября 2026
- Частые ошибки: «вообщем», «по приезду», «согласно договора», «оплатить за», «обоих сторон».
- Просторечия и повтор слова подряд.
- Типографика: лишние и недостающие пробелы, прямые кавычки, непарные скобки, дефис вместо тире, повтор знаков, слипшиеся инициалы, латиница внутри русского слова.
- В Markdown пробелы на месте кода, картинок и переносов строк больше не считаются опечатками. Ссылки со скобками в адресе разбираются целиком.
0.1.1 — 12 октября 2026
- Документация: логотип, скриншоты, подробнее про ключи сервера и орфографию на hunspell. Код не менялся.
0.1.0 — 12 октября 2026
- Первая публикация: ядро
reedachсо словарём правил, виджетreedach-widgetдля любого поля ввода, серверreedach-serverс орфографией, морфологией и HTTP API, Docker-образghcr.io/dimafaller-en/reedachдля amd64 и arm64.
Релизы с архивом плагина — на GitHub.
A style checker for Russian text
Reedach checks Russian text for bureaucratese, clichés, filler and vague words, heavy syntax, common mistakes, typography and typos, and shows hints right in a textarea as you type. It runs in the browser or on your own server, and the text never leaves it.
reedach— the rule dictionary and style checker, no dependencies, browser and Node.reedach-widget— a drop-in widget for any textarea: one<script>tag, no styles of its own.reedach-server— spelling (hunspell) and morphology (Az.js + OpenCorpora), as a library or an HTTP API:docker run ghcr.io/dimafaller-en/reedach.- WordPress plugin — style hints in the block editor, no server needed: in the WordPress plugin directory (GPL-2.0-or-later).
MIT license. Source code on GitHub.