- Добавлен триггер dev в CI со сборочным job (generate + docs:build + build) - Убраны устаревшие шаги: npm run docs, коммит generated/, README_RU.md - Прод-пайплайн: build → version (тег) → docker → deploy - CONTRIBUTING.md переписан под текущую структуру проекта
5.5 KiB
5.5 KiB
Правила работы над документацией
Мета-документ: как устроен проект, как писать и редактировать разделы.
О проекте
Сайт-документация архитектуры SLM Design с лендингом.
- Лендинг: React + Vite
- Документация: VitePress
- Язык: русский
- Документация:
docs/architecture/
Команды
| Команда | Что делает |
|---|---|
npm run dev |
Локальный сервер лендинга |
npm run build |
Сборка лендинга |
npm run docs:dev |
Локальный сервер документации |
npm run docs:build |
Сборка документации |
npm run generate |
Генерация артефактов (llms.txt, llms-full.txt, ARCHITECTURE.md, ZIP, README) |
Структура файлов
docs/
├── index.md # Страница навигации по документации
└── architecture/ # Разделы архитектуры
├── index.md # Обзор SLM Design
├── layers.md # Слои
├── modules.md # Модули
└── segments.md # Сегменты
.vitepress/
├── config.ts # Конфигурация VitePress, сайдбар
public/
├── llms.txt # Карта документации для LLM
├── llms-full.txt # Полная документация в одном файле
└── ARCHITECTURE.md # Единый файл архитектуры
generate.ts # Скрипт генерации артефактов
src/ # Исходники лендинга (React + Vite)
Добавление нового раздела
- Создать
.md-файл вdocs/architecture/. - Добавить пункт в сайдбар —
.vitepress/config.ts. - Добавить
descriptionв frontmatter файла — используется дляllms.txt. - Запустить
npm run generateдля обновления артефактов.
Frontmatter
Каждый .md-файл начинается с YAML frontmatter:
---
title: Название раздела
description: Краткое описание для llms.txt
---
title— совпадает сh1-заголовком в файле.description— кратное описание содержимого страницы, используется при генерацииllms.txt.
Структура страницы документации
Каждая страница начинается одинаково:
- Заголовок (
h1) — совпадает сtitleиз frontmatter. - Описание раздела — 1–2 строки сразу после заголовка. Говорит, что это за раздел, какую информацию он описывает и что читатель в нём получит.
- Определение (
## Определение) — для справочных страниц, посвящённых одному термину. Короткая формулировка жирным: что это за сущность и какую роль она играет. - Контент — остальные
h2-подразделы.
Конвенции оформления
Заголовки
- Один
h1на файл — совпадает сtitleиз frontmatter. - Сразу после
h1— описание раздела (1–2 предложения). - Основные секции —
h2. - Подсекции внутри
h2—h3. h4не используется.
Примеры кода
- Блоки кода с указанием языка:
```tsx,```css,```bash,```text. - Путь к файлу указывается перед блоком кода текстом или комментарием внутри блока.
- Дерево файлов —
```textс символами├──,└──,│.
Блоки «Хорошо / Плохо»
Используются для контрастного сравнения правильного и неправильного подхода.
**Хорошо:**
\`\`\`tsx
// правильный код
\`\`\`
**Плохо:**
\`\`\`tsx
// неправильный код
\`\`\`
Таблицы
Используются для структурированных перечислений: настройки, команды, соответствия.
Формат — стандартный Markdown: | Ключ | Описание |.
Ссылки между разделами
Раздел может ссылаться на другие разделы, но не дублирует их содержимое.
Принципы
- Не дублировать. Одна мысль живёт в одном месте. Остальные ссылаются.
- Пустые секции не создавать. Если для раздела нет специфики — секция не создаётся.
- Примеры обязательны. Раздел без примеров кода — незавершён.