Ну, че. Вот опять у меня есть свой уютный бложек.

Это уже какая попытка? Четвертая? Пятая? Неважно. Так или иначе, вечная идея сделать свой блог это именно то, что привело меня в сферу разработки, то, благодаря чему я получил необходимые навыки, чтобы вкатиться на свою первую должность fullstack девелопера.

И да, по мере роста моего опыта, мне хотелось делать свой блог лучше и лучше. Но я, как обычно, легких путей не ищу, поэтому для меня всегда важно начинать новый проект с нуля и оверинжинирить его до посинения, так, словно это какой-то жизненно важный продукт, котормы будут пользоваться тысячи людей (хотелось бы, но увы). Путь постепенного улучшения это, к сожалению, воооообщеее не про меня.

И вот, последний раз у меня был активный бложек года, наверное, 4 тому назад. И снёс я его в один момент ровно потому, что там не было SSR. Казалось бы, ну перепиши ты просто на Nuxt? НЕТ.

Текстовый редактор

Это моя самая большая боль. В последней версии блога я решил не использовать готовые редакторы, а сделать свой. Но то был супер простейший редактор, который являлся простой стилизованной textarea. Ни о каких вставках ссылок или стилей для текста или чего-то еще речи не шло. Просто буквы. Ну и, помимо текстовых блоков, были еще блоки с изображениями. Для той версии блога этого было более, чем достаточно. Несмотря на эти ужасные недостатки, люди его читали и даже писали мне всякие добрые слова по поводу конента. Но я, перфекционист, принял этот вызов слишком серьезно и... принялся писать свой Rich Text Editor. Да не просто свой, а СВОЙ СВОЙ. То есть весь процессинг событий ввода, весь рендер, все алгоритмы нормализации и прочего я решил сделать сам. И я был близок к успеху.... Спустя 4 года разработки и ~5 версий, написанных с нуля.

Но я сдался.

У меня уже был на руках готовый редактор, который отлично работал, был построен на Vue, поэтому очень легко кастомизировался и расширялся. Были проблемы с оптимизацией, но я думал, что смогу решить их позже. Однако, когда я выяснил, что хорошо работает он только в Google Chrome, браузер, который я использую 99.9999% времени, я немного (много) расстроился. Так вышло, что в Firefox он работал приемлемо, но SelectioAPI немного отличался. Думаю, окей. Не страшно. Пофикшу позднее. Затем я решил испытать его на своём телефоне. Он хорошо работал с Android клавиатурой, но с моей Swift Keyboard он вытворял лютую дичь. А на iOS он не работал вообще.

И я понял, что это задачка ну прям уже совсем не стоит потраченного на неё времени. И пересел на...

Lexical

И за неделю сделал ровно такой же редактор. Только весь ввод текста теперь уже гораздо более надежный. И, хотя своих приколов у него тоже хватает, но весь основной функционал (вроде драг'н'дропа, летающих менюшек и кастомных блоков) я сделал без особых проблем. Есть некоторое чувство поражения, но Lexical делает, на секундочку, Facebook, командой из ~10 человек и уже более двух лет и они всё еще не релизнули версию номер 1, и на github у них примерно 1000 открытых issue. Поэтому да, поражение я тут принимаю с высокого поднятой головой и гордостью за себя и проделанную работу. Навыков я получил немало.

В бой 🤞😔

Штош. Надеюсь, это последняя итерация бложека. Отныне он будет жить и здравствовать столько же, сколько и я. Теперь тут есть и SSR, и нормальный редактор, и над дизайном ща поработаю и будет вообще конфета. Так что велкам!