У этого блога нет CMS, как нет и базы данных. Каждая статья представляет собой markdown-файл в том же репозитории, где хранится код LiteTMS. Поэтому публикация статьи работает точно так же, как выпуск новой функции: коммит и деплой.
Мы хотели подойти к этому иначе, чем большинство корпоративных блогов, и в этой статье показываем весь механизм целиком, включая исходный код страницы, которую вы сейчас читаете.
Как это устроено у всех остальных
Обычный корпоративный блог работает на полноценной CMS: базе данных, панели администратора, учетных записях пользователей, плагинах и теме оформления, которая ломается от любого вмешательства. Вся эта махина существует ради того, чтобы редакция могла выпускать материалы, не приближаясь к коду.
У нас нет штата редакторов, а весь свой рабочий день мы и так проводим в репозитории с кодом. Поэтому мы отказались от лишних надстроек. Любая дополнительная система требует обновлений, резервного копирования и защиты. Папка с текстовыми файлами в этом не нуждается.
Как выглядит файл статьи
Вот сокращенная версия заголовка этой самой статьи и общая структура ее текста:
---
title: This blog is a folder of markdown files
slug: why-this-blog-has-no-cms
locale: en
description: There is no CMS behind the LiteTMS blog. Every post is...
date: 2026-07-15
category: technology
tags: markdown, blog, aieo, engineering
draft: false
---
The first paragraph answers the title on its own, because that is
the part search snippets and AI assistants quote.
## A section heading
Plain markdown body. Nothing exotic.
## FAQ
### Does this sample show the FAQ convention?
Yes. Each ### line is a literal question, answered right below it.
Блок в начале - это плоский список пар «ключ - значение». Ниже идет обычный markdown, который обрабатывается стандартной библиотекой рендеринга. На каждый язык приходится один файл: эта статья существует в виде файлов .en.md и .pl.md с одинаковым именем, причем польская версия написана вручную, а не переведена машиной.
Раздел ## FAQ в конце примера - это рабочий стандарт, а не элемент оформления. Каждый вопрос сформулирован так, как его ввел бы пользователь в поисковую строку, а сборщик преобразует эти пары в структурированные данные, которые поисковые системы отображают в виде расширенных сниппетов. Живой пример можно увидеть внизу этой страницы.
Валидатор вместо редактора
Перед любой публикацией скрипт сборки считывает каждый файл статьи и проверяет его по схеме. Описание должно содержать от 80 до 170 символов. Категория должна входить в число пяти допустимых значений. Дата обязана быть настоящей календарной датой, а слаг должен совпадать с именем файла.
Затем скрипт создает единый файл индекса с метаданными всех статей, и сайт обращается только к нему. Страница со списком статей загружается одинаково быстро как для пятисот материалов, так и для пяти.
Этот же скрипт запускается в CI при каждом пуше. Если в статье есть ошибки или кто-то забыл обновить индекс, сборка завершается сбоем, и деплой отменяется. Некорректный контент просто не может попасть в продакшн, потому что на продакшн не уходит ничего, что не одобрил валидатор.
Почему именно markdown, если честно
Формат markdown победил по самым практичным причинам. Файл markdown читается в любом текстовом редакторе, со специальными инструментами или без них. Изменения в нем отслеживаются построчно, поэтому статья рецензируется точно так же, как программный код: сразу видно, какое именно предложение изменилось. Кроме того, это самый легковесный и удобный формат для обработки ИИ-ассистентами, что с каждым месяцем становится все важнее.
Именно поэтому каждая публикация доступна сразу в трех форматах. Страница, которую вы читаете, - это версия в HTML. Если добавить .md к адресу в браузере, откроется исходный файл, байт в байт соответствующий коммиту, в виде чистого markdown. А для каждого языка предусмотрена отдельная RSS-лента для читателей и агрегаторов.
Кроме того, по адресу /blog/index.md доступен машиночитаемый каталог всех опубликованных статей, и файл llms.txt направляет поисковых роботов ИИ прямо к нему. При этом дублирования контента не возникает: исходные файлы снабжены заголовком noindex и канонической ссылкой на основную HTML-страницу.
Что это дает вам как читателю
Ничто из этого не относится к функциям самого продукта. Это наше внутреннее решение о том, как выпускать контент, и оно соответствует обещанию из первой статьи: никаких выдуманных цифр и текст, который можно проверить в первоисточнике. Сама система LiteTMS построена на тех же принципах: простые и прозрачные механизмы, которые легко контролировать. Если хотите ознакомиться с системой ближе, регистрация бесплатна.
Часто задаваемые вопросы
- Можно ли читать статьи блога LiteTMS в виде чистого markdown?
- Да. Добавьте .md к адресу любой статьи, и сайт перенаправит вас на исходный файл в формате чистого markdown. Полный каталог опубликованных материалов находится по адресу /blog/index.md.
- Почему блог LiteTMS не использует CMS?
- Потому что CMS была бы еще одной системой, требующей установки обновлений и защиты, а все авторы публикаций и так работают в репозитории продукта. Markdown-файлы с валидатором в CI решают ту же задачу с несравнимо меньшими затратами на обслуживание.
- Делает ли адаптация под ИИ-ассистентов статьи хуже для людей?
- Нет. Структура, удобная для ассистентов, то есть прямой ответ в первом абзаце, информативные подзаголовки и прямые вопросы с краткими ответами, делает текст удобным и для быстрого чтения человеком. А исходный markdown доступен отдельно, поэтому статья для чтения остается обычной понятной статьей.
Оставайтесь на связи
Больше полезных статей в вашей ленте.
Выберите LiteTMS в качестве предпочтительного источника, чтобы чаще видеть наши статьи в Google.
Выбрать LiteTMS в GoogleПодтвердите выбор в Google · Откроется в новой вкладке