Название немного ошибочно; мой инструмент проверки орфографии больше фокусируется на формате, чем написание (шапки, знаки препинания и пробелы, апострофы, конвертирование интернет-сленга в полные слова, встроенные слова и т.д.). Однако применяются основные принципы.
В принципе, строчка JS/jQuery, которую я создаю, будет исправлять слова по мере их ввода (после пробела или знаков препинания после слова).
Однако, как и любая автокоррекция, она неизбежно сталкивается с ошибками. Я даже не рассматриваю возможность создания функциональности, которая бы определяла, является ли "ее" или "она" более подходящей в данном случае (хотя, если такой плагин или фрагмент кода существует, укажите мне один).
Поэтому я хочу сделать его "уступающим" автокорректом (из-за отсутствия знания лучшего имени). В основном,
- Пользователь вводит слово в слово, которое будет вызывать проверку, и пространство.
- Контроллер исправляет слово.
- Пользователь считает это ошибкой и исправляет его назад (путем возврата всего слова или его частей, или выделяя его, или, тем не менее, им удобно редактировать его).
- пользователь продолжает печатать, а контрольная панель не затрагивает этот экземпляр этого слова.
Теперь проще всего было бы полностью отключить проверку этого слова, но я хочу, чтобы контролер исправлял будущие экземпляры. То, что я ищу, обнаружит пользователя, редактирующего автокорректированное слово (независимо от того, правильно ли оно было после ввода или позже), до того, как оно было до автокоррекции, а затем научится оставлять этот конкретный экземпляр только этого слова.
Я даже не знаю, с чего начать. Я думаю, что контент с учетом каждого слова, заключенного в промежутке, автокорректированные, имеющие специальный класс, и атрибут data- *, содержащий исходный, прослушивают редактирование на автокорректированных словах, и если он отредактирован обратно, чтобы сравнять данные - значение, добавьте класс, который оставит его в будущих раундах автокоррекции.
Я думаю, что это может быть излишне сложным или, по крайней мере, не наименьшим сопротивлением. Каким будет самый умный способ сделать это?