О форматах данных
Jan. 15th, 2026 03:34 pmПервый вопрос, который возникает при проектировании системы блоггинга, — как хранить посты.
Поскольку непременным условием использования любой программы является её тесная интеграция с существующими сервисами, нужно уметь подстраиваться под формат этих сервисов. Вот прямо сейчас у меня под руками есть Livejournal/Dreamwidth и Telegram, и форматы сообщений в них радикально отличаются. Значит, должно быть какое-то универсальное представление, которое легко можно конвертировать в любой целевой формат.
Заманчиво изобрести что-то своё, но это приведёт к необходимости написания собственного редактора, что резко усложнит проект и отвратит от него значительную часть пользователей. Значит, надо использовать какие-то стандартные редакторы и стандартный формат. Полагаю, выражу всеобщее мнение, если скажу, что это Markdown.
Казалось бы, проблема решена? Да, но возникли две новых.
Во-первых, в исходном файле могут быть ошибки.
Во-вторых, в Markdown есть не все возможности, которые нужны в блоге — например, хитрая работа с изображением типа мелкое изображение плюс полноразмерное по клику.
Решение видится так:
- Отдаём редактирование внешней программе, например, моей нежно любимой Typora. Особо продвинутые пользователи могут использовать даже
vi. - Прикручиваем предпросмотр на базе браузера, а для особо продвинутых пользователей — хоть линтер с сообщениями об ошибке.
- Добавляем в формат некоторые расширения, совместимые со стандартом, но интерпретируемые особенным образом. Например, все абзацы после заголовка, где первое слово отделено двоеточием, считаем служебными полями типа
Tags: fidonet, бред, markdown. А свойства галереи указываем как текст в изображении, который стандартом Markdown никак не интерпретируется. - Когда и если проект станет совсем большим, кто-нибудь напишет для него собственный WISYWYG-редактор со всеми атрибутами красивой жызни.
Как всегда приглашаются желающие высказаться.