• Записи 1597
  • Теги 119
  • Комментарии 3400

Лог жизни

Переход на Quill состоялся!

Сегодня закончил делать одну из самых больших доработок своего сайта — переход на визуальный редактор Quill. Далось это очень тяжело: постоянно вылезала необходимость всяких мелких доработок. Например, оказалось, что Quill зачем-то меняет все пробелы на  , что совершенно не входило в мои замыслы, и пришлось это обходить. Потом — найти способ убирать цвет шрифта и фон при вставке текста из буфера обмена, т.к. при копировании текста из того же Obsidian получался совершенно ненужный чёрный фон. А в самом конце обнаружился неприятный баг с тем, что всплывающие блоки для ввода/редактирования URL при вставке ссылки частично появлялись за пределами области редактирования. И много других подобных мелочей, которые вроде и незначительны, но внезапным своим появлением могут испортить то, что сейчас называют UX. И ещё пришлось поломать голову над тем, чтобы сохранить обратную совместимость с уже написанными текстами, чтобы и теги BBCode отображались корректно, и вообще их редактирование не приводило к искажению отображения. А для этого — немного доработать фильтрацию HTML-кода: разрешить атрибуты class и style, и для style делать ещё свою фильтрацию.

Зато теперь у меня есть то, ради чего во многом переделка сайта и затевалась: вместо визуально перегруженной формы с кучей полей — минималистичный distraction-free интерфейс, похожий на Teletype.in. И я могу быть уверен, что откуда бы я ни вставлял данные, они с одной стороны, сохранят базовое форматирование, с другой — не будет проблем, что скопированное будет смотреться на сайте чужеродно. (Эх, сколько я с этим намучился в те времена, когда занимался freelance-деятельностью: клиенты часто бездумно копировали текст из Wordа в CMS с каким-нибудь самым примитивным WYSIWYG, который сохранял вообще всё оформление, а потом получалось, что полстраницы одним шрифтом, половина — другим, скачут размеры, выравнивание и т.п.) А ещё теперь есть полноценное автосохранение, которое позволяет быть уверенным, что набранный текст никуда не исчезнет при случайном обновлении страницы, переходе назад и т.п. (Хотя кое-что в этом направлении я сделал ещё в Intellect Board 3.00, но работало оно не самым лучшим образом, и пару раз на мобильнике иногда случалась потеря текста из-за долгой загрузки при плохой связи). И ещё теперь ширина строки и свойства абзаца в визуальном редакторе в точности тому, что будет при отображении сообщения. Хотя в большинстве случаев это не особо важно, но всё равно приятно. И наконец-то сделал sticky toolbar, что просто необходимо при написании текста с мобильника, чтобы кнопки всегда были на экране. В общем, теперь на сайте я чувствую себя так же, как когда сижу за домашним компьютером и пишу текст в каком-нибудь Obsidian или LibreOffice Writer.

Правда, новый интерфейс пока доступен только при создании новых тем в блоге, поэтому увидеть его можем только мы с MadTechGuy. Остальным могу только показать скриншот. В комментарии и форму создания новых тем перенесу всё позже. Всё-таки доделок остаётся немало: решить, как быть с картинками, которые сейчас вставляются в виде base64 прямо в текст сообщения, переделать обработку вставки видео, добавить поддержку PWA, да и просто ещё как следует потестировать. А ещё наконец-то пошли мысли, как можно сделать синхронизацию черновиков с сервером и при этом допускать существование нескольких черновиков одновременно в каждом разделе, а не одного, как сейчас.

Прикрепленные файлы:
  • 2025-11-17 20.56.44 4xpro.ru c86f42a25b32.png

Написать комментарий:

Написать комментарий
Прикрепить файлы: (не более 4 файлов, не более 102400 Кб каждый, 102400 Кб всего)


Задать вопрос