hardsign: (Default)
[personal profile] hardsign

Первый вопрос, который возникает при проектировании системы блоггинга, — как хранить посты.

Поскольку непременным условием использования любой программы является её тесная интеграция с существующими сервисами, нужно уметь подстраиваться под формат этих сервисов. Вот прямо сейчас у меня под руками есть Livejournal/Dreamwidth и Telegram, и форматы сообщений в них радикально отличаются. Значит, должно быть какое-то универсальное представление, которое легко можно конвертировать в любой целевой формат.

Заманчиво изобрести что-то своё, но это приведёт к необходимости написания собственного редактора, что резко усложнит проект и отвратит от него значительную часть пользователей. Значит, надо использовать какие-то стандартные редакторы и стандартный формат. Полагаю, выражу всеобщее мнение, если скажу, что это Markdown.

Казалось бы, проблема решена? Да, но возникли две новых.

Во-первых, в исходном файле могут быть ошибки.

Во-вторых, в Markdown есть не все возможности, которые нужны в блоге — например, хитрая работа с изображением типа мелкое изображение плюс полноразмерное по клику.

Решение видится так:

  • Отдаём редактирование внешней программе, например, моей нежно любимой Typora. Особо продвинутые пользователи могут использовать даже vi.
  • Прикручиваем предпросмотр на базе браузера, а для особо продвинутых пользователей — хоть линтер с сообщениями об ошибке.
  • Добавляем в формат некоторые расширения, совместимые со стандартом, но интерпретируемые особенным образом. Например, все абзацы после заголовка, где первое слово отделено двоеточием, считаем служебными полями типа Tags: fidonet, бред, markdown. А свойства галереи указываем как текст в изображении, который стандартом Markdown никак не интерпретируется.
  • Когда и если проект станет совсем большим, кто-нибудь напишет для него собственный WISYWYG-редактор со всеми атрибутами красивой жызни.

Как всегда приглашаются желающие высказаться.

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

hardsign: (Default)
hardsign

January 2026

S M T W T F S
     12 3
45678910
11 12 13 14 151617
18192021222324
25262728293031

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 15th, 2026 11:52 pm
Powered by Dreamwidth Studios