---
title: Изучите шаблоны Handlebar с Code2Prompt
description: Поймите, как использовать и создавать пользовательские шаблоны Handlebars для генерации подсказок.
---

import { Card } from "@astrojs/starlight/components";

<Card title="Обзор урока">
  Этот урок демонстрирует, как использовать и создавать пользовательские шаблоны
  Handlebars для генерации подсказок в CLI `code2prompt`.
</Card>

---

## Предварительные требования

Убедитесь, что у вас установлен `code2prompt`. Если вы еще не установили его, обратитесь к [Руководству по установке](/docs/how_to/install).

---

## Что такое шаблоны Handlebars?

[Handlebars](https://handlebarsjs.com/) — это популярный механизм шаблонов, который позволяет создавать динамические шаблоны с помощью заполнителей.
В `code2prompt` шаблоны Handlebars используются для форматирования сгенерированных подсказок на основе структуры codebase и переменных, определенных пользователем.

## Как использовать шаблоны Handlebars?

Вы можете использовать эти шаблоны, передав флаг `-t` или `--template`, за которым следует путь к файлу шаблона. Например:

```sh
code2prompt path/to/codebase -t templates/document-the-code.hbs
```

## Синтаксис шаблонов

Шаблоны Handlebars используют простой синтаксис для заполнителей и выражений. Вы будете помещать переменные в двойные фигурные скобки `{{variable_name}}`, чтобы включить их в сгенерированную подсказку.
`Code2prompt` предоставляет набор переменных по умолчанию, которые вы можете использовать в своих шаблонах:

- `absolute_code_path`: Абсолютный путь к codebase.
- `source_tree`: Дерево исходного кода codebase, которое включает все файлы и директории.
- `files`: Список файлов в codebase, включая их пути и содержимое.
- `git_diff`: Разница git codebase, если применимо.
- `code`: Содержимое кода файла, который обрабатывается.
- `path`: Путь файла, который обрабатывается.

Вы также можете использовать помощники Handlebars для выполнения условной логики, циклов и других операций в ваших шаблонах. Например:

```handlebars
{{#if files}}
  {{#each files}}
    Файл:
    {{this.path}}
    Содержимое:
    {{this.content}}
  {{/each}}
{{else}}
  Файлы не найдены.
{{/if}}
```

---

## Существующие шаблоны

`code2prompt` поставляется с набором встроенных шаблонов для общих случаев использования. Вы можете найти их в директории [`templates`](https://github.com/mufeedvh/code2prompt/tree/main/crates/code2prompt-core/templates).

### [`document-the-code.hbs`](https://github.com/mufeedvh/code2prompt/tree/main/crates/code2prompt-core/templates/document-the-code.hbs)

Используйте этот шаблон для генерации подсказок для документирования кода. Он добавит комментарии документации ко всем публичным функциям, методам, классам и модулям в codebase.

### [`find-security-vulnerabilities.hbs`](https://github.com/mufeedvh/code2prompt/tree/main/crates/code2prompt-core/templates/find-security-vulnerabilities.hbs)

Используйте этот шаблон для генерации подсказок для поиска потенциальных уязвимостей безопасности в codebase. Он будет искать общие проблемы безопасности и предоставлять рекомендации по их устранению или смягчению.

### [`clean-up-code.hbs`](https://github.com/mufeedvh/code2prompt/tree/main/crates/code2prompt-core/templates/clean-up-code.hbs)

Используйте этот шаблон для генерации подсказок для очистки и улучшения качества кода. Он будет искать возможности для улучшения читаемости, соблюдения лучших практик, эффективности, обработки ошибок и многого другого.

### [`fix-bugs.hbs`](https://github.com/mufeedvh/code2prompt/tree/main/crates/code2prompt-core/templates/fix-bugs.hbs)

Используйте этот шаблон для генерации подсказок для исправления ошибок в codebase. Он поможет диагностировать проблемы, предоставить предложения по исправлению и обновить код с предложенными исправлениями.

### [`write-github-pull-request.hbs`](https://github.com/mufeedvh/code2prompt/tree/main/crates/code2prompt-core/templates/write-github-pull-request.hbs)

Используйте этот шаблон для создания описания pull request GitHub в формате markdown, сравнивая разницу git и журнал git двух веток.

### [`write-github-readme.hbs`](https://github.com/mufeedvh/code2prompt/tree/main/crates/code2prompt-core/templates/write-github-readme.hbs)

Используйте этот шаблон для генерации высококачественного файла README для проекта, подходящего для размещения на GitHub. Он проанализирует codebase, чтобы понять его цель и функциональность, и сгенерирует содержимое README в формате Markdown.

### [`write-git-commit.hbs`](https://github.com/mufeedvh/code2prompt/tree/main/crates/code2prompt-core/templates/write-git-commit.hbs)

Используйте этот шаблон для генерации коммитов git из staged файлов в директории git. Он проанализирует codebase, чтобы понять его цель и функциональность, и сгенерирует содержимое сообщения коммита git в формате Markdown.

### [`improve-performance.hbs`](https://github.com/mufeedvh/code2prompt/tree/main/crates/code2prompt-core/templates/improve-performance.hbs)

Используйте этот шаблон для генерации подсказок для улучшения производительности codebase. Он будет искать возможности для оптимизации, предоставлять конкретные предложения и обновлять код с изменениями.

## Переменные, определенные пользователем

`code2prompt` поддерживает использование переменных, определенных пользователем, в шаблонах Handlebars. Любые переменные в шаблоне, которые не являются частью контекста по умолчанию (`absolute_code_path`, `source_tree`, `files`), будут рассматриваться как переменные, определенные пользователем.

Во время генерации подсказок `code2prompt` предложит пользователю ввести значения для этих переменных, определенных пользователем. Это позволяет для дальнейшей настройки сгенерированных подсказок на основе пользовательского ввода.

Например, если ваш шаблон включает `{{challenge_name}}` и `{{challenge_description}}`, вам будет предложено ввести значения для этих переменных при запуске `code2prompt`.

Эта функция позволяет создавать многоразовые шаблоны, которые могут быть адаптированы к разным сценариям на основе информации, предоставленной пользователем.

> Эта страница была автоматически переведена для вашего удобства. Обратитесь к английской версии для получения оригинального содержания.
