Генерация
Движок
Что делает движок, как опубликовать в нём шаблон и чем различаются две редакции.
Работа фреймворка заканчивается на пакете. Он отрисовывает ваш документ и упаковывает его; пакет — это шаблон, в котором ещё нет данных получателя. Движок — то, куда этот пакет отправляется, и то, что превращает его в документы.
Три шага
- Сборка. Фреймворк отрисовывает документ и упаковывает его. Это единственный шаг, который выполняется на вашей машине.
- Публикация. Пакет отправляется движку, тот сохраняет его и выдаёт адрес.
- Написание. Ваше приложение вызывает API с набором данных. Движок пишет документ и возвращает его.
Важное следствие: публикация и написание разделены. Пакет вы публикуете, когда меняются формулировки документа, — событие в форме деплоя. API вы вызываете каждый раз, когда кому-то нужен документ, — возможно, постоянно, и при этом не нужны ни шаг сборки, ни workspace.
Почему движка нет в пакете
Движок — это сервис, а не библиотека, и он не входит в npm-пакет. Написание, предпросмотр и упаковка — локальная работа, за которой ничего не стоит, так что установка фреймворка не тянет за собой ничего, что требовало бы ключей API или сети, а версии у них независимые.
Направить workspace на движок
dxcl init my-documents --api-endpoint https://documents.example.com/api/letters
Или настроить без него и решить позже:
dxcl init my-documents --no-api-endpoint
upload.endpoint в docxcelerate.config.json можно править в любой момент, а
пресеты конфигурации позволяют держать локальный,
тестовый и боевой движки рядом.
Что вы публикуете
Артефакт document.json. Статические узлы приходят с уже разрешённым текстом, но
значения времени запроса остаются токенами — именно это позволяет одному
сохранённому пакету обслуживать всех получателей:
{ "kind": "paragraph", "mode": "static", "id": "greeting",
"text": "Dear {{data.applicantName}}," }
Динамические узлы приходят не с текстом, а с промптами:
{ "kind": "paragraph", "mode": "dynamic", "id": "tutor-note",
"prompts": [
{ "kind": "general", "text": "Write two warm, specific sentences…" },
{ "kind": "negative", "text": "Do not restate the offer…" },
{ "kind": "system", "text": "You are an admissions tutor…" }
] }
Две редакции
Своё размещение (бесплатно). Урезанный движок, который вы запускаете сами. Он покрывает ядро конвейера — сохранить пакет, писать из него документы — с сокращённым набором возможностей.
Управляемое облако. Полный движок, размещённый у нас. Пока он не открыт; когда откроется, у него будет бесплатный тариф, для которого нужна только регистрация — без карты и без инфраструктуры, которую пришлось бы поднимать.
Это не одна и та же сборка, поэтому выбирайте по возможностям, а не только по предпочтениям в размещении.
Работа без движка
До того как движок понадобится, можно пройти немалый путь. Написание,
предпросмотр и упаковка в .docx работают локально, так что документ можно
написать, проверить и получить на своей машине, ничего не публикуя.
Движок добавляют тогда, когда документы должен создавать не человек за клавиатурой: по расписанию, из очереди или в ответ на события в вашей собственной системе.