Appearance
DOCX Generator Runner
Описание
runner-docx-generator — раннер для генерации DOCX-документов из HTML-шаблонов с подстановкой переменных. Принимает HTML-разметку, подставляет переменные и конвертирует результат в формат DOCX.
Возможности
- Генерация DOCX из HTML-шаблонов
- Подстановка переменных по маске
- Автоматическая конвертация HTML → DOCX
- Загрузка готового документа как артефакт
Конфигурация
Общие параметры runner-common
См. Общая документация.
Специфичные параметры
DOCX Generator не имеет специфичных параметров — используются только общие параметры runner-common.
Семантика команды
Command
Содержит HTML-шаблон документа. Поддерживается полная HTML-разметка:
html
<!DOCTYPE html>
<html>
<body>
<h1>Отчет за {{ year }}</h1>
<p>Пользователь: {{ userName }}</p>
<table>
<tr><th>ID</th><th>Название</th></tr>
<tr><td>{{ item_id }}</td><td>{{ item_name }}</td></tr>
</table>
</body>
</html>Variables
Список переменных для подстановки. Каждая переменная имеет name и value:
Variables: [
{ name: "year", value: "2025" },
{ name: "userName", value: "Иван Иванов" },
{ name: "item_id", value: "123" },
{ name: "item_name", value: "Товар" }
]Формат подстановки
Переменные подставляются по маске :
{{ year }} → 2025
{{ userName }} → Иван ИвановДопустимые имена переменных: буквы, цифры и подчеркивание, начинаются с буквы или подчеркивания.
Результат
Артефакт
- Имя файла:
document.docx - Формат: Microsoft Word (DOCX)
- Содержимое: сконвертированный HTML с подставленными переменными
Статус команды
json
{
"job_id": "command-id",
"status": "completed",
"output": "DOCX artifact generated: document.docx",
"artifact_id": "artifact-id"
}Примеры использования
Простой документ
Command:
html
<h1>Договор</h1>
<p>Дата: {{ date }}</p>
<p>Клиент: {{ client_name }}</p>Variables:
date: "01.01.2025"
client_name: "ООО Ромашка"Табличный отчет
Command:
html
<h2>Отчет о продажах</h2>
<table border="1">
<tr>
<th>Продукт</th>
<th>Количество</th>
<th>Сумма</th>
</tr>
{{ table_rows }}
</table>
<p>Итого: {{ total }}</p>Variables:
table_rows: "<tr><td>Товар А</td><td>10</td><td>1000</td></tr>"
total: "1000 руб."Документ с условиями
Используйте HTML/CSS для условного отображения:
html
<h1>Отчет</h1>
{{#if premium}}
<p class="premium">Премиум клиент</p>
{{/if}}
<p>Статус: {{ status }}</p>Процесс генерации
- Получение HTML-шаблона из
Command - Подстановка переменных по маске
- Конвертация HTML в DOCX
- Сохранение как
document.docx - Загрузка артефакта в хранилище
- Возврат
artifact_idв статусе команды
Ограничения
- Поддерживается базовая HTML-разметка
- Сложные CSS-стили могут конвертироваться с ограничениями
- JavaScript не выполняется
- Изображения не поддерживаются (только текст и разметка)
Остановка
Корректно обрабатывает SIGINT и SIGTERM.