Skip to content

Commit 78d316c

Browse files
authored
(docs) CLI contributor template docs (#28939)
1 parent 76045a1 commit 78d316c

File tree

4 files changed

+374
-2
lines changed

4 files changed

+374
-2
lines changed
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# [Название действия]
2+
3+
[Краткое описание назначения команды. Если команда связана с другими, добавьте ссылки.]
4+
5+
[{% note info/warning %}
6+
7+
[Примечание, если необходимо]
8+
9+
{% endnote %}]
10+
11+
Общий вид команды:
12+
13+
{{ ydb-cli }} [global options...] <command> [options...] [arguments...]
14+
15+
* `global options`[глобальные параметры](commands/global-options.md).
16+
* `options`[параметры подкоманды](#options).
17+
* `arguments`[описание аргументов].
18+
19+
Посмотрите описание команды:
20+
21+
{{ ydb-cli }} <command> --help
22+
23+
## Параметры подкоманды {#options}
24+
25+
[Если команда имеет параметры, добавьте таблицу или описание]
26+
27+
Имя | Описание
28+
|---|---
29+
`--parameter VAL` | Описание параметра.
30+
31+
## Примеры {#examples}
32+
33+
{% include [ydb-cli-profile](../../_includes/ydb-cli-profile.md) %}
34+
35+
[Пример 1]:
36+
37+
{{ ydb-cli }} -p quickstart <command> [options...]
38+
39+
[Пример 2 с результатом]:
40+
41+
{{ ydb-cli }} -p quickstart <command> [options...]
42+
43+
Результат:
44+
45+
[Вывод команды]
46+
47+
[Ссылки на связанные команды или статьи, если необходимо]
48+
Lines changed: 321 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,321 @@
1+
# Документирование новых команд CLI
2+
3+
Эта статья описывает процесс создания документации для новых команд {{ ydb-short-name }} CLI. Она содержит шаблон и рекомендации, основанные на существующих статьях о командах CLI.
4+
5+
## Общие принципы
6+
7+
Перед началом работы над документацией новой команды:
8+
9+
1. Ознакомьтесь с [{#T}](style-guide.md) для понимания общих правил стиля документации.
10+
2. Убедитесь, что команда реализована и доступна в CLI с опцией `--help`.
11+
12+
## Структура статьи
13+
14+
Каждая статья о команде CLI должна следовать следующей структуре:
15+
16+
### 1. Заголовок первого уровня
17+
18+
Заголовок должен кратко описывать действие команды. Используйте формулировку, которая начинается с существительного или отглагольного существительного.
19+
20+
**Примеры:**
21+
22+
- `# Создание топика`
23+
- `# Удаление таблицы`
24+
- `# Получение статуса фоновой операции`
25+
- `# Чтение из топика`
26+
27+
### 2. Краткое описание
28+
29+
Первые 1–3 предложения описывают назначение команды. Если команда связана с другими командами, добавьте ссылки на них.
30+
31+
**Пример:**
32+
33+
```markdown
34+
С помощью подкоманды `topic create` вы можете создать новый топик.
35+
```
36+
37+
**Пример со ссылкой:**
38+
39+
```markdown
40+
С помощью команды `topic consumer add` вы можете добавить читателя для [созданного ранее](topic-create.md) топика.
41+
```
42+
43+
### 3. Примечания (опционально)
44+
45+
Если команда имеет важные особенности, ограничения или предупреждения, добавьте их сразу после описания с помощью блока `{% note %}`.
46+
47+
**Пример:**
48+
49+
```markdown
50+
{% note info %}
51+
52+
При удалении топика также будут удалены все добавленные для него читатели.
53+
54+
{% endnote %}
55+
```
56+
57+
### 4. Общий вид команды
58+
59+
Покажите синтаксис команды с использованием шаблона `{{ ydb-cli }}` и правильного форматирования.
60+
61+
**Базовый шаблон:**
62+
63+
```markdown
64+
Общий вид команды:
65+
66+
{{ ydb-cli }} [global options...] <command> [options...] [arguments...]
67+
68+
* `global options` — [глобальные параметры](commands/global-options.md).
69+
* `options` — [параметры подкоманды](#options).
70+
* `arguments` — аргументы команды (опишите каждый).
71+
```
72+
73+
**Примеры:**
74+
75+
Для команды без опций:
76+
77+
```markdown
78+
{{ ydb-cli }} [global options...] topic drop <topic-path>
79+
```
80+
81+
Для команды с опциями:
82+
83+
```markdown
84+
{{ ydb-cli }} [global options...] topic create [options...] <topic-path>
85+
```
86+
87+
Для сложной команды:
88+
89+
```markdown
90+
{{ ydb-cli }} [connection options] topic read <topic-path> [--consumer STR] \
91+
[--format STR] [--wait] [--limit INT] \
92+
[--transform STR] [--file STR] [--commit BOOL] \
93+
[дополнительные параметры...]
94+
```
95+
96+
### 5. Ссылка на справку
97+
98+
Всегда добавляйте команду для получения справки:
99+
100+
```markdown
101+
Посмотрите описание команды:
102+
103+
{{ ydb-cli }} <command> --help
104+
```
105+
106+
### 6. Параметры подкоманды
107+
108+
Если команда имеет параметры, создайте раздел `## Параметры подкоманды {#options}`.
109+
110+
Оформите параметры в виде таблицы:
111+
112+
```markdown
113+
## Параметры подкоманды {#options}
114+
115+
Имя | Описание
116+
|---|---
117+
`--parameter-name VAL` | Описание параметра.
118+
```
119+
120+
**Рекомендации по описанию параметров:**
121+
122+
- Укажите тип значения, если он важен (например, `VAL`, `STR`, `INT`, `BOOL`).
123+
- Укажите значение по умолчанию, если оно есть.
124+
- Перечислите возможные значения для перечислений.
125+
- Добавьте ссылки на концепции, если параметр связан с ними.
126+
- Используйте HTML-теги для форматирования внутри ячеек таблицы (например, `<br/>`, `<ul>`, `<li>`).
127+
128+
**Пример простого параметра:**
129+
130+
```markdown
131+
`--consumer VAL` | Имя читателя, которого нужно добавить.
132+
```
133+
134+
**Пример параметра с описанием:**
135+
136+
```markdown
137+
`--retention-period` | Время хранения данных в топике. Положительное число с указанием единицы измерения.<br/>Поддерживаются следующие единицы:<ul><li>`s` – секунды;</li><li>`m` – минуты;</li><li>`h` – часы;</li><li>`d` – дни.</li></ul>Значение по умолчанию — `18h`.
138+
```
139+
140+
**Пример параметра со ссылкой:**
141+
142+
```markdown
143+
`--partitions-count`| Количество [партиций](../../concepts/datamodel/topic.md#partitioning) топика.<br/>Значение по умолчанию — `1`.
144+
```
145+
146+
**Группировка параметров:**
147+
148+
Для команд с большим количеством параметров можно разделить их на группы:
149+
150+
```markdown
151+
## Параметры {#options}
152+
153+
### Обязательные параметры
154+
155+
`<topic-path>`: Путь топика
156+
157+
### Основные опциональные параметры
158+
159+
`-c VAL`, `--consumer VAL`: Имя читателя топика.
160+
161+
### Другие опциональные параметры
162+
163+
| Имя | Описание |
164+
|-----|----------|
165+
| `--idle-timeout VAL` | Таймаут принятия решения о том что топик пуст. |
166+
```
167+
168+
### 7. Примеры
169+
170+
Всегда добавляйте раздел с примерами использования команды.
171+
172+
**Шаблон раздела примеров:**
173+
174+
```markdown
175+
## Примеры {#examples}
176+
177+
{% include [ydb-cli-profile](../../_includes/ydb-cli-profile.md) %}
178+
179+
[Описание примера]:
180+
```
181+
182+
**Рекомендации по примерам:**
183+
184+
- Начинайте каждый пример с краткого описания того, что он демонстрирует.
185+
- Используйте профиль `quickstart` для примеров: `{{ ydb-cli }} -p quickstart ...`
186+
- Показывайте результаты выполнения команды, если они важны для понимания.
187+
- Группируйте связанные примеры.
188+
- Добавляйте ссылки на связанные команды или статьи в конце раздела, если это уместно.
189+
190+
**Пример простого использования:**
191+
192+
```markdown
193+
Создайте читателя с именем `my-consumer` для [созданного ранее](topic-create.md) топика `my-topic`:
194+
195+
{{ ydb-cli }} -p quickstart topic consumer add \
196+
--consumer my-consumer \
197+
my-topic
198+
```
199+
200+
**Пример с результатом:**
201+
202+
```markdown
203+
Убедитесь, что читатель создан:
204+
205+
{{ ydb-cli }} -p quickstart scheme describe my-topic
206+
207+
Результат:
208+
209+
RetentionPeriod: 2 hours
210+
PartitionsCount: 2
211+
SupportedCodecs: RAW, GZIP
212+
213+
Consumers:
214+
┌──────────────┬─────────────────┬───────────────────────────────┬───────────┐
215+
|| ConsumerName | SupportedCodecs | ReadFrom | Important |
216+
├──────────────┼─────────────────┼───────────────────────────────┼───────────┤
217+
|| my-consumer | RAW, GZIP | Mon, 15 Aug 2022 16:00:00 MSK | 0 |
218+
└──────────────┴─────────────────┴───────────────────────────────┴───────────┘
219+
```
220+
221+
**Пример с несколькими вариантами использования:**
222+
223+
```markdown
224+
* Чтение одного сообщения с выводом в терминал:
225+
226+
{{ ydb-cli }} -p quickstart topic read topic1 -c c1
227+
228+
* Ожидание появления и чтение одного сообщения с записью его в файл:
229+
230+
{{ ydb-cli }} -p quickstart topic read topic1 -c c1 -w -f message.bin
231+
```
232+
233+
## Полный шаблон статьи
234+
235+
Полный шаблон статьи доступен в отдельном файле: [шаблон](https://github.com/ydb-platform/ydb/tree/main/ydb/docs/ru/core/contributor/documentation/_templates/cli-command-template.md). Используйте его как основу при создании документации для новой команды CLI.
236+
237+
## Специальные случаи
238+
239+
### Команды без параметров
240+
241+
Если команда не имеет параметров (кроме глобальных), раздел "Параметры подкоманды" можно опустить.
242+
243+
**Пример:**
244+
245+
```markdown
246+
# Удаление топика
247+
248+
С помощью подкоманды `topic drop` вы можете удалить [созданный ранее](topic-create.md) топик.
249+
250+
Общий вид команды:
251+
252+
{{ ydb-cli }} [global options...] topic drop <topic-path>
253+
254+
* `global options` — [глобальные параметры](commands/global-options.md).
255+
* `topic-path` — путь топика.
256+
257+
Посмотрите описание команды удаления топика:
258+
259+
{{ ydb-cli }} topic drop --help
260+
261+
## Примеры {#examples}
262+
...
263+
```
264+
265+
### Команды с режимами работы
266+
267+
Если команда поддерживает несколько режимов работы, опишите их перед разделом параметров.
268+
269+
**Пример:**
270+
271+
```markdown
272+
Поддерживается три режима работы команды:
273+
274+
1. **Одно сообщение**. Из топика считывается не более одного сообщения.
275+
2. **Пакетный режим**. Сообщения из топика считываются до того момента, пока в топике не закончатся сообщения для обработки.
276+
3. **Потоковый режим**. Сообщения из топика считываются по мере их появления.
277+
```
278+
279+
280+
### Предупреждения об устаревших командах
281+
282+
Если команда устарела, добавьте предупреждение в начале статьи:
283+
284+
```markdown
285+
{% include notitle [warning](../../reference/ydb-cli/_includes/deprecated_command_warning.md) %}
286+
```
287+
288+
## Именование файлов
289+
290+
- Используйте дефисы вместо подчёркиваний: `topic-create.md`, а не `topic_create.md`.
291+
- Имя файла должно соответствовать структуре команды: `topic-consumer-add.md` для команды `topic consumer add`.
292+
- Для простых команд используйте короткие имена: `version.md`, `table-drop.md`.
293+
294+
## Интеграция в документацию
295+
296+
После создания статьи:
297+
298+
1. **Добавьте ссылку в `_includes/commands.md`** — общий список всех команд CLI.
299+
2. **Обновите оглавление** — добавьте статью в соответствующий `toc_i.yaml` или `toc_p.yaml`.
300+
3. **Добавьте перекрёстные ссылки** — обновите связанные статьи, добавив ссылки на новую команду.
301+
4. **Проверьте ссылки** — убедитесь, что все внутренние ссылки корректны и используют относительные пути с суффиксом `.md`.
302+
303+
## Проверка перед публикацией
304+
305+
Перед отправкой pull request убедитесь, что:
306+
307+
- [ ] Статья следует структуре, описанной выше.
308+
- [ ] Все примеры протестированы и работают корректно.
309+
- [ ] Используются правильные переменные: `{{ ydb-cli }}`, `{{ ydb-short-name }}`.
310+
- [ ] Все ссылки корректны и используют относительные пути с `.md`.
311+
- [ ] Статья добавлена в оглавление и список команд.
312+
- [ ] Текст соответствует [руководству по стилю](style-guide.md).
313+
- [ ] Нет опечаток и грамматических ошибок.
314+
315+
## См. также
316+
317+
- [{#T}](style-guide.md) — общее руководство по стилю документации
318+
- [{#T}](structure.md) — структура документации
319+
- [{#T}](review.md) — процесс ревью документации
320+
- [Примеры существующих статей](../../reference/ydb-cli/index.md) — изучите похожие команды для вдохновения
321+

ydb/docs/ru/core/contributor/documentation/index.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,5 @@
1818
- [{#T}](genres.md)
1919
- [Документация GitHub](https://docs.github.com/en)
2020
- [Документация Git](https://git-scm.com/doc)
21-
- [{#T}](guide-to-public-material.md)
21+
- [{#T}](guide-to-public-material.md)
22+
- [{#T}](cli-command-documentation.md)

ydb/docs/ru/core/contributor/documentation/toc_p.yaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,6 @@ items:
88
- name: Жанры
99
href: genres.md
1010
- name: Добавление медиа в публичные материалы
11-
href: guide-to-public-material.md
11+
href: guide-to-public-material.md
12+
- name: Документирование новых команд CLI
13+
href: cli-command-documentation.md

0 commit comments

Comments
 (0)