Эгея 2.6 бета
Готова новая Эгея 2.6 бета (сборка v3074). Не обновляйтесь на живых сайтах, если только вы не суперпродвинутый технарь, обложившийся бекапами со всех сторон. Не забывайте, что бета — это очень страшно.
В конце заметки — ссылка на дистрибутив. А пока расскажу вам, что нового.
Локальное автосохранение заметок
Заметки теперь непрерывно сохраняются в браузере, пока их пишешь, поэтому изменения не потеряются, если пропадёт интернет или отрубится электричество.
Как вы помните, я долго думал, как сделать автосохранение в редакторе. Речь идёт о локальном автосохранении: чтобы правки в заметке не потерялись, если при сохранении на сервер вдруг пропал интернет или упал браузер. Теперь такая фича есть.
Если вы редактируете заметку, и ещё не сохранили правки на сервер, вы видите слева ⌘ S и красный кружок:
Это просто признак того, что есть несохранённые изменения. Если закрыть эту страницу, а потом открыть заново, то она откроется ровно в таком же состоянии: с тем же текстом, с той же красной точкой, означающей, что данные не сохранены, и с курсором, мигающим в том же месте.
Но если на сервере есть более новая версия этой заметки, значит вы уже редактировали заметку с другого компьютера после этого. Тогда откроется более новая версия с сервера — без красной точки.
У любой несохранённой на сервер заметки возле карандашика будет гореть такая же красная точка:
Кроме того, если в браузере есть несохранённые на сервер заметки, то красная точка загорится и возле иконки черновиков:
Если зайти в черновики, там отдельно будут ссылки на все несохранённые правки в заметках:
Если есть несохранённые правки в черновиках, то красные точки появятся около них.
Если вы нажали на плюс, начали писать заметку, и вообще ни разу не сохранили её на сервер, красная точка будет висеть около плюса:
По клику откроется форма новой заметки с тем, что вы успели написать и красной точкой около ⌘ S слева — как если бы вы её не закрывали.
Локальное автосохранение работает только для заметок и черновиков. Его нет у тегов и комментариев.
Эта функция требует тестирования. Если вы будете ставить бету, уделите ей внимание, пожалуйста, и расскажите обо всех проблемах.
Автосохранение запрограммировал Игорь Адаменко — он же ранее помогал мне с новой версией моего сайта. Игорь крутой.
Новый поиск
Я уже упоминал новый поиск в этом блоге. Конечно же, это новый поиск Эгеи.
Во-первых, он научился склонять слова. Во-вторых, выдача стала намного удобнее: вместо простыни заметок она показывает небольшие «сниппеты», содержащие найденный фрагмент текста и все картинки из заметки. Узнать нужную заметку по картинкам — самый кайф:
Избранные заметки имеют больше веса при поиске.
Поиск работает на «Розе» — встраиваемом поисковом движке Романа Парпалака, о котором мы с ним ещё напишем отдельно.
Если у вас много заметок, Эгее понадобится несколько минут после обновления, чтобы сначала всё проиндексировать. Результаты поиска в это время будут показываться по старой технологии. Вам ничего не нужно делать, Эгея управляет индексацией сама.
Это ж вам не Вордпресс какой-нибудь дебильный, где даже чтобы кеш работал вменяемо надо отдельный плагин ставить. Платный! Я чуть не охренел когда узнал. Но я отвлёкся.
Картинки и обложки в редакторе
Эгея с прошлой версии отдаёт картинки в качестве «обложек» при отправке ссылок в соцсети. Но теперь она умеет отдавать так и стоп-кадры видеороликов с Ютюба и Вимео. Ну и заодно у заметок с видеороликами появился шаринг в Пинтерес.
Кстати, эти стоп-кадры попадают и в выдачу поиска наравне с другими картинками, что тоже упрощает нахождение глазами нужной заметки.
При загрузке файлов колечко теперь не просто крутится, а заполняется, показывая прогресс. Удобно, если вы загружаете кучу больших фоток или 15-мегабайтную песню.
Раньше Эгея считала, что картинка используется в заметке, только если её упоминание было в тексте заметки. А если удалить упоминание из текста, то картинка «терялась» и из превьюшек снизу. Теперь это независимые вещи: заметка помнит загруженные в неё картинки, даже если они не используются в тексте.
Это даёт несколько приятностей:
- Обложкой для соцсети может быть картинка, которая не используется в самой заметке. Просто загрузите картинку в заметку, но не вставляйте её название в текст. Для этого перетащите её на страницу заметки, но за пределы текстового поля (раньше можно было перетащить только в текстовое поле).
- Если вы перетаскивали картинку, но файл с таким именем уже был на сервере, Эгея переименовывала его, добавляя в конец число. В прошлой версии добавилось перетаскивание с зажатым Альтом — в этом случае старая картинка заменялась новой. Теперь работает чуть умнее: если на сервере файл есть, но это тот же самый файл, то она просто добавляет его в ту заметку, куда вы его перетаскиваете, не делая бессмысленную копию на сервере.
- Когда вы удаляете картинку из превьюшек в редакторе, раньше Эгея просто удаляла файл на сервере. Теперь так делать нельзя, ведь «официально» поддерживается использование одного файла в нескольких заметках. Эгея смотрит, не используется ли файл где-то ещё, и удаляет его только, если он больше нигде не нужен.
- Наконец, Эгея не «потеряет» картинку просто из-за того, что вы убрали её имя текста заметки.
Ещё теперь можно загружать картинки в СВГ.
Всё, что я написал про картинки, верно и для аудиофайлов. Но аудиофайл или СВГ не могут быть обложками для соцсетей.
С прошлой версии Эгея «растягивает» текстовые поля по высоте так, чтобы в них влезал весь текст. Это позволило избавиться от двойной прокрутки (когда текстовое поле прокручивается внутри прокручиваемой страницы). Но из-за этого стало не видно лейбл поля, рядом с которым как раз показан статус сохраненности. Поэтому теперь это всё залипает при прокрутке:
И на мобиле:
Кнопка удаления переехала из подвала формы редактирования заметки в правый верхний угол (видно на первом скриншоте выше).
Теперь стандартное форматирование Эгеи поддерживается внутри тегов div, table и blockquote. Если вы хотите поставить текст на плашку или разбить на колонки, можете это сделать, а внутри продолжать использовать привычный синтаксис.
Автомиграция при подключении к старой базе
Когда вы обновляли Эгею, она меняла структуру базы данных для совместимости с новой версией — так было всегда.
Но раньше движок конвертировал базу только при обновлении, а вообще исходил из того, что база в актуальном формате. Поэтому если вы просто подключали его к существующей базе, а она была в старом формате, возникали ошибки.
Теперь движок наоборот исходит из того, что данные в базе могут быть в любом формате, начиная с формата Эгеи 2.0. Если вы устанавливаете движок начисто, а не обновляетесь, но при этом говорите, что данные в базе уже есть, или просто подключаетесь к другой базе в настройке, движок сконвертирует базу в актуальный формат.
Остальное
Исправлена куча багов. Но этим никого не удивишь.
При редактировании описания тега теперь тоже можно загружать файлы. Короче, описание тега теперь может выглядеть как полноценная заметка, у него тоже работают всякие обложки. Редактор тега открывается по Alt+E на странице тега, как у заметки. А сохранение изменений в описании тега заработало в сто раз быстрее.
Для залогиненного автора быстрее открываются заметки с кучей комментариев.
Изменилась логика включения комментариев. Раньше был глобальный флаг «разрешить комментарии», но можно было выключить индивидуально у отдельных заметок. Теперь глобального флага нет, комментарии настраиваются у заметок по отдельности. А глобально настраивается, врубать ли комментарии заметкам во время публикации по умолчанию или нет.
Основной кегль текста в комплектной теме увеличен с 15 до 16 пунктов. Знаки валют прикрепляются к суммам неразрывным пробелом. Форма логина заадаптивилась (в 2.5 недоглядели).
На странице удаления заметки появилась кнопка «Вернуть в черновики». На страницах архива, где показывают заметки списком ссылок, избранные заметки помечаются звёздочками. Добавилась поддержка шаринга в Линкед-ин (потому что обновился Лайкли).
Для платных пользователей появились несколько мелочей, о которых я расскажу отдельно.
Технические детали
Движок лучше распознаёт, что работает по ХТТПС, и отдаёт по этому же протоколу всякие скрипты и картинки.
Добавилась поддержка Апача 2.4, у которого с какого-то бодуна изменился на полностью нечитаемый синтаксис некоторых опций конфигурации. Движок должен работать под ПХП 7.0 и 7.1 — я теперь тестирую локально под семёркой. А на моём сайте, наоборот, крутится ПХП 5.3 — это теперь низшая из поддерживаемых версий.
Все скрипты теперь минифицируются.
Файл, в котором хранятся параметры настройки теперь называется не settings.psa, а settings.json. Если вдруг захочется вручную что-то отредактировать, теперь это удобнее.
Как попробовать и что тестировать
Ещё раз скажу, что не рекомендую пока обновляться на живых сайтах. Как обновиться:
- Отредактировать и сохранить любую заметку (на всякий случай, это гарантирует, что сделается актуальный бекап базы).
- Забекапить всю папку на сервере, включая бекапы базы данных, которые лежат в /user/backups/.
- Заменить файл .htaccess в корне, папку /system/ и все подпапки в /themes/ (то есть убрать старые, положить новые, а не дозалить в старые новые файлы).
Если вы делали свою тему оформления, посмотрите, что изменилось в комплектной, и аккуратно повторите эти изменения у себя.
Что тестировать:
- миграцию (если у вас есть старая база, попробуйте не обновляться, а поставить новый движок начисто, указав ему на неё);
- автосохранение в разных комбинациях с несколькими устройствами (особенно интересно, если на каком-нибудь из них ещё часы неправильно идут);
- загрузку и удаление файлов (загрузить одинаковые файлы в разные заметках; убедиться, что лишних копий не создаётся; удалить файл из какой-нибудь из заметок; убедиться, что он не удаляется с сервера, пока остались заметки, где он используется);
- поиск;
- работу под ПХП 7.
Ссылка: e2_distr_v3074.zip Релиз.
Пишите, чё как.