// TODO: write actual code

Привет, Пайплайн!

2026-01-15 | Oleksandr Kucherenko | 2 min read

Каждый блог начинается с чего-то, и каждому контент-пайплайну нужен первый подопытный. Эта статья существует для проверки того, что обработка markdown работает от начала до конца: от парсинга фронтматтера через подсветку синтаксиса до финального HTML.

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

Блоки Кода

Начнём с функции на TypeScript, которая обрабатывает статью:

interface Article {
  title: string;
  date: string;
  tags: string[];
}

function processArticle(raw: string): Article {
  const frontmatter = parseFrontmatter(raw);
  const html = renderMarkdown(raw);

  return {
    title: frontmatter.title,
    date: frontmatter.date,
    tags: frontmatter.tags ?? [],
  };
}

А вот как можно запустить пайплайн из командной строки:

# Собрать все статьи
bun run build

# Следить за изменениями при разработке
bun run dev --watch

# Проверить битые ссылки
bun run check:links

И пример конфигурации в JSON:

{
  "pipeline": {
    "contentDir": "content/articles",
    "outputDir": "dist",
    "languages": ["en", "ru"],
    "features": {
      "syntaxHighlighting": true,
      "pullQuotes": true,
      "readingTime": true
    }
  }
}

Зачем Это Нужно

Пайплайн -- невидимый хребет блога. Каждая статья проходит через него, поэтому мы тщательно тестируем его такими статьями. Если вы читаете это в отрендеренном виде -- пайплайн работает. Если видите сырой markdown -- нам предстоит отладка.

Эта статья нацелена примерно на триста слов, чтобы калькулятору времени чтения было с чем работать. Статья из одного абзаца покажет ноль минут, что технически верно, но философски неудовлетворительно.