В Albireo CMS версии 2026.09.19 я добавил возможность загружать md-файл, который содержит сразу все данные. То есть теперь можно хранить все файлы изображений в одном-единственном md-файле (например в Обсидиане).

Хранение файлов изображений
Многие сталкивались с проблемой: если при оформлении статьи нужны изображения, то возникает проблема как и где их хранить. Если взять, скажем Word или Libre Office, то все изображения хранятся прямо внутри файла вместе с текстом. Но если взять md-файл или любой другой текстовый формат, то файлы изображений приходится хранить отдельно, а в тексте просто указывать ссылку.
Если взять за основу Obsidian, то по умолчанию все изображения хранятся в отдельном каталоге attachement, соответственно в тексте будет вставка такого вида:

Поэтому, когда мы хотим поделиться md-файлом, то нужно не забыть передать и папку attachement.
Albireo CMS и md-файлы
В моей системе уже давно можно загрузить md-файл, который будет обработан и превращён в полноценный php-файл.
Но вот что касается изображений, то их приходилось загружать отдельно и потом линковать в тексте. Это не очень удобно.
Data-атрибуты
Если мы хотим хранить всё в едином md-файле, то нужно решить как именно это сделать. К сожалению нет никакого стандарта на этот счёт. Самый оптимальный вариант был бы как в fb2, где все загружаемые файлы сохранялись бы в конце текстового файла. Сам файл следует кодировать через base64, чтобы безопасно работать с его бинарными данными.
Если бы Obsidian хоть в какой-то форме поддерживал такую возможность, я бы использовал её, но нет, программа воспринимает md-файл ровно как текст без каких-то вложений.
Тогда я понял, что лучшим вариантом будет это использование стандартного подхода для HTML — использование data:image. В тексте это будет выглядеть так:

Albireo CMS, поддерживает этот формат и, как оказалось, Obsidain также корректно с ним работает. Поэтому остался организационный вопрос как удобно включать данные изображений в исходный md-файл.
Первый способ: плагин Image Baker
Плагин для Obsisdan'а Image Baker позволяет преобразовывать файлы изображений в виде data-вставки. Поскольку код получается большой, то плагин его сворачивает в компактный вид, что делает текст вполне читабельным.
Также плагин позволяет автоматически конвертировать изображения в Webp-формат, что часто позволяет уменьшить его объём. При необходимости можно сконвертировать старые img-вставки в data-атрибут.
Минус только в том, что Obsidian не очень хорошо приспособлен для работы с большими текстами. Если добавить несколько изображений, то md-файл может быть 100-200 КБ. Обсидиан при этом начинает заметно притормаживать (особенно если включено много других плагинов).
Второй способ: плагин Export as Base64 MD
Другой способ — это работа с файлами как обычно, а когда нужно перенести файл с вложенными файлами, делается отдельный экспорт.
Плагин Export as Base64 MD создаёт новый md-файл со всеми data-атрибутами. Для этого нужно нажать Ctrl+P (командная панель) и выбрать «Export as Base64 MD: Export active note». Откроется файловая панель, где нужно указать имя итогового md-файла.
Этот md-файл уже легко экспортируется в Albireo CMS.
Экспорт в Albireo CMS
Когда происходит экспорт такого md-файла в Albireo CMS, система автоматически найдёт все вхождения data-атрибутов и вычленит их для последующего сохранения. Вместо data-атрибутов появится стандартная ссылка на файл. Например так:

Поскольку имя файла не передаётся в data-атрибутах, то система использует довольно простой алгоритм.
Вначале смотрится поле images-dir, например так:
images-dir: [UPLOADS_URL]2026
Дальше происходит привязка к имени md-файла. Здесь два варианта: если есть поле page-on-website, то используется именно оно, а если нет, то привязка к загружаемому файлу.
Например если нет поля page-on-website, а загружаемый файл welcome.md, то Albireo CMS будет использовать welcome как базовое имя:
   
То есть первый файл в тексте будет сохранен в каталоге images-dir с именем равным имени md-файла. Все последующие файлы изображений будут сохранены с тем же именем, но с добавлением хэша.
Такая схема позволяет загружать и перезаписывать md-файл сколько угодно раз и гарантировать что имена файлов будут совпадать.
Если же есть поле page-on-website, то будет использовано оно (последняя часть). Например файл my-page42.md:
# исходный файл не совпадает с тем, что будет на сервере page-on-website: 2026/hello images-dir: [UPLOADS_URL]2026 image-large: attachement/%%SLUG%%.webp
На сервере этот md-файл сохранится как 2026/hello.php. Изображения будут такими:
   
Поле image-large автоматически заменится на:
image-large: [UPLOADS_URL]2026/hello.webp
То есть здесь произойдёт полная замена имен файлов согласно имени поля page-on-website.
Безопасность
Отдельно отмечу, что Albireo CMS автоматически проверяет data-содержимое. Сохраняться будут только реальные webp, jpg или gif данные. Также система автоматом проверит вставки php-кода. Если данные некорректные, то система оставит их как есть.
Итого
Использование новой возможности Albireo CMS позволит публиковать записи на сайте через один-единственный файл экспорта. Это очень удобно, поскольку закрывается вопрос организации дополнительных файлов изображений. Если вы привыкли к Obsidian'у, как к основному текстовому редактору, то теперь публиковать записи блога будет намного проще.