Files
nextjs-style-guide/.vitepress/config.ts

163 lines
8.1 KiB
TypeScript
Raw Normal View History

2026-01-29 16:00:19 +03:00
import { defineConfig } from 'vitepress';
2026-03-28 21:15:15 +03:00
const ruSidebar = [
{
text: 'Workflow',
feat: генерация llms.txt, лендинг с выбором языка и ZIP-архивов - удалён concat-md.js: вместо единого RULES.md теперь llms.txt - добавлен generate-llms.ts: собирает llms.txt из sidebar config, копирует .md-файлы для отдачи LLM и упаковывает ZIP-архивы по локалям - добавлен корневой /llms.txt как роутер на /ru/llms.txt и /en/llms.txt - добавлен манифест /manifest.json со ссылками и версией сборки - добавлен лендинг docs/index.md (layout: false) с автоопределением языка, переключателями языка и темы - английская локаль временно заблокирована: карточки как заглушки, ссылка на /en/ в роутере без href - добавлены поля llmsBlockquote и llmsContext в локали для технодокументационного описания в llms.txt - разделены VitePress-локали: root (только лендинг), ru (/ru/), en (/en/) - добавлен srcExclude: ['public/**'] чтобы VitePress не рендерил сгенерированные .md как страницы - добавлен Vite-плагин для отдачи .txt и .md с charset=utf-8 - добавлена секция в Caddyfile для текстовых файлов - BUILD_VERSION пробрасывается из Gitea CI через docker --build-arg и подставляется в лендинг через Vite define - Dockerfile: установка zip, npm run llms перед npm run build - обновлены внутренние ссылки в docs/ru/**/*.md на префикс /ru/ - обновлены AGENTS.md и CONTRIBUTING.md под новый процесс - README/README_RU генерируются из docs/{lang}/index.md, остаются в репо
2026-04-25 18:06:27 +03:00
link: '/ru/workflow',
2026-03-28 21:15:15 +03:00
},
{
text: 'Базовые правила',
items: [
feat: генерация llms.txt, лендинг с выбором языка и ZIP-архивов - удалён concat-md.js: вместо единого RULES.md теперь llms.txt - добавлен generate-llms.ts: собирает llms.txt из sidebar config, копирует .md-файлы для отдачи LLM и упаковывает ZIP-архивы по локалям - добавлен корневой /llms.txt как роутер на /ru/llms.txt и /en/llms.txt - добавлен манифест /manifest.json со ссылками и версией сборки - добавлен лендинг docs/index.md (layout: false) с автоопределением языка, переключателями языка и темы - английская локаль временно заблокирована: карточки как заглушки, ссылка на /en/ в роутере без href - добавлены поля llmsBlockquote и llmsContext в локали для технодокументационного описания в llms.txt - разделены VitePress-локали: root (только лендинг), ru (/ru/), en (/en/) - добавлен srcExclude: ['public/**'] чтобы VitePress не рендерил сгенерированные .md как страницы - добавлен Vite-плагин для отдачи .txt и .md с charset=utf-8 - добавлена секция в Caddyfile для текстовых файлов - BUILD_VERSION пробрасывается из Gitea CI через docker --build-arg и подставляется в лендинг через Vite define - Dockerfile: установка zip, npm run llms перед npm run build - обновлены внутренние ссылки в docs/ru/**/*.md на префикс /ru/ - обновлены AGENTS.md и CONTRIBUTING.md под новый процесс - README/README_RU генерируются из docs/{lang}/index.md, остаются в репо
2026-04-25 18:06:27 +03:00
{ text: 'Технологии и библиотеки', link: '/ru/basics/tech-stack' },
{ text: 'Именование', link: '/ru/basics/naming' },
{
text: 'Архитектура',
collapsed: true,
items: [
feat: генерация llms.txt, лендинг с выбором языка и ZIP-архивов - удалён concat-md.js: вместо единого RULES.md теперь llms.txt - добавлен generate-llms.ts: собирает llms.txt из sidebar config, копирует .md-файлы для отдачи LLM и упаковывает ZIP-архивы по локалям - добавлен корневой /llms.txt как роутер на /ru/llms.txt и /en/llms.txt - добавлен манифест /manifest.json со ссылками и версией сборки - добавлен лендинг docs/index.md (layout: false) с автоопределением языка, переключателями языка и темы - английская локаль временно заблокирована: карточки как заглушки, ссылка на /en/ в роутере без href - добавлены поля llmsBlockquote и llmsContext в локали для технодокументационного описания в llms.txt - разделены VitePress-локали: root (только лендинг), ru (/ru/), en (/en/) - добавлен srcExclude: ['public/**'] чтобы VitePress не рендерил сгенерированные .md как страницы - добавлен Vite-плагин для отдачи .txt и .md с charset=utf-8 - добавлена секция в Caddyfile для текстовых файлов - BUILD_VERSION пробрасывается из Gitea CI через docker --build-arg и подставляется в лендинг через Vite define - Dockerfile: установка zip, npm run llms перед npm run build - обновлены внутренние ссылки в docs/ru/**/*.md на префикс /ru/ - обновлены AGENTS.md и CONTRIBUTING.md под новый процесс - README/README_RU генерируются из docs/{lang}/index.md, остаются в репо
2026-04-25 18:06:27 +03:00
{ text: 'Обзор', link: '/ru/basics/architecture/' },
{ text: 'Слои', link: '/ru/basics/architecture/reference/layers' },
{ text: 'Модули', link: '/ru/basics/architecture/reference/modules' },
{ text: 'Сегменты', link: '/ru/basics/architecture/reference/segments' },
],
},
feat: генерация llms.txt, лендинг с выбором языка и ZIP-архивов - удалён concat-md.js: вместо единого RULES.md теперь llms.txt - добавлен generate-llms.ts: собирает llms.txt из sidebar config, копирует .md-файлы для отдачи LLM и упаковывает ZIP-архивы по локалям - добавлен корневой /llms.txt как роутер на /ru/llms.txt и /en/llms.txt - добавлен манифест /manifest.json со ссылками и версией сборки - добавлен лендинг docs/index.md (layout: false) с автоопределением языка, переключателями языка и темы - английская локаль временно заблокирована: карточки как заглушки, ссылка на /en/ в роутере без href - добавлены поля llmsBlockquote и llmsContext в локали для технодокументационного описания в llms.txt - разделены VitePress-локали: root (только лендинг), ru (/ru/), en (/en/) - добавлен srcExclude: ['public/**'] чтобы VitePress не рендерил сгенерированные .md как страницы - добавлен Vite-плагин для отдачи .txt и .md с charset=utf-8 - добавлена секция в Caddyfile для текстовых файлов - BUILD_VERSION пробрасывается из Gitea CI через docker --build-arg и подставляется в лендинг через Vite define - Dockerfile: установка zip, npm run llms перед npm run build - обновлены внутренние ссылки в docs/ru/**/*.md на префикс /ru/ - обновлены AGENTS.md и CONTRIBUTING.md под новый процесс - README/README_RU генерируются из docs/{lang}/index.md, остаются в репо
2026-04-25 18:06:27 +03:00
{ text: 'Стиль кода', link: '/ru/basics/code-style' },
{ text: 'Документирование', link: '/ru/basics/documentation' },
{ text: 'Типизация', link: '/ru/basics/typing' },
2026-03-28 21:15:15 +03:00
],
},
{
text: 'Прикладные разделы',
items: [
feat: генерация llms.txt, лендинг с выбором языка и ZIP-архивов - удалён concat-md.js: вместо единого RULES.md теперь llms.txt - добавлен generate-llms.ts: собирает llms.txt из sidebar config, копирует .md-файлы для отдачи LLM и упаковывает ZIP-архивы по локалям - добавлен корневой /llms.txt как роутер на /ru/llms.txt и /en/llms.txt - добавлен манифест /manifest.json со ссылками и версией сборки - добавлен лендинг docs/index.md (layout: false) с автоопределением языка, переключателями языка и темы - английская локаль временно заблокирована: карточки как заглушки, ссылка на /en/ в роутере без href - добавлены поля llmsBlockquote и llmsContext в локали для технодокументационного описания в llms.txt - разделены VitePress-локали: root (только лендинг), ru (/ru/), en (/en/) - добавлен srcExclude: ['public/**'] чтобы VitePress не рендерил сгенерированные .md как страницы - добавлен Vite-плагин для отдачи .txt и .md с charset=utf-8 - добавлена секция в Caddyfile для текстовых файлов - BUILD_VERSION пробрасывается из Gitea CI через docker --build-arg и подставляется в лендинг через Vite define - Dockerfile: установка zip, npm run llms перед npm run build - обновлены внутренние ссылки в docs/ru/**/*.md на префикс /ru/ - обновлены AGENTS.md и CONTRIBUTING.md под новый процесс - README/README_RU генерируются из docs/{lang}/index.md, остаются в репо
2026-04-25 18:06:27 +03:00
{ text: 'Структура проекта', link: '/ru/applied/project-structure' },
{ text: 'Компоненты', link: '/ru/applied/components' },
{ text: 'Страницы (App Router)', link: '/ru/applied/page-level' },
{ text: 'Шаблоны и генерация кода', link: '/ru/applied/templates-generation' },
{ text: 'Стили', link: '/ru/applied/styles' },
{ text: 'Изображения', link: '/ru/applied/images-sprites' },
{ text: 'SVG-спрайты', link: '/ru/applied/svg-sprites' },
{ text: 'Видео', link: '/ru/applied/video' },
{ text: 'API', link: '/ru/applied/api' },
{ text: 'Stores', link: '/ru/applied/stores' },
{ text: 'Хуки', link: '/ru/applied/hooks' },
{ text: 'Шрифты', link: '/ru/applied/fonts' },
{ text: 'Локализация', link: '/ru/applied/localization' },
{ text: 'Настройка VS Code', link: '/ru/applied/vscode' },
2026-03-28 21:15:15 +03:00
],
},
];
2026-03-23 21:48:54 +03:00
2026-03-28 21:15:15 +03:00
const enSidebar = [
{
text: 'Processes',
items: [
{ text: 'Getting Started', link: '/en/workflow/getting-started' },
{ text: 'Creating an App', link: '/en/workflow/creating-app' },
{ text: 'Creating Pages', link: '/en/workflow/creating-pages' },
{ text: 'Creating Components', link: '/en/workflow/creating-components' },
{ text: 'Styling', link: '/en/workflow/styling' },
{ text: 'Data Fetching', link: '/en/workflow/data-fetching' },
{ text: 'State Management', link: '/en/workflow/state-management' },
{ text: 'Localization', link: '/en/workflow/localization' },
],
},
{
text: 'Basic Rules',
items: [
{ text: 'Tech Stack', link: '/en/basics/tech-stack' },
{ text: 'Architecture', link: '/en/basics/architecture' },
{ text: 'Code Style', link: '/en/basics/code-style' },
{ text: 'Naming', link: '/en/basics/naming' },
{ text: 'Documentation', link: '/en/basics/documentation' },
{ text: 'Typing', link: '/en/basics/typing' },
2026-03-23 21:48:54 +03:00
],
2026-03-28 21:15:15 +03:00
},
{
text: 'Applied Sections',
items: [
{ text: 'VS Code Setup', link: '/en/applied/vscode' },
2026-03-28 21:15:15 +03:00
{ text: 'Project Structure', link: '/en/applied/project-structure' },
{ text: 'Components', link: '/en/applied/components' },
{ text: 'Page-level Components', link: '/en/applied/page-level' },
2026-03-28 21:15:15 +03:00
{ text: 'Templates & Code Generation', link: '/en/applied/templates-generation' },
{ text: 'Styles', link: '/en/applied/styles' },
{ text: 'Images', link: '/en/applied/images-sprites' },
{ text: 'SVG Sprites', link: '/en/applied/svg-sprites' },
{ text: 'Video', link: '/en/applied/video' },
{ text: 'API', link: '/en/applied/api' },
{ text: 'Stores', link: '/en/applied/stores' },
{ text: 'Hooks', link: '/en/applied/hooks' },
{ text: 'Fonts', link: '/en/applied/fonts' },
{ text: 'Localization', link: '/en/applied/localization' },
],
},
];
feat: генерация llms.txt, лендинг с выбором языка и ZIP-архивов - удалён concat-md.js: вместо единого RULES.md теперь llms.txt - добавлен generate-llms.ts: собирает llms.txt из sidebar config, копирует .md-файлы для отдачи LLM и упаковывает ZIP-архивы по локалям - добавлен корневой /llms.txt как роутер на /ru/llms.txt и /en/llms.txt - добавлен манифест /manifest.json со ссылками и версией сборки - добавлен лендинг docs/index.md (layout: false) с автоопределением языка, переключателями языка и темы - английская локаль временно заблокирована: карточки как заглушки, ссылка на /en/ в роутере без href - добавлены поля llmsBlockquote и llmsContext в локали для технодокументационного описания в llms.txt - разделены VitePress-локали: root (только лендинг), ru (/ru/), en (/en/) - добавлен srcExclude: ['public/**'] чтобы VitePress не рендерил сгенерированные .md как страницы - добавлен Vite-плагин для отдачи .txt и .md с charset=utf-8 - добавлена секция в Caddyfile для текстовых файлов - BUILD_VERSION пробрасывается из Gitea CI через docker --build-arg и подставляется в лендинг через Vite define - Dockerfile: установка zip, npm run llms перед npm run build - обновлены внутренние ссылки в docs/ru/**/*.md на префикс /ru/ - обновлены AGENTS.md и CONTRIBUTING.md под новый процесс - README/README_RU генерируются из docs/{lang}/index.md, остаются в репо
2026-04-25 18:06:27 +03:00
/**
* Vite-плагин: отдаёт `.txt` и `.md` с явной кодировкой UTF-8.
* Без этого браузер декодирует как ISO-8859-1 и кириллица ломается.
*/
const utf8TextPlugin = {
name: 'utf8-text-files',
configureServer(server: any) {
server.middlewares.use((req: any, res: any, next: any) => {
const url: string = req.url || '';
if (url.endsWith('.txt') || url.endsWith('.md')) {
res.setHeader('Content-Type', 'text/plain; charset=utf-8');
}
next();
});
},
};
2026-03-28 21:15:15 +03:00
export default defineConfig({
srcDir: 'docs',
feat: генерация llms.txt, лендинг с выбором языка и ZIP-архивов - удалён concat-md.js: вместо единого RULES.md теперь llms.txt - добавлен generate-llms.ts: собирает llms.txt из sidebar config, копирует .md-файлы для отдачи LLM и упаковывает ZIP-архивы по локалям - добавлен корневой /llms.txt как роутер на /ru/llms.txt и /en/llms.txt - добавлен манифест /manifest.json со ссылками и версией сборки - добавлен лендинг docs/index.md (layout: false) с автоопределением языка, переключателями языка и темы - английская локаль временно заблокирована: карточки как заглушки, ссылка на /en/ в роутере без href - добавлены поля llmsBlockquote и llmsContext в локали для технодокументационного описания в llms.txt - разделены VitePress-локали: root (только лендинг), ru (/ru/), en (/en/) - добавлен srcExclude: ['public/**'] чтобы VitePress не рендерил сгенерированные .md как страницы - добавлен Vite-плагин для отдачи .txt и .md с charset=utf-8 - добавлена секция в Caddyfile для текстовых файлов - BUILD_VERSION пробрасывается из Gitea CI через docker --build-arg и подставляется в лендинг через Vite define - Dockerfile: установка zip, npm run llms перед npm run build - обновлены внутренние ссылки в docs/ru/**/*.md на префикс /ru/ - обновлены AGENTS.md и CONTRIBUTING.md под новый процесс - README/README_RU генерируются из docs/{lang}/index.md, остаются в репо
2026-04-25 18:06:27 +03:00
// `docs/public/` содержит сгенерированные `.md`-копии и `llms.txt` для LLM
// (попадают в корень `dist/` как статика). Исключаем из сканирования
// страниц, иначе VitePress рендерит их как HTML-страницы.
srcExclude: ['public/**'],
2026-03-28 21:15:15 +03:00
title: 'NextJS Style Guide',
description: 'Правила и стандарты разработки на NextJS и TypeScript',
feat: генерация llms.txt, лендинг с выбором языка и ZIP-архивов - удалён concat-md.js: вместо единого RULES.md теперь llms.txt - добавлен generate-llms.ts: собирает llms.txt из sidebar config, копирует .md-файлы для отдачи LLM и упаковывает ZIP-архивы по локалям - добавлен корневой /llms.txt как роутер на /ru/llms.txt и /en/llms.txt - добавлен манифест /manifest.json со ссылками и версией сборки - добавлен лендинг docs/index.md (layout: false) с автоопределением языка, переключателями языка и темы - английская локаль временно заблокирована: карточки как заглушки, ссылка на /en/ в роутере без href - добавлены поля llmsBlockquote и llmsContext в локали для технодокументационного описания в llms.txt - разделены VitePress-локали: root (только лендинг), ru (/ru/), en (/en/) - добавлен srcExclude: ['public/**'] чтобы VitePress не рендерил сгенерированные .md как страницы - добавлен Vite-плагин для отдачи .txt и .md с charset=utf-8 - добавлена секция в Caddyfile для текстовых файлов - BUILD_VERSION пробрасывается из Gitea CI через docker --build-arg и подставляется в лендинг через Vite define - Dockerfile: установка zip, npm run llms перед npm run build - обновлены внутренние ссылки в docs/ru/**/*.md на префикс /ru/ - обновлены AGENTS.md и CONTRIBUTING.md под новый процесс - README/README_RU генерируются из docs/{lang}/index.md, остаются в репо
2026-04-25 18:06:27 +03:00
vite: {
plugins: [utf8TextPlugin],
define: {
__BUILD_VERSION__: JSON.stringify(process.env.BUILD_VERSION || 'dev'),
},
2026-03-28 21:15:15 +03:00
},
locales: {
root: {
feat: генерация llms.txt, лендинг с выбором языка и ZIP-архивов - удалён concat-md.js: вместо единого RULES.md теперь llms.txt - добавлен generate-llms.ts: собирает llms.txt из sidebar config, копирует .md-файлы для отдачи LLM и упаковывает ZIP-архивы по локалям - добавлен корневой /llms.txt как роутер на /ru/llms.txt и /en/llms.txt - добавлен манифест /manifest.json со ссылками и версией сборки - добавлен лендинг docs/index.md (layout: false) с автоопределением языка, переключателями языка и темы - английская локаль временно заблокирована: карточки как заглушки, ссылка на /en/ в роутере без href - добавлены поля llmsBlockquote и llmsContext в локали для технодокументационного описания в llms.txt - разделены VitePress-локали: root (только лендинг), ru (/ru/), en (/en/) - добавлен srcExclude: ['public/**'] чтобы VitePress не рендерил сгенерированные .md как страницы - добавлен Vite-плагин для отдачи .txt и .md с charset=utf-8 - добавлена секция в Caddyfile для текстовых файлов - BUILD_VERSION пробрасывается из Gitea CI через docker --build-arg и подставляется в лендинг через Vite define - Dockerfile: установка zip, npm run llms перед npm run build - обновлены внутренние ссылки в docs/ru/**/*.md на префикс /ru/ - обновлены AGENTS.md и CONTRIBUTING.md под новый процесс - README/README_RU генерируются из docs/{lang}/index.md, остаются в репо
2026-04-25 18:06:27 +03:00
label: 'Languages',
lang: 'en',
},
ru: {
2026-03-28 21:15:15 +03:00
label: 'Русский',
lang: 'ru-RU',
feat: генерация llms.txt, лендинг с выбором языка и ZIP-архивов - удалён concat-md.js: вместо единого RULES.md теперь llms.txt - добавлен generate-llms.ts: собирает llms.txt из sidebar config, копирует .md-файлы для отдачи LLM и упаковывает ZIP-архивы по локалям - добавлен корневой /llms.txt как роутер на /ru/llms.txt и /en/llms.txt - добавлен манифест /manifest.json со ссылками и версией сборки - добавлен лендинг docs/index.md (layout: false) с автоопределением языка, переключателями языка и темы - английская локаль временно заблокирована: карточки как заглушки, ссылка на /en/ в роутере без href - добавлены поля llmsBlockquote и llmsContext в локали для технодокументационного описания в llms.txt - разделены VitePress-локали: root (только лендинг), ru (/ru/), en (/en/) - добавлен srcExclude: ['public/**'] чтобы VitePress не рендерил сгенерированные .md как страницы - добавлен Vite-плагин для отдачи .txt и .md с charset=utf-8 - добавлена секция в Caddyfile для текстовых файлов - BUILD_VERSION пробрасывается из Gitea CI через docker --build-arg и подставляется в лендинг через Vite define - Dockerfile: установка zip, npm run llms перед npm run build - обновлены внутренние ссылки в docs/ru/**/*.md на префикс /ru/ - обновлены AGENTS.md и CONTRIBUTING.md под новый процесс - README/README_RU генерируются из docs/{lang}/index.md, остаются в репо
2026-04-25 18:06:27 +03:00
link: '/ru/',
description: 'Стандарты разработки на Next.js + TypeScript с архитектурой SLM',
2026-03-28 21:15:15 +03:00
themeConfig: {
sidebar: ruSidebar,
2026-01-29 16:00:19 +03:00
},
feat: генерация llms.txt, лендинг с выбором языка и ZIP-архивов - удалён concat-md.js: вместо единого RULES.md теперь llms.txt - добавлен generate-llms.ts: собирает llms.txt из sidebar config, копирует .md-файлы для отдачи LLM и упаковывает ZIP-архивы по локалям - добавлен корневой /llms.txt как роутер на /ru/llms.txt и /en/llms.txt - добавлен манифест /manifest.json со ссылками и версией сборки - добавлен лендинг docs/index.md (layout: false) с автоопределением языка, переключателями языка и темы - английская локаль временно заблокирована: карточки как заглушки, ссылка на /en/ в роутере без href - добавлены поля llmsBlockquote и llmsContext в локали для технодокументационного описания в llms.txt - разделены VitePress-локали: root (только лендинг), ru (/ru/), en (/en/) - добавлен srcExclude: ['public/**'] чтобы VitePress не рендерил сгенерированные .md как страницы - добавлен Vite-плагин для отдачи .txt и .md с charset=utf-8 - добавлена секция в Caddyfile для текстовых файлов - BUILD_VERSION пробрасывается из Gitea CI через docker --build-arg и подставляется в лендинг через Vite define - Dockerfile: установка zip, npm run llms перед npm run build - обновлены внутренние ссылки в docs/ru/**/*.md на префикс /ru/ - обновлены AGENTS.md и CONTRIBUTING.md под новый процесс - README/README_RU генерируются из docs/{lang}/index.md, остаются в репо
2026-04-25 18:06:27 +03:00
// Расширенный блок описания для llms.txt — даёт LLM полный
// технический контекст: стек, методология, охват тем.
llmsBlockquote:
'Стандарты разработки frontend-приложений на Next.js (App Router) + TypeScript + React с архитектурой SLM (Scoped Layered Module Design — модульная архитектура со слоями ответственности, где каждый модуль содержит всё необходимое: компоненты, хуки, сторы, типы, стили).',
llmsContext:
'Стек: React, TypeScript, Next.js App Router, Mantine UI, SWR, Zustand, i18next, PostCSS Modules, Vitest, clsx.\n\nДокументация покрывает архитектуру SLM (слои, модули, сегменты, направление зависимостей, публичный API), правила оформления кода (именование, форматирование, импорты, типизация, JSDoc), реализацию компонентов и хуков, работу с App Router, кодогенерацию из шаблонов, стилизацию (Mobile First, токены), работу с API и сокетами, управление состоянием через Zustand, локализацию, ассеты (шрифты, изображения, SVG-спрайты) и настройку VS Code.',
2026-03-28 21:15:15 +03:00
},
en: {
label: 'English',
lang: 'en-US',
link: '/en/',
feat: генерация llms.txt, лендинг с выбором языка и ZIP-архивов - удалён concat-md.js: вместо единого RULES.md теперь llms.txt - добавлен generate-llms.ts: собирает llms.txt из sidebar config, копирует .md-файлы для отдачи LLM и упаковывает ZIP-архивы по локалям - добавлен корневой /llms.txt как роутер на /ru/llms.txt и /en/llms.txt - добавлен манифест /manifest.json со ссылками и версией сборки - добавлен лендинг docs/index.md (layout: false) с автоопределением языка, переключателями языка и темы - английская локаль временно заблокирована: карточки как заглушки, ссылка на /en/ в роутере без href - добавлены поля llmsBlockquote и llmsContext в локали для технодокументационного описания в llms.txt - разделены VitePress-локали: root (только лендинг), ru (/ru/), en (/en/) - добавлен srcExclude: ['public/**'] чтобы VitePress не рендерил сгенерированные .md как страницы - добавлен Vite-плагин для отдачи .txt и .md с charset=utf-8 - добавлена секция в Caddyfile для текстовых файлов - BUILD_VERSION пробрасывается из Gitea CI через docker --build-arg и подставляется в лендинг через Vite define - Dockerfile: установка zip, npm run llms перед npm run build - обновлены внутренние ссылки в docs/ru/**/*.md на префикс /ru/ - обновлены AGENTS.md и CONTRIBUTING.md под новый процесс - README/README_RU генерируются из docs/{lang}/index.md, остаются в репо
2026-04-25 18:06:27 +03:00
description: 'Next.js + TypeScript development standards with SLM architecture',
2026-03-28 21:15:15 +03:00
themeConfig: {
sidebar: enSidebar,
2026-01-29 16:00:19 +03:00
},
feat: генерация llms.txt, лендинг с выбором языка и ZIP-архивов - удалён concat-md.js: вместо единого RULES.md теперь llms.txt - добавлен generate-llms.ts: собирает llms.txt из sidebar config, копирует .md-файлы для отдачи LLM и упаковывает ZIP-архивы по локалям - добавлен корневой /llms.txt как роутер на /ru/llms.txt и /en/llms.txt - добавлен манифест /manifest.json со ссылками и версией сборки - добавлен лендинг docs/index.md (layout: false) с автоопределением языка, переключателями языка и темы - английская локаль временно заблокирована: карточки как заглушки, ссылка на /en/ в роутере без href - добавлены поля llmsBlockquote и llmsContext в локали для технодокументационного описания в llms.txt - разделены VitePress-локали: root (только лендинг), ru (/ru/), en (/en/) - добавлен srcExclude: ['public/**'] чтобы VitePress не рендерил сгенерированные .md как страницы - добавлен Vite-плагин для отдачи .txt и .md с charset=utf-8 - добавлена секция в Caddyfile для текстовых файлов - BUILD_VERSION пробрасывается из Gitea CI через docker --build-arg и подставляется в лендинг через Vite define - Dockerfile: установка zip, npm run llms перед npm run build - обновлены внутренние ссылки в docs/ru/**/*.md на префикс /ru/ - обновлены AGENTS.md и CONTRIBUTING.md под новый процесс - README/README_RU генерируются из docs/{lang}/index.md, остаются в репо
2026-04-25 18:06:27 +03:00
llmsBlockquote:
'Frontend development standards for Next.js (App Router) + TypeScript + React projects with SLM architecture (Scoped Layered Module Design — a modular architecture with responsibility layers, where each module contains everything it needs: components, hooks, stores, types, styles).',
llmsContext:
'Stack: React, TypeScript, Next.js App Router, Mantine UI, SWR, Zustand, i18next, PostCSS Modules, Vitest, clsx.\n\nThe documentation covers SLM architecture (layers, modules, segments, dependency direction, public API), code conventions (naming, formatting, imports, typing, JSDoc), component and hook implementation, App Router usage, code generation from templates, styling (Mobile First, design tokens), API and socket integration, state management via Zustand, localization, assets (fonts, images, SVG sprites), and VS Code setup.',
2026-03-28 21:15:15 +03:00
},
2026-01-29 16:00:19 +03:00
},
2026-03-28 21:15:15 +03:00
});