Эгея 2.10
Готова Эгея 2.10 (сборка v3788). Эта заметка подытоживает предыдущие анонсы: альфа, альфа 2, бета. Некоторые вещи я тут сократил.
Главная тема 2.10 — это «дискавери». Одна из фундаментальных проблем формата блога — это его хронологичность. Последние заметки видно, а что было месяц или, тем более, пять лет назад — нет. А ведь у нормальных ребят ценные заметки встречаются на протяжении всей истории. Я хочу, чтобы читателям было проще погружаться в интересные блоги и находить в них интересное, и теперь Эгея будет с этим помогать.
Рекомендации
Под заметками теперь автоматически собирается этажик «Дальше»:
Эгея использует теги, чтобы понять, какие заметки близки по смыслу и форме. Если читатель дочитал заметку, логично предложить ему ещё. Так что ставьте теги — это поможет движку рекомендаций не заблудиться. Списка ссылок на популярное в подвале заметок теперь не будет, потому что рекомендации намного круче.
В рекомендации попадают только избранные заметки. В Эгее давно можно отметить заметку как избранную — тогда она выделятся звездой. Но теперь избранность обрела очень конкретный смысл: это заметка, которая по задумке автора обладает вечной ценностью. Ставя заметке звёздочку, вы говорите Эгее: «даже через много лет можешь рекомендовать эту заметку читателям». При этом заголовки избранных заметок больше не будут выделяться размером (можете вернуть это обратно через стили).
При формировании рекомендаций Эгея не учитывает дату написания заметок — в рекомендации может попасть очень давняя заметка. Вот к заметке 2020 года подтянулся 2002-й, и ничего:
Заметьте, что заодно немного поменялся дизайн листалки влево-вправо между соседними заметками.
Если в рекомендации попала заметка, которую вы не считаете важной, перейдите по ссылке на неё и уберите ей звезду — Эгея сразу же пересоберёт этаж рекомендаций. Ну и всегда можно подкрутить теги, чтобы Эгея лучше разобралась в связях заметок. Естественно, изменения тоже применяются сразу же. Прямого способа сказать Эгее, что именно рекомендовать, нет.
Когда Эгея сформировала набор заметок для рекомендаций, она верстает их автоматически, используя могучую магию. Повлиять на это тоже никак нельзя — как Эгее понравится, так и сверстает.
Движок вёрстки учитывает не только смысл, но и такие вещи как длину заголовка или пропорции картинок, чтобы выбрать наиболее клёвую раскладку. Он даже может взять не первую картинку из заметки, а, скажем, седьмую, если она ему покажется более подходящей. Также для разнообразия вёрстки рекомендаций, в ней небольшую роль играет случайность. Так что этаж рекомендаций даже для автора в некотором смысле сюрприз:
За последние несколько месяцев сам у себя нашёл много классных старых заметок.
В последнем примере слева попалась вертикальная картинка и длинный заголовок. А справа заголовок короткий и картинки нет — пришлось вытащить описание заметки, чтобы не возникало дыры (это описание теперь можно редактировать, см. «Соцпакет» ниже).
Хоть случайность и влияет, но вёрстка рекомендаций стабильна при стабильных данных. Пока вы не меняете сами заметки, картинки в них, теги или избранность, вёрстка тоже не поменяется.
Рекомендации доступны только в платной версии.
Перебивки
Если просто крутить ленту заметок, между ними теперь показываются перебивки — такие же этажи ссылок на другие хорошие заметки:
В результате читатель, зашедший в блог первый раз, видит не только последние заметки, но и разные другие важные заметки, которые вы когда-либо писали. Перебивки тоже доступны только в платной версии.
Если похожих заметок не найдено, в качестве перебивок и рекомендаций показываются самые популярные заметки.
Новые страницы тегов
Страницы тегов раньше были просто хронологическими лентами заметок по тегу. Теперь они стали умнее.
Во-первых, в платной версии используется тот же движок вёрстки рекомендаций, чтобы сформировать этаж популярных заметок по тегу. Во-вторых, и это уже касается и бесплатной версии, наверху автоматически показываются связанные теги — читателям проще переключаться между темами. Во-третьих, сами заметки теперь показываются компактно как в результатах поиска — быстрее находишь нужную.
Вот как выглядит у меня тег «переговоры», например:
Видите, в начале подтянулись популярные заметки и ссылки на «чтиво», «жизнь», «дизайн»? Это оно само. Кстати, если при поиске нашёлся тег, то рядом теперь так же показываются связанные с ним теги.
Благодаря компактным заметкам получается быстрее найти то, что надо.
Такой же компактный вид теперь используется и на странице «Самое комментируемое» (попасть только по прямому адресу: /hot/). Появилась страница «Популярное» с десятью самыми читаемыми за последний месяц заметками, тоже в компактном виде (попасть тоже только по прямому адресу: /popular/).
Черновики, скрытые и будущие и заметки
Компактному представлению заметки нашлось ещё одно полезное применение. В предпросмотре черновика теперь показывается, как заметку после публикации увидят соцсети:
Речь о серой плашке над кнопкой публикации. Там видно, какие картинки Эгея отдаст соцсетям для использования в качестве обложек и какой фрагмент текста — в качестве описания. Если вам не понравится автоматически выкушенный из начала заметки текст, вы как раз сможете пойти и отредактировать описание в заметке.
В 2.10 официально появляются скрытые заметки. В отличие от отозванной в черновики, скрытая заметка остаётся на своём месте в истории вместе со всеми комментариями, просто она видна только автору. Заметку давным-давно можно было скрыть, дописав /hide/ к концу адреса, но об этом мало кто знал. Теперь при удалении заметки теперь рядом с кнопкой «Вернуть в черновики» ещё есть кнопка «Скрыть». А прямо на странице скрытой заметки снизу есть кнопка «Сделать видимой».
Когда выбираешь дату публикации заметки по расписанию (платная фича), кнопка теперь называется не «Запланировать», а «Опубликовать в это время». Дело в том, что тут можно и прошлое время указать, чтобы опубликовать заметку задним числом. Мало ли. И ещё когда заметка уже запланирована, теперь можно изменить дату и время её будущей публикации, а ещё можно забить на план и решительно опубликовать заметку прямо сейчас.
Ещё одно изменение касается «секретных ссылок». Ещё в Эгее 2.6 появилась платная фича — секретная ссылка для просмотра черновиков. Это удобно, чтобы согласовать пост с коллегами или рекламодателями перед публикацией, не давая им пароль от админки.
Возможность запланировать автоматическую публикацию заметки появилась в Эгее 2.8. Но из-за особенностей реализации такая вот запланированная на будущее заметка уже не имела секретной ссылки, потому что уже не была черновиком. Но это довольно тупо: иногда хотелось запланировать заметку, но доверенным лицам дать на неё секретную ссылку сразу.
В Эгее 2.10 можно дать секретную ссылку и на черновик, и на скрытую, и на запланированную заметку. Заодно секретной ссылке нашлось более удачное место — в маленькой строчке с датой и тегами под заметкой (см. скриншот выше).
В отличие от читателей, автор видит свои запланированные и скрытые заметки. Но раньше они отображались в лентах целиком, просто были бледно-серыми. Теперь они тоже показываются в компактном виде.
Загрузка и разметка видео
Кроме аудио и картинок в заметки теперь можно загружать видео с расширением mp4 и mov. Оно будет воспроизводиться стандартным хтмльным видеоплеером.
В Эгее 2.9 появилась разметка фрагментов аудио (см. описание релиза), а теперь подобный синтаксис добавился и для видео, причём и для загруженного файлом, и для внешнего (Ютюб, Вимео). За это спасибо Игорю Адаменко.
Пример — в заметке с треком на Ютюбе:
В ссылочки можно тыкать, и видео перемотается.
В редакторе это выглядит так:
Снова, почитайте кусок «Разметка фрагментов аудио» из описания Эгеи 2.9. Тут так же можно давать ссылку из текста на конкретное время в видосе, но без подсветки фрагментов.
Важно: вместо .e2-audio-seek теперь используется класс .e2-media-seek. Старый вариант работать перестанет даже с аудио, так что надо будет исправить в старых заметках. Их можно найти поиском.
Фиеста
Появилась новая розовенько-сиреневенькая тема оформления «Фиеста»:
Соцпакет
В продолжение темы видео — Эгея умеет обновлять обложки внешних видосов. Подробно объяснял, когда писал про альфу. Если коротко, то теперь Эгея перепроверяет обложку при изменении заметки — мало ли. Так что если обложка не подгрузилась, можно пересохранить заметку, и Эгея попробует ещё раз. А подгрузилась ли обложка теперь хорошо видно благодаря превьюшке на странице черновика, которую я уже показывал выше.
С обложками понятно, но соцсетям нужны ещё и описания заметок. Эгея всю жизнь формирует их самостоятельно: берёт немного текста из начала заметки; старается обрезать его не на полуслове, а осмысленно, ориентируясь на знаки препинания. Но иногда хочется написать своё описание-затравку, чтобы заметка выигрышнее смотрелась в соцсети. Интерфейса для этого в Эгее раньше не было.
Описания страниц используют ещё и поисковики — показывают их под ссылками в поисковой выдаче, так что хотелось, конечно, иметь возможность на них влиять. Начиная с 2.10 описания заметок стали ещё важнее, ведь теперь они нужны не только в соцсетях и поисковиках, но и внутри самой Эгеи: в этаже рекомендаций и в компактном виде заметок.
В общем, пришло время дать управлять этим описанием. У заметки появилось дополнительное поле:
Изначально оно спрятано так же, как поля даты и урла — Эгея по-прежнему формирует описание сама. Просто теперь вы сможете его поменять, если захотите. Ещё раз напомню, что в предпросмотре черновика заметки теперь отображается, как её увидят соцсети, и там видны обложки и описание. Посмотрев туда, можно решить, хотите ли вы что-то поменять. Я у себя редактирую описание раз в несколько заметок.
Аналогичные поля описания появились и для страницы тега (в её редакторе), и для блога в целом (в Настройке). И у тега, и у блога в целом и раньше было поле «Описание»: оно отображалось под заголовками соответствующих страниц, и из его начала автоматически формировалось описание для соцсетей так же, как из текста заметки. Но и я, и многие другие авторы использовали это поле «Описание» для навигации по блогу. Поэтому у тега теперь отдельные поля: «Вступительный текст» и «Описание для поисковых систем, соцсетей и агрегаторов». А у блога — «Подзаголовок» и «Описание для поисковых систем...». Вступительный текст и подзаголовок размещаются под заголовком, а описание отдаётся наружу. Разумеется, его можно не заполнять, и тогда Эгея сформирует его автоматически по-старинке.
Другие социальные новшества:
- появился вход в комментарии через Телеграм (спасибо, Константин Якушев);
- в окне «Подписаться на блог» (платная фича) добавились Ютюб и Тикток и обновились иконки остальных соцсетей.
Эффективный постоянный бекап
Появился автоматический бекап перед любым обновлением и постоянный инкрементальный бекап.
Раньше при бекапе делался полный дамп базы движка, что на больших блогах могло занимать несколько секунд. Бекап делался автоматически в фоновом режиме при создании и редактировании заметок. Это гарантировало актуальность бекапа заметок, но было весьма неоптимально, особенно когда редактируешь-редактируешь заметку до блеска, а Эгея всё бекапит и бекапит весь блог. И даже при этом комментарии и просмотры попадали в бекап только при редактировании заметок, а значит могли подолгу оставаться вне бекапа.
Теперь Эгея делает полный бекап перед обновлением движка (на всякий случай) и раз в неделю (тоже на всякий случай), а в остальное время она делает инкрементальный бекап: запросы к базе дублируются в текстовый файл backup-tail.sql, поэтому если база сломается в любой момент, можно будет восстановиться из последнего полного бекапа, а потом ещё и выполнить этот backup-tail.sql, чтобы база была приведена к самому последнему виду.
Бекапная нагрузка стала меньше, а сам бекап теперь всегда актуален — классно! Если в Настройке нажать «Скачать последний бекап», скачается зип-архив их двух sql-файлов: последнего полного бекапа и файла backup-tail.sql. Их можно импортировать в базу по очереди, и в базе получится точная копия того, что было забекаплено.
Остальное
Пользовательское:
- картинки в редактор вставляются прямо из буфера обмена (спасибо, Игорь Адаменко);
- кнопка Энтер в однострочных полях редактора тега ведёт в следующее поле, прямо как в заметке;
- тема «Акут» стала дефолтной (но «Простая» по-прежнему есть);
- мелкие улучшения в тёмных темах;
- тёмный режим ОС теперь учитывается по умолчанию, в том числе в инсталяторе, но галку по прежнему можно снять в Настройке;
- пользователи платной версии теперь видят срок действия своей лицензии в Настройке, там же есть ссылка на оплату;
- ссылки на админские странички переехали из подвала Настройки в выпадающее меню справа от заголовка;
- страницы «Заметки без тегов» (/untagged/) и «Самые комментируемые» (/hot/) обзавелись листалкой (раньше показывали всё одной простынёй);
- страница «Заметки без тегов» (/untagged/) теперь доступна всем (раньше была видна только автору блога);
- кружок-ссылка с числом новых комментариев теперь сразу прокручивает заметку к новым комментариям;
- страница заметок по нескольким тегам выглядит получше;
- на странице 404 теперь показываются ссылки на несколько популярных заметок в виде красивой раскладки в духе рекомендаций и перебивок (в платной версии);
- поисковый индекс Розы теперь автоматически создаётся, если его нет (например, после импорта из бекапа);
- добавился французский язык интерфейса (спасибо, Валерий Орлов);
- чуток успокоились цвета кнопок.
Исправленные баги:
- поправлено несколько уязвимостей разной степени тяжести (спасибо, Алексей Соловьёв);
- не получалось установить Эгею в базу данных, название которой содержало точку;
- при удалении тега его урл мог остаться занятым навсегда, теперь гарантированно освобождаётся (при обновлении до 2.10 все зря занятые урлы освободятся автоматически);
- при хитром стечении обстоятельств при удалении заметки мог сломаться урл тега, если он был настроен вручную;
- в редких случаях обложка могла не загрузиться с Ютюба или Вимео, даже если они её отдавали;
- если в названии тега использовался амперсанд, то в заголовке страницы тега он отображался как &, и подобная же фигня могла просочиться в РСС и Джейсон-фид (упс);
- календарь не понимал, а теперь начал понимать введённые вручную даты без ведущего нуля (спасибо, Тимур Арефьев);
- таблицы на мобиле слишком рьяно старались уместиться в ширину, ломая слова;
- при загрузке картинок наконец-то больше не помигивает крутилка;
- в Розе исправился баг с индексированием заметок, содержащих невероятно длинные слова (спасибо, Роман Парпалак).
Подкапотное:
- минимальная версия ПХП поднята до 5.6;
- встроенные Лайкли обновились до новой версии 2.6;
- управление кешами, бекапами, поисковыми индексами, логами, миграцией и лицензией переехало с волшебных @урлов на спецстраницу .../settings/underhood/;
- полноценно поддерживаются несколько Эгей в разных папках на одном домене (раньше у них куки конфликтовали, было трудно);
- сильно много разных оптимизаций: меньше запросов к базе, больше индексов и кешей;
- ядро стало легче за счёт более умной сборки;
- все таблицы в базе теперь — InnoDB;
- при любом обновлении Эгеи теперь проверяются и при необходимости пересоздаются все нужные индексы в базе данных;
- шаблоны в темах оформления теперь поддерживают вложенность, поэтому вместо notes.tmpl.php теперь есть note.tmpl.php, то же с комментариями; тот же механизм использует этаж рекомендаций;
- форматтер Каллиопе больше не входит в стандартный дистрибутив (но можно установить, если вам нужен; поддержка будет полностью удалена в 2.11);
- при сохранении айпишников комментаторов поддерживается IPv6;
- транслитерация при генерации урлов поддерживает дореволюционные буквы;
Как обновиться
Замените файл .htaccess в корне, папку /system/ и все подпапки в /themes/ (то есть уберите старые, положите новые, а не дозалейте в старые новые файлы). Если вы делали свою тему оформления, посмотрите, что изменилось в комплектной, и аккуратно повторите эти изменения у себя.
Свежий дистрибутив — на сайте движка.
Если вы пользуетесь платной версией и хотите платную 2.10, напишите мне.
О предыдущей версии: 2.9