|
| 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 | + |
0 commit comments