Редактор писал «Сохранено» и ничего не сохранял: TipTap поверх чужого HTML

habrahabr.ru · world
Full story

A developer building a service that writes articles and publishes them on clients’ websites described the editor in the dashboard where people revise articles before publication. For at least two months, the editor showed “Saved” and did not save a single character. The author says the bug itself is simple enough to explain in one paragraph, while the article focuses on the surrounding problem. The editor was built with TipTap on top of HTML from another source.

Я делаю сервис, который пишет статьи и сам публикует их на сайты клиентов. Как устроена публикация в четыре CMS, я уже рассказывал здесь . Сегодня про соседний кусок: редактор в личном кабинете, где человек правит статью перед публикацией. Как минимум два месяца этот редактор показывал «Сохранено» и не сохранял ни символа. Сама ошибка глупая, на неё хватит одного абзаца. Хуже, что очевидное исправление уничтожило бы статьи. По дороге к правильному нашлись ещё три ловушки. Санитайзер nh3 тратит почти минуту на 320 КБ разметки. Одно правило HTML5 превращает 99 КБ входа в 56 МБ выхода. А SELECT … FOR UPDATE в SQLAlchemy берёт блокировку и при этом отдаёт старые данные. Читать далее

Read full article → Compare