llms.txt (SSG-MD) экспериментально
Хотите быстро начать? Перейдите к Быстрому старту.
Что такое SSG-MD?
Rspress предоставляет экспериментальную возможность Static Site Generation to Markdown (SSG-MD — генерация статического сайта в Markdown) — это совершенно новая функция. Аналогично процессу генерации статического сайта, SSG-MD рендерит ваши страницы в виде файлов Markdown вместо HTML-файлов и генерирует llms.txt и llms-full.txt. Это упрощает большим языковым моделям понимание и использование вашей технической документации.
Чтобы лучше понять SSG-MD, вот аналогия между SSG и SSG-MD:
Что такое llms.txt?
llms.txt — это новый стандартный файл, размещаемый в корне сайта, чтобы помочь большим языковым моделям лучше понимать и использовать содержимое сайта.
Поскольку у LLM ограничено контекстное окно и они не могут обработать весь HTML-код сайта, а преобразование сложного HTML (с навигацией, рекламой, JavaScript) в чистый текст является сложным и неточным процессом, llms.txt предоставляет структурированный индекс сайта в формате Markdown: URL страниц и описание их содержимого. Это позволяет ИИ быстро находить и понимать ключевую информацию.
Простыми словами:
sitemap.xml→ «карта сайта» для поисковых системllms.txt→ «оглавление документации» для ИИ
Пример структуры вывода:
Пример содержимого llms.txt:
Почему SSG-MD?
В фронтенд-фреймворках на основе динамического рендеринга React часто возникает проблема извлечения статической информации. Это также актуально для MDX, где файлы .mdx содержат как контент Markdown, так и поддерживают встраивание React-компонентов, повышая интерактивность документов. Для Rspress Rspress позволяет пользователям повышать выразительность документов через динамические возможности, такие как фрагменты MDX, React-компоненты, Hooks и TSX-маршруты. Однако эти динамические содержимые сталкиваются со следующими проблемами при конвертации в текстовый Markdown:
-
Прямой ввод MDX в ИИ включает много шумов синтаксиса кода и теряет содержимое React-компонентов
-
Конвертация HTML в Markdown часто дает плохие результаты, затрудняя гарантию качества информации
Генерация статического сайта (SSG) может генерировать статические HTML-файлы для обхода краулерами, улучшая SEO. SSG-MD также решает аналогичные проблемы, улучшая GEO и качество статической информации для больших языковых моделей. По сравнению с конвертацией HTML в Markdown, виртуальный DOM React во время рендеринга имеет лучший источник информации.
Как реализован SSG-MD?
- Внутри Rspress реализован метод
renderToMarkdownString, аналогичныйrenderToStringизreact-dom, который рендерит React-компоненты в строки Markdown:
В принципе, этот API работает для любого сайта, построенного на React; подробнее смотрите react-render-to-markdown, если интересно.
- Предоставляет переменную окружения
import.meta.env.SSG_MD, которая позволяет пользователям легко различать рендеринг в режиме SSG-MD и рендеринг в браузере внутри React-компонентов, тем самым обеспечивая более гибкую настройку содержимого:
- Внутренняя библиотека компонентов Rspress была адаптирована для SSG-MD, чтобы обеспечить рендеринг разумного Markdown-контента на этапе SSG-MD. Например:
Будет отрендерено как:
Быстрый старт
Включите опцию llms в файле rspress.config.ts:
После выполнения rspress build в выходной директории (по умолчанию doc_build) будут дополнительно содержаться следующие файлы:
Доступ к страницам осуществляется заменой суффикса .html на .md, например /guide/start/introduction.md. Для многоязычных сайтов будут созданы файлы {lang}/llms.txt и {lang}/llms-full.txt для нелокализованных языков.
llms — это экспериментальная функция, которая может иметь проблемы со стабильностью или совместимостью. Если SSG-MD нельзя включить из-за несовместимости с SSR, пожалуйста, используйте @rspress/plugin-llms.
SSG-MD требует React 19 или выше. Если вы используете React 18 или более раннюю версию, пожалуйста, используйте вместо этого @rspress/plugin-llms.
Конфигурация
Отображение в интерфейсе
При включении llms: true компоненты LlmsCopyButton и LlmsViewOptions автоматически отображаются под всеми заголовками H1, позволяя пользователям копировать Markdown-контент или открывать его в инструментах ИИ, таких как ChatGPT или Claude.
Настройте или отключите через themeConfig.llmsUI:
Подробности см. в themeConfig.llmsUI.
Настройка разбиения MDX
Когда документы содержат пользовательские компоненты, используйте remarkSplitMdxOptions для контроля того, какие компоненты сохранять или конвертировать в обычный текст при преобразовании в Markdown:
excludes: Соответствующие компоненты будут преобразованы в обычный текст, с наивысшим приоритетом.includes: Если задано, то только соответствующие компоненты будут сохранены, а остальные преобразованы в обычный текст.- При одновременной настройке сначала применяется
excludes, затем фильтрация поincludes.

