Перейти к основному содержимому

Привет, Velociraptor

Это первый пост, отправленный в БД через workflow «файл — источник, БД — рантайм».

Пост хранится в виде трёх markdown-файлов: en.md, de.md, ru.md. Английский файл — единственный авторитетный источник. Немецкий и русский — переводы, выполненные внутри dev-цикла. Каждая отправка вычисляет content hash; для одинаковых файлов отправка превращается в no-op.

Что это проверяет

  • Скрипт scaffold создаёт frontmatter со стабильным UUID.
  • bun run content:check сообщает о пропущенных языках и устаревших переводах.
  • bun run content:push создаёт пост и одну ревизию на каждый язык.
  • Повторная отправка без правок — no-op (skip по хэшу).
  • Маршрут предпросмотра /admin/content/posts/preview/<slug>/<locale> рендерит из файла и показывает баннер с состоянием синхронизации с БД.

Почему сначала файл

Файлы лежат в git. Переводы проверяются в pull request, а не в CMS. Cony пишет тот же файл, который читает разработчик. БД — лишь быстрый индекс; ничего оригинального в ней не появляется, минуя файл.

Что-то не так? Оставьте заметку.