Библиотеки Remark и Rehype обеспечивают мощный инструментальный набор для обработки Markdown и HTML, что делает их ключевыми компонентами при SEO-оптимизации документации. Основная цель заключается в корректной трансформации контента, добавлении семантики и возможности интеграции метаданных для улучшения индексации поисковыми системами.
Для работы с Remark и Rehype требуется установка нескольких пакетов:
npm install remark remark-html rehype rehype-stringify unified
Здесь:
remark — ядро для парсинга Markdown.remark-html — плагин для конвертации в HTML.rehype — система для обработки HTML AST (Abstract
Syntax Tree).rehype-stringify — финальный этап превращения AST в
строку HTML.Парсинг Markdown Remark преобразует Markdown в дерево синтаксиса (MDAST). В этом дереве каждая структура документа (заголовки, параграфы, списки) представлена отдельными узлами.
Преобразование в HTML Плагин
remark-html превращает MDAST в HTML. Этот этап является
критическим для SEO, так как позволяет управлять семантикой тегов:
<h1>…<h6> определяют иерархию
контента.<p> сохраняют читабельность.<ul>, <ol> формируют
структурированное содержание.Обработка Rehype Rehype работает с HTML AST, что позволяет внедрять дополнительные улучшения:
alt для изображений.rel="nofollow" для внешних
источников.Пример минимального конвейера:
import { unified } from 'unified';
import remarkParse from 'remark-parse';
import remarkHtml from 'remark-html';
import rehypeRaw from 'rehype-raw';
import rehypeStringify from 'rehype-stringify';
const processor = unified()
.use(remarkParse)
.use(remarkHtml)
.use(rehypeRaw) // позволяет Rehype обрабатывать вставленный HTML
.use(rehypeStringify);
const markdown = `# Заголовок уровня 1
Параграф с описанием функции.`;
processor.process(markdown).then(file => {
console.log(String(file));
});
SEO напрямую зависит от правильной структуры заголовков. Для этого можно использовать плагин remark-slug, который автоматически генерирует идентификаторы для заголовков:
import remarkSlug from 'remark-slug';
unified()
.use(remarkParse)
.use(remarkSlug)
.use(remarkHtml);
Преимущество: каждый заголовок получает id, что
позволяет создавать якорные ссылки и улучшает индексирование.
Документация часто требует установки мета-тегов
<title> и <meta> для описания
страницы и ключевых слов. Rehype предоставляет возможность интеграции
этих тегов через AST:
import rehypeDocument from 'rehype-document';
unified()
.use(remarkParse)
.use(remarkHtml)
.use(rehypeDocument, {
title: 'Документация по Remark/Rehype',
meta: [
{ name: 'description', content: 'Подробное руководство по Remark и Rehype' },
{ name: 'keywords', content: 'javascript, markdown, seo, rehype, remark' }
]
})
.use(rehypeStringify);
Для улучшения навигации и SEO можно автоматически создавать оглавление документации. Remark позволяет собрать все заголовки и сгенерировать дерево ссылок:
import remarkToc from 'remark-toc';
unified()
.use(remarkParse)
.use(remarkSlug)
.use(remarkToc, { heading: 'Содержание' })
.use(remarkHtml);
Schema.org микроразметка повышает видимость документации в поисковой выдаче. Rehype позволяет вставлять микроразметку прямо в HTML AST:
import rehypeAddAttributes from 'rehype-add-attributes';
unified()
.use(remarkParse)
.use(remarkHtml)
.use(rehypeAddAttributes, { 'article': { itemscope: true, itemtype: 'https://schema.org/TechArticle' } })
.use(rehypeStringify);
Для больших документаций важна оптимизация:
remark-frontmatter: позволяет
хранить метаданные в начале документа, что ускоряет генерацию
SEO-тегов.Remark и Rehype легко интегрируются с React, Vue, Next.js или Astro. Компоненты могут рендерить Markdown с сохранением всех SEO-атрибутов, обеспечивая:
rehype-sanitize;Remark парсит и структурирует Markdown в AST.
Rehype позволяет обогащать HTML семантикой и микроразметкой.
Плагины Remark/Rehype обеспечивают:
remark-slug),remark-toc),rehype-document,
rehype-add-attributes),rehype-sanitize).Возможность интеграции с современными фреймворками делает систему гибкой для любых проектов документации.
Эта комбинация инструментов создаёт основу для SEO-оптимизированной документации, обеспечивая семантически корректный HTML и улучшенную индексацию поисковыми системами.