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