Публикация статьи у меня начинается не с админки сайта.
Я открываю Obsidian и создаю обычный Markdown-файл. Пишу текст, добавляю заголовок, описание, теги и внутренние ссылки. На этом авторская часть почти заканчивается.
Дальше работает небольшой автоматический конвейер.
Сначала файл должен доехать до сборки
Контент хранится как обычная папка с заметками и синхронизируется между устройствами.
Мне нравится этот подход по одной причине: исходники всегда остаются нормальными файлами. Они не спрятаны внутри базы данных и не зависят от веб-интерфейса.
Можно писать без интернета. Можно открыть материал другим редактором. Можно сделать резервную копию всей базы обычным копированием каталога.
Никакой магии.
Потом Quartz пересобирает сайт
Когда появляются изменения, Quartz читает заметки и превращает их в готовые страницы.
Во время сборки обрабатываются ссылки, метаданные, навигация, блоки кода и оформление. На выходе получается статический сайт — набор файлов, которые можно просто отдавать посетителю.
Это одна из причин, почему я не использую тяжёлую CMS. Для чтения статьи не нужен запрос к базе и выполнение серверного кода. Страница уже готова.
Автоматическая публикация хороша, пока не публикует лишнее
Вот здесь начинается менее романтичная часть.
Если папка синхронизируется и сайт собирается автоматически, случайный файл тоже может уехать наружу. Черновик. Внутренняя заметка. Фрагмент конфига. Что угодно.
Поэтому удобный пайплайн требует дисциплины.
Я стараюсь отдельно проверять frontmatter, статус заметки, ссылки, фрагменты терминала, изображения, внутренние названия и всё, что похоже на адрес, токен или идентификатор.
Особенно опасны скриншоты. Текст можно найти поиском. Маленький адрес в углу терминала легко не заметить.
Почему я не публикую мгновенно после каждого символа
Технически можно настроить почти моментальную сборку. Но в этом мало пользы.
Несколько минут задержки ничего не меняют для читателя, зато система не пересобирает сайт из-за каждой мелкой правки. Плюс остаётся время открыть страницу локально и посмотреть, не развалилось ли оформление.
У меня уже были ситуации, когда Markdown выглядел нормально в редакторе, а после сборки заголовок уезжал, таблица ломала мобильную ширину или внутренняя ссылка вела не туда.
Статический сайт простой. Но не безошибочный.
В итоге публикация ощущается как продолжение заметок
Именно это мне нравится больше всего.
Я не «иду писать статью на сайт». Я пишу в своей обычной среде, а потом решаю, что материал готов выйти наружу.
Сайт становится публичным слоем над той же системой знаний, а не отдельным местом, куда нужно переносить контент вручную.
Почему выбран Quartz, описано в Digital Garden, публичный вход — в Caddy, безопасная сторона — в Публикации без утечек.