2026-03-30 09:10:21 +03:00
|
|
|
|
# Правила работы над документацией
|
|
|
|
|
|
|
|
|
|
|
|
Мета-документ: как устроен проект, как писать и редактировать разделы.
|
|
|
|
|
|
|
|
|
|
|
|
## О проекте
|
|
|
|
|
|
|
|
|
|
|
|
Документационный сайт с правилами и стандартами фронтенд-разработки на Next.js + TypeScript.
|
|
|
|
|
|
|
|
|
|
|
|
- Движок: VitePress
|
2026-04-26 15:04:10 +03:00
|
|
|
|
- Язык: русский
|
|
|
|
|
|
- Контент: `docs/docs/`
|
2026-03-30 09:10:21 +03:00
|
|
|
|
|
|
|
|
|
|
## Команды
|
|
|
|
|
|
|
|
|
|
|
|
| Команда | Что делает |
|
|
|
|
|
|
|---------|-----------|
|
|
|
|
|
|
| `npm run dev` | Локальный сервер разработки |
|
|
|
|
|
|
| `npm run build` | Сборка статического сайта |
|
2026-04-26 15:04:10 +03:00
|
|
|
|
| `npm run llms` | Генерация `llms.txt` (карта документации для LLM) и README |
|
2026-03-30 09:10:21 +03:00
|
|
|
|
|
|
|
|
|
|
## Структура файлов
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
docs/
|
2026-04-26 15:04:10 +03:00
|
|
|
|
├── index.md # Лендинг (URL `/`)
|
|
|
|
|
|
└── docs/ # Контент документации (URL `/docs/...`)
|
|
|
|
|
|
├── index.md # Главная страница
|
2026-04-28 16:02:00 +03:00
|
|
|
|
├── workflow.md # Подсказки
|
|
|
|
|
|
├── basics/ # Базовые правила: каким должен быть код
|
2026-04-26 15:04:10 +03:00
|
|
|
|
│ ├── tech-stack.md
|
|
|
|
|
|
│ ├── architecture/
|
|
|
|
|
|
│ ├── code-style.md
|
|
|
|
|
|
│ ├── naming.md
|
|
|
|
|
|
│ ├── documentation.md
|
|
|
|
|
|
│ └── typing.md
|
2026-04-28 16:02:00 +03:00
|
|
|
|
├── creating-project/ # Создание проекта: как поднять новый проект
|
|
|
|
|
|
│ ├── from-template.md
|
|
|
|
|
|
│ ├── manual.md
|
|
|
|
|
|
│ └── nextjs.md
|
2026-04-29 20:52:01 +03:00
|
|
|
|
├── data/ # Работа с данными
|
|
|
|
|
|
│ ├── index.md
|
|
|
|
|
|
│ ├── realtime.md
|
|
|
|
|
|
│ └── rest/
|
2026-04-29 11:25:58 +03:00
|
|
|
|
└── applied/ # Прикладные разделы: настройка и использование
|
2026-04-29 20:52:01 +03:00
|
|
|
|
├── project-structure.md
|
|
|
|
|
|
├── page-level.md
|
|
|
|
|
|
├── component.md
|
|
|
|
|
|
├── module.md
|
2026-04-29 11:25:58 +03:00
|
|
|
|
├── styles/ # Стили: настройка + использование
|
|
|
|
|
|
│ ├── styles-setup.md
|
|
|
|
|
|
│ └── styles-usage.md
|
2026-04-29 20:52:01 +03:00
|
|
|
|
├── svg-sprites/ # SVG-спрайты: введение + настройка + использование
|
|
|
|
|
|
│ ├── svg-sprites-intro.md
|
2026-04-29 11:25:58 +03:00
|
|
|
|
│ ├── svg-sprites-setup.md
|
|
|
|
|
|
│ └── svg-sprites-usage.md
|
2026-04-29 20:52:01 +03:00
|
|
|
|
├── images.md
|
|
|
|
|
|
├── fonts.md
|
|
|
|
|
|
├── aliases.md
|
|
|
|
|
|
├── templates/ # Шаблоны генерации: введение + настройка + использование
|
|
|
|
|
|
│ ├── templates-intro.md
|
2026-04-29 11:25:58 +03:00
|
|
|
|
│ ├── templates-setup.md
|
2026-04-29 20:52:01 +03:00
|
|
|
|
│ ├── templates-create.md
|
2026-04-29 11:25:58 +03:00
|
|
|
|
│ └── templates-usage.md
|
2026-04-29 20:52:01 +03:00
|
|
|
|
├── biome.md
|
|
|
|
|
|
├── postcss.md
|
|
|
|
|
|
├── vscode.md
|
|
|
|
|
|
├── localization.md
|
|
|
|
|
|
└── stores.md
|
2026-03-30 09:10:21 +03:00
|
|
|
|
.vitepress/
|
2026-04-26 15:04:10 +03:00
|
|
|
|
└── config.ts # Конфигурация VitePress, сайдбар
|
2026-04-25 18:06:27 +03:00
|
|
|
|
generate-llms.ts # Скрипт генерации llms.txt и README
|
2026-03-30 09:10:21 +03:00
|
|
|
|
```
|
|
|
|
|
|
|
2026-04-26 15:04:10 +03:00
|
|
|
|
Сгенерированные артефакты (`docs/public/`): `llms.txt`, `llms-full.txt`,
|
|
|
|
|
|
`nextjs-style-guide.zip`, `manifest.json`, копии `.md` в `docs/public/docs/`.
|
|
|
|
|
|
|
2026-03-30 09:10:21 +03:00
|
|
|
|
### Добавление нового раздела
|
|
|
|
|
|
|
2026-04-28 16:02:00 +03:00
|
|
|
|
1. Создать `.md`-файл в нужной папке: `basics/`, `creating-project/`,
|
2026-04-29 11:25:58 +03:00
|
|
|
|
или `applied/`.
|
2026-04-26 15:04:10 +03:00
|
|
|
|
2. Добавить пункт в сайдбар — `.vitepress/config.ts`.
|
2026-04-25 18:06:27 +03:00
|
|
|
|
Сайдбар — единственный источник порядка и группировки для `llms.txt`.
|
2026-04-26 15:04:10 +03:00
|
|
|
|
3. Запустить `npm run llms` для обновления `llms.txt` и README.
|
2026-03-30 09:10:21 +03:00
|
|
|
|
|
2026-04-28 16:02:00 +03:00
|
|
|
|
## Типы разделов
|
2026-03-30 09:10:21 +03:00
|
|
|
|
|
2026-04-28 16:02:00 +03:00
|
|
|
|
Документация разделена на четыре группы. Каждая отвечает на свой вопрос
|
|
|
|
|
|
и имеет свою природу — это влияет на содержимое и структуру страницы.
|
|
|
|
|
|
|
|
|
|
|
|
### Базовые правила (`basics/`)
|
2026-03-30 09:10:21 +03:00
|
|
|
|
|
|
|
|
|
|
**Отвечает на вопрос:** «Каким должен быть любой код?»
|
|
|
|
|
|
|
|
|
|
|
|
Универсальные стандарты, **не привязанные к конкретной области**.
|
2026-04-28 16:02:00 +03:00
|
|
|
|
Правило базовое, если оно применимо ко всему коду одинаково: именование
|
|
|
|
|
|
переменных, оформление импортов, когда использовать `type` vs `interface`.
|
|
|
|
|
|
|
|
|
|
|
|
Примеры в базовых правилах допускаются, но служат иллюстрацией принципа,
|
|
|
|
|
|
а не инструкцией по конкретной области.
|
|
|
|
|
|
|
|
|
|
|
|
**Граница:** если правило касается только одной области (только стили,
|
|
|
|
|
|
только компоненты, только API) — оно живёт в прикладном разделе, не в базовых.
|
|
|
|
|
|
|
|
|
|
|
|
### Создание проекта (`creating-project/`)
|
|
|
|
|
|
|
|
|
|
|
|
**Отвечает на вопрос:** «Как поднять новый проект?»
|
|
|
|
|
|
|
|
|
|
|
|
Сценарии запуска нового проекта целиком: из шаблона, вручную, чистая
|
|
|
|
|
|
установка фреймворка. Раздел описывает порядок шагов на уровне всего
|
2026-04-29 11:25:58 +03:00
|
|
|
|
проекта; детали отдельных инструментов лежат в `applied/`.
|
2026-04-28 16:02:00 +03:00
|
|
|
|
|
2026-04-29 11:25:58 +03:00
|
|
|
|
**Граница:** не дублирует разделы `applied/`. Ссылается на них как на
|
2026-04-28 16:02:00 +03:00
|
|
|
|
шаги в общем сценарии.
|
2026-03-30 09:10:21 +03:00
|
|
|
|
|
2026-04-29 11:25:58 +03:00
|
|
|
|
### Прикладные разделы (`applied/`)
|
2026-03-30 09:10:21 +03:00
|
|
|
|
|
2026-04-29 11:25:58 +03:00
|
|
|
|
**Отвечает на вопрос:** «Как поставить инструмент и как им пользоваться?»
|
2026-03-30 09:10:21 +03:00
|
|
|
|
|
2026-04-29 11:25:58 +03:00
|
|
|
|
Прикладные разделы объединяют настройку и использование инструментов
|
|
|
|
|
|
и подсистем. Каждый раздел — самостоятельная предметная область.
|
2026-03-30 09:10:21 +03:00
|
|
|
|
|
2026-04-29 11:25:58 +03:00
|
|
|
|
Разделы делятся на два типа:
|
2026-03-30 09:10:21 +03:00
|
|
|
|
|
2026-04-29 11:25:58 +03:00
|
|
|
|
1. **Только настройка** — разовая установка инструмента (линтер,
|
|
|
|
|
|
CSS-процессор, алиасы). Файл без суффикса: `biome.md`, `postcss.md`.
|
2026-03-30 09:10:21 +03:00
|
|
|
|
|
2026-04-29 11:25:58 +03:00
|
|
|
|
2. **Настройка + использование** — область, требующая и установки,
|
|
|
|
|
|
и повседневных правил. Два файла с суффиксами: `styles-setup.md`
|
|
|
|
|
|
(настройка) и `styles-usage.md` (использование). В сайдбаре
|
|
|
|
|
|
оборачиваются в collapsed-группу.
|
2026-04-28 16:02:00 +03:00
|
|
|
|
|
|
|
|
|
|
**Граница:** прикладной раздел не дублирует базовые правила. Если правило
|
|
|
|
|
|
уже описано в `basics/` — прикладной раздел ссылается на него, но не
|
|
|
|
|
|
повторяет.
|
2026-03-30 09:10:21 +03:00
|
|
|
|
|
|
|
|
|
|
## Структура прикладного раздела
|
|
|
|
|
|
|
2026-04-29 11:25:58 +03:00
|
|
|
|
Шаблон ниже относится к usage-страницам прикладных разделов (`applied/*-usage.md`).
|
|
|
|
|
|
Setup-страницы (`applied/*-setup.md`) и `creating-project/` имеют другую
|
|
|
|
|
|
структуру — ориентированную на пошаговую установку (требования → установка →
|
2026-04-28 16:02:00 +03:00
|
|
|
|
проверка).
|
|
|
|
|
|
|
|
|
|
|
|
Шаблон описывает все допустимые секции. Раздел включает только те,
|
|
|
|
|
|
которые для него релевантны — пустые секции не создаются.
|
2026-03-30 09:10:21 +03:00
|
|
|
|
|
|
|
|
|
|
```markdown
|
|
|
|
|
|
# {Название}
|
|
|
|
|
|
|
2026-04-28 15:35:10 +03:00
|
|
|
|
{Одно-два предложения, по которым читатель за секунду решает, нужен ли ему раздел.
|
|
|
|
|
|
Правила оформления — секция «Заголовок и описание» ниже.}
|
2026-03-30 09:10:21 +03:00
|
|
|
|
|
|
|
|
|
|
## Что нужно знать
|
|
|
|
|
|
|
2026-04-01 10:35:07 +03:00
|
|
|
|
Неочевидная информация, которую читатель должен знать перед чтением раздела.
|
|
|
|
|
|
Если для раздела нет такой вводной — секция не создаётся.
|
2026-03-30 09:10:21 +03:00
|
|
|
|
|
|
|
|
|
|
## Структура
|
|
|
|
|
|
|
|
|
|
|
|
Файловая организация: какие файлы создавать и куда класть.
|
|
|
|
|
|
Обязательно — дерево файлов через code-block.
|
|
|
|
|
|
|
|
|
|
|
|
## Правила
|
|
|
|
|
|
|
2026-04-01 10:35:07 +03:00
|
|
|
|
Конкретные требования, специфичные для области. Делятся на две подсекции:
|
|
|
|
|
|
|
|
|
|
|
|
### Реализация
|
|
|
|
|
|
|
|
|
|
|
|
Как написан код внутри файла: синтаксис, паттерны, API.
|
|
|
|
|
|
Отвечает на вопрос: «Как писать код?»
|
|
|
|
|
|
|
|
|
|
|
|
Примеры: объявление через `const`, деструктуризация пропсов, формат вызова `cl()`, способ подключения стилей, структура хука.
|
|
|
|
|
|
|
|
|
|
|
|
### Организация
|
|
|
|
|
|
|
|
|
|
|
|
Как компонент/модуль встроен в проект: файловые границы, зоны ответственности, экспорт.
|
|
|
|
|
|
Отвечает на вопрос: «Где что лежит и за что отвечает?»
|
|
|
|
|
|
|
|
|
|
|
|
Примеры: один компонент — один файл, вложенные компоненты в `ui/`, логика выносится в `model/`.
|
|
|
|
|
|
|
|
|
|
|
|
Формат обеих подсекций — маркированный список.
|
2026-03-30 09:10:21 +03:00
|
|
|
|
Для неочевидных случаев — блоки «Хорошо / Плохо».
|
2026-04-01 10:35:07 +03:00
|
|
|
|
Если в области нет правил одной из категорий — подсекция не создаётся.
|
2026-03-30 09:10:21 +03:00
|
|
|
|
|
|
|
|
|
|
## Именование
|
|
|
|
|
|
|
|
|
|
|
|
Соглашения по именам, специфичные для этой области.
|
|
|
|
|
|
Только то, что НЕ покрыто в базовом разделе «Именование».
|
|
|
|
|
|
|
|
|
|
|
|
## Типизация
|
|
|
|
|
|
|
|
|
|
|
|
Правила типизации, специфичные для этой области.
|
|
|
|
|
|
Только то, что НЕ покрыто в базовом разделе «Типизация».
|
|
|
|
|
|
|
|
|
|
|
|
## Документирование
|
|
|
|
|
|
|
|
|
|
|
|
Что и как документировать в этой области.
|
|
|
|
|
|
Только то, что НЕ покрыто в базовом разделе «Документирование».
|
|
|
|
|
|
|
|
|
|
|
|
## Примеры
|
|
|
|
|
|
|
|
|
|
|
|
Полноценные примеры кода.
|
|
|
|
|
|
Каждый пример с путём к файлу и пояснениями.
|
2026-04-01 10:35:07 +03:00
|
|
|
|
|
2026-03-30 09:10:21 +03:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### Порядок секций
|
|
|
|
|
|
|
2026-04-01 10:45:22 +03:00
|
|
|
|
Порядок фиксированный: контекст → структура → правила → специализации базовых правил → примеры.
|
2026-04-01 10:35:07 +03:00
|
|
|
|
|
2026-04-01 10:45:22 +03:00
|
|
|
|
Логика: читатель сначала понимает «что это», потом «где это лежит», потом «как это делать», и в конце видит полный пример.
|
2026-03-30 09:10:21 +03:00
|
|
|
|
|
|
|
|
|
|
### Секции-расширения базовых правил
|
|
|
|
|
|
|
|
|
|
|
|
«Именование», «Типизация», «Документирование» в прикладном разделе — это **точки расширения** базовых правил.
|
|
|
|
|
|
|
|
|
|
|
|
- В базовых описано общее: `camelCase` для переменных, `type` vs `interface`, формат JSDoc.
|
|
|
|
|
|
- В прикладном разделе описано специфичное: как именовать CSS-классы (стили), как типизировать пропсы компонентов (компоненты), как документировать хуки (хуки).
|
|
|
|
|
|
|
|
|
|
|
|
Если для области нет специфики по именованию, типизации или документированию — секция не создаётся.
|
|
|
|
|
|
|
|
|
|
|
|
## Конвенции оформления
|
|
|
|
|
|
|
|
|
|
|
|
### Frontmatter
|
|
|
|
|
|
|
|
|
|
|
|
Каждый `.md`-файл начинается с YAML frontmatter:
|
|
|
|
|
|
|
|
|
|
|
|
```yaml
|
|
|
|
|
|
---
|
|
|
|
|
|
title: Название раздела
|
2026-04-28 16:02:00 +03:00
|
|
|
|
description: Описание раздела одним предложением.
|
2026-03-30 09:10:21 +03:00
|
|
|
|
---
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-04-28 16:02:00 +03:00
|
|
|
|
- `title` совпадает с текстом `h1`-заголовка в файле.
|
|
|
|
|
|
- `description` совпадает с абзацем-описанием сразу под `h1`.
|
|
|
|
|
|
|
|
|
|
|
|
Подробнее о требованиях к самому заголовку и описанию — секция
|
|
|
|
|
|
«Заголовок и описание» ниже.
|
2026-03-30 09:10:21 +03:00
|
|
|
|
|
2026-04-28 15:35:10 +03:00
|
|
|
|
### Заголовок и описание
|
2026-03-30 09:10:21 +03:00
|
|
|
|
|
2026-04-28 15:35:10 +03:00
|
|
|
|
Каждая страница начинается с `h1`-заголовка и абзаца-описания сразу под ним.
|
|
|
|
|
|
Эта пара — **навигационный маркер**: попадает в сайдбар, `llms.txt`,
|
2026-04-28 20:28:01 +03:00
|
|
|
|
`MAP.md` архива и должна за секунду давать читателю или LLM понять,
|
2026-04-28 15:35:10 +03:00
|
|
|
|
**когда сюда нужно идти**.
|
|
|
|
|
|
|
|
|
|
|
|
#### Структура заголовков
|
|
|
|
|
|
|
|
|
|
|
|
- Один `h1` на файл, совпадает с `title` во frontmatter.
|
|
|
|
|
|
- Сразу после `h1` — описание (одно-два предложения, см. ниже).
|
2026-03-30 09:10:21 +03:00
|
|
|
|
- Основные секции — `h2`.
|
|
|
|
|
|
- Подсекции внутри `h2` — `h3`.
|
|
|
|
|
|
- `h4` не используется.
|
|
|
|
|
|
|
2026-04-28 15:35:10 +03:00
|
|
|
|
#### Имя `h1` (заголовок страницы)
|
|
|
|
|
|
|
|
|
|
|
|
- Называет предметную область, а не реализацию.
|
|
|
|
|
|
- Без имён пакетов, опций, конфигов и путей.
|
|
|
|
|
|
- Самодостаточен — читается без контекста сайдбара.
|
|
|
|
|
|
- Исключение: имя инструмента допустимо, если оно — единственное
|
|
|
|
|
|
устойчивое имя самой области (`PostCSS`, `Biome`, `VS Code`).
|
2026-04-28 16:02:00 +03:00
|
|
|
|
- Если страница вложена в семантическую группу
|
|
|
|
|
|
(`Архитектура → Слои`, `Данные → REST → Серверные компоненты`)
|
|
|
|
|
|
и короткое имя теряет смысл при прямой ссылке — `h1` поднимает
|
|
|
|
|
|
имя родителя в заголовок: `Слои SLM`, `Сегменты SLM`. В сайдбаре
|
|
|
|
|
|
допустимо оставить короткий вариант (`Слои`, `Сегменты`) — там
|
|
|
|
|
|
путь группы виден через дерево.
|
|
|
|
|
|
- Подъём в заголовок применяется только когда читается грамматически
|
|
|
|
|
|
естественно (`Слои SLM`, `Автогенерация REST-клиента`). Если
|
|
|
|
|
|
получается натянутая конструкция (`REST в серверных компонентах`) —
|
|
|
|
|
|
заголовок остаётся коротким, а контекст полностью переносится
|
|
|
|
|
|
в описание. Заголовок и описание — пара: если один не несёт
|
|
|
|
|
|
контекст, его обязательно несёт второй.
|
|
|
|
|
|
|
|
|
|
|
|
**Хорошо:** «Алиасы импортов», «Структура проекта», «SVG-спрайты»,
|
|
|
|
|
|
«Слои SLM», «Автогенерация REST-клиента».
|
2026-04-28 15:35:10 +03:00
|
|
|
|
|
|
|
|
|
|
**Плохо:** «Установка и настройка» (что устанавливаем?),
|
2026-04-28 16:02:00 +03:00
|
|
|
|
«Использование» (что используем?), «Введение» (во что?),
|
|
|
|
|
|
«Сегменты» (чего сегменты?), «REST в серверных компонентах»
|
|
|
|
|
|
(грамматически натянуто — лучше короткий h1 + контекст в описании).
|
2026-04-28 15:35:10 +03:00
|
|
|
|
|
|
|
|
|
|
#### Описание
|
|
|
|
|
|
|
|
|
|
|
|
Описание — короткий ответ на вопрос «у меня задача X, мне сюда?».
|
|
|
|
|
|
Не аннотация. Не оглавление.
|
|
|
|
|
|
|
|
|
|
|
|
**Запреты:**
|
|
|
|
|
|
|
|
|
|
|
|
- Не упоминать конкретные пакеты, библиотеки, инструменты
|
|
|
|
|
|
(`@gromlab/svg-sprites`, `Mantine`, `Zustand`).
|
|
|
|
|
|
- Не упоминать конкретные файлы и пути
|
|
|
|
|
|
(`postcss.config.mjs`, `.templates/`, `biome.json`).
|
|
|
|
|
|
- Не упоминать конкретные опции, ключи API, имена функций
|
|
|
|
|
|
(`baseUrl`, `cl()`, `useStore`).
|
|
|
|
|
|
- Не начинать с «Раздел описывает», «Этот раздел»,
|
|
|
|
|
|
«В этом разделе», «Здесь рассмотрено».
|
|
|
|
|
|
- Не использовать дежурные префиксы как шаблон
|
|
|
|
|
|
(«Правила работы с...», «Правила написания...») — само то,
|
|
|
|
|
|
что раздел про правила, и так понятно из секции и заголовка.
|
|
|
|
|
|
- Не пересказывать содержимое перечислением подсекций
|
|
|
|
|
|
(«организация, реализация, делегирование, метаданные»).
|
|
|
|
|
|
- Не аргументировать пользу
|
|
|
|
|
|
(«обеспечит единообразие», «упростит поддержку»).
|
|
|
|
|
|
|
|
|
|
|
|
**Требования:**
|
|
|
|
|
|
|
|
|
|
|
|
- 1 предложение, обычно 5–12 слов.
|
|
|
|
|
|
- Звучит как ответ человека другу, а не как техспек.
|
|
|
|
|
|
- Описание читается **самостоятельно**, без контекста сайдбара.
|
|
|
|
|
|
- Если страница вложена в семантическую группу
|
|
|
|
|
|
(например, `Данные → REST → Клиенты → ...`) и её заголовок
|
|
|
|
|
|
без этой группы теряет смысл — описание явно содержит имя
|
|
|
|
|
|
родительской области, чтобы читалось без сайдбара.
|
|
|
|
|
|
|
|
|
|
|
|
**Подходящие формы:**
|
2026-04-25 20:15:10 +03:00
|
|
|
|
|
2026-04-28 15:35:10 +03:00
|
|
|
|
- «Как X.»
|
|
|
|
|
|
- «Что такое X.»
|
|
|
|
|
|
- «Из чего состоит X.»
|
|
|
|
|
|
- «Установка X.»
|
|
|
|
|
|
- «Какие X есть и как ими пользоваться.»
|
2026-04-25 20:15:10 +03:00
|
|
|
|
|
2026-04-28 15:35:10 +03:00
|
|
|
|
Перечисление аспектов через двоеточие — только если без него читатель
|
|
|
|
|
|
не сможет различить раздел от соседнего.
|
2026-04-25 20:15:10 +03:00
|
|
|
|
|
2026-04-28 15:35:10 +03:00
|
|
|
|
**Тест навигации.** Читатель видит описание — за секунду должен понять
|
|
|
|
|
|
«мне сюда» или «нет, не сюда». Если приходится перечитывать —
|
|
|
|
|
|
описание слишком длинное.
|
2026-04-25 20:15:10 +03:00
|
|
|
|
|
2026-04-28 15:35:10 +03:00
|
|
|
|
**Тест на изменение.** Если в разделе сменится пакет, переименуется
|
|
|
|
|
|
файл или добавится правило — придётся ли править описание?
|
|
|
|
|
|
Если да — оно слишком конкретное.
|
2026-04-25 20:15:10 +03:00
|
|
|
|
|
|
|
|
|
|
**Хорошо:**
|
|
|
|
|
|
|
|
|
|
|
|
```markdown
|
2026-04-28 15:35:10 +03:00
|
|
|
|
Какие алиасы импортов есть в проекте и как ими пользоваться.
|
2026-04-25 20:15:10 +03:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
```markdown
|
2026-04-28 15:35:10 +03:00
|
|
|
|
Установка и настройка линтера-форматтера в новом проекте.
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
```markdown
|
|
|
|
|
|
Из чего состоит проект и где что лежит.
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
```markdown
|
|
|
|
|
|
Получение REST-данных в серверных компонентах.
|
2026-04-25 20:15:10 +03:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
**Плохо:**
|
|
|
|
|
|
|
|
|
|
|
|
```markdown
|
2026-04-28 15:35:10 +03:00
|
|
|
|
Раздел описывает, какие алиасы используются в проекте: их полный список,
|
|
|
|
|
|
где они объявлены и как ими пользоваться между модулями и внутри модуля.
|
2026-04-25 20:15:10 +03:00
|
|
|
|
```
|
|
|
|
|
|
|
2026-04-28 15:35:10 +03:00
|
|
|
|
_Начинается с «Раздел описывает», пересказывает содержимое._
|
|
|
|
|
|
|
|
|
|
|
|
```markdown
|
|
|
|
|
|
Установка и настройка CSS-процессора PostCSS в проекте: набор плагинов,
|
|
|
|
|
|
конфиг `postcss.config.mjs`. Выполняется один раз при заведении проекта.
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
_Упомянут конкретный файл, перечисление аспектов превратилось в оглавление._
|
|
|
|
|
|
|
2026-04-25 20:15:10 +03:00
|
|
|
|
```markdown
|
2026-04-28 15:35:10 +03:00
|
|
|
|
Правила работы с React-компонентами: файловая структура,
|
|
|
|
|
|
типизация пропсов, документирование, реализация.
|
2026-04-25 20:15:10 +03:00
|
|
|
|
```
|
|
|
|
|
|
|
2026-04-28 15:35:10 +03:00
|
|
|
|
_Дежурный префикс «Правила работы с...» плюс оглавление подсекций._
|
|
|
|
|
|
|
2026-03-30 09:10:21 +03:00
|
|
|
|
### Примеры кода
|
|
|
|
|
|
|
|
|
|
|
|
- Блоки кода с указанием языка: ` ```tsx `, ` ```css `, ` ```bash `, ` ```text `.
|
|
|
|
|
|
- Путь к файлу указывается перед блоком кода текстом или комментарием внутри блока.
|
|
|
|
|
|
- Дерево файлов — ` ```text ` с символами `├──`, `└──`, `│`.
|
|
|
|
|
|
|
|
|
|
|
|
### Блоки «Хорошо / Плохо»
|
|
|
|
|
|
|
|
|
|
|
|
Используются для контрастного сравнения правильного и неправильного подхода.
|
|
|
|
|
|
|
|
|
|
|
|
Формат:
|
|
|
|
|
|
|
|
|
|
|
|
```markdown
|
|
|
|
|
|
**Хорошо:**
|
|
|
|
|
|
|
|
|
|
|
|
\`\`\`tsx
|
|
|
|
|
|
// правильный код
|
|
|
|
|
|
\`\`\`
|
|
|
|
|
|
|
|
|
|
|
|
**Плохо:**
|
|
|
|
|
|
|
|
|
|
|
|
\`\`\`tsx
|
|
|
|
|
|
// неправильный код
|
|
|
|
|
|
\`\`\`
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### Таблицы
|
|
|
|
|
|
|
|
|
|
|
|
Используются для структурированных перечислений: настройки, команды, соответствия.
|
|
|
|
|
|
Формат — стандартный Markdown: `| Ключ | Описание |`.
|
|
|
|
|
|
|
|
|
|
|
|
### Ссылки между разделами
|
|
|
|
|
|
|
|
|
|
|
|
Прикладной раздел может ссылаться на другие разделы, но не дублирует их содержимое.
|
|
|
|
|
|
|
|
|
|
|
|
## Принципы
|
|
|
|
|
|
|
|
|
|
|
|
1. **Не дублировать.** Одна мысль живёт в одном месте. Остальные ссылаются.
|
|
|
|
|
|
2. **Базовое vs прикладное.** Если правило применимо ко всему коду — оно базовое. Если только к одной области — прикладное.
|
2026-04-01 10:45:22 +03:00
|
|
|
|
3. **Пустые секции не создавать.** Если для раздела нет специфики по именованию — секции «Именование» в нём нет.
|
|
|
|
|
|
4. **Примеры обязательны.** Прикладной раздел без примеров кода — незавершён.
|