Привет, Пайплайн!
Каждый блог начинается с чего-то, и каждому контент-пайплайну нужен первый подопытный. Эта статья существует для проверки того, что обработка 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 -- нам предстоит отладка.
Эта статья нацелена примерно на триста слов, чтобы калькулятору времени чтения было с чем работать. Статья из одного абзаца покажет ноль минут, что технически верно, но философски неудовлетворительно.