Перейти к содержимому
Docxcelerate

CLI

Команды

Каждая команда dxcl и флаги, которые имеют значение.

CLI называется dxcl и поставляется внутри пакета docxcelerate. Запустите её разово через npx docxcelerate <command> или установите пакет и вызывайте dxcl напрямую — см. Начните отсюда.

dxcl init

Создаёт workspace и устанавливает его зависимости.

dxcl init my-documents
dxcl init my-documents --dir workspaces
dxcl init my-documents --blank

Запустите без аргументов, чтобы пройти пошаговую настройку, которая спросит шаблон и адрес API.

ФлагДействие
--dir <path>Создать workspace внутри <path>
--blankПропустить документ-пример
--official-serverНаправить upload.endpoint на официальный движок
--api-endpoint <url>Направить upload.endpoint на ваш собственный сервис
--no-api-endpointОставить upload.endpoint пустым

dxcl document new

Создаёт проект документа внутри workspace.

dxcl document new tenancy-renewal --title "Tenancy Renewal"

Пишет documents/tenancy-renewal/ с файлами document.project.ts, document.tsx, document-style.ts, preview-data.ts, types.ts и каталогами derivers/ и nodes/. О том, за что отвечает каждый файл, — проекты документов.

dxcl document node

Генерирует компонент узла и регистрирует его.

dxcl document node documents/tenancy-renewal next-steps --type paragraph
dxcl document node documents/tenancy-renewal signature  --type image
dxcl document node documents/tenancy-renewal rent-trend --type graph
ФлагЗначения
--typeparagraph, image, graph

Генератор пишет nodes/<name>.node.tsx и обновляет nodes/index.ts. Он не размещает узел в вашем шаблоне — добавьте его в document.tsx в то место документа, которому он принадлежит.

Записанный узел начинается со своего содержимого. Генерируемым узел делают заданные на нём промпты, а это компонент решает уже с данными на руках — так что выбирать здесь нечего. См. как писать узлы.

dxcl list

Печатает реестр: все темы и все готовые компоненты, которые поставляются с пакетом.

dxcl list
dxcl list themes
dxcl list components

Тот же каталог можно просмотреть в разделах темы и компоненты, где у каждой записи есть предпросмотр, построенный тем же рендерером, который поставляется с CLI.

dxcl show

Печатает одну запись целиком — что это, что она читает и куда лягут её файлы.

dxcl show slate-report
dxcl show payment-summary

dxcl add

Устанавливает темы и компоненты в проект документа.

dxcl add slate-report
dxcl add letterhead signature-block
dxcl add payment-summary --project documents/arrears-notice
ФлагДействие
--project <dir>Проект документа, в который устанавливать
--forceПерезаписать файлы, которые уже есть

Без --project команда берёт проект документа, в котором вы находитесь, или единственный внутри documents/. Если проектов несколько и ни один не подразумевается, она скажет об этом, а не станет гадать.

Компонент копируется как исходный код — nodes/<name>.node.tsx — и реэкспортируется из nodes/index.ts. Дальше это ваш файл: у него нет версии, его никогда не обновят за вашей спиной, а править его — предполагаемый следующий шаг, а не форк. Чего команда не делает, так это не правит ваш тип данных, поэтому поля, которые читает компонент, печатаются, чтобы вы их добавили. Разместить его в document.tsx тоже вам, по той же причине, по которой генератор узлов этого не трогает.

Тема записывается как document-style.ts проекта, который document.project.ts и так пробрасывает, — значит, следующий предпросмотр уже будет в теме. Файл импортирует тему и разворачивает её, так что переопределить один отступ — это строка, а не форк:

export const documentStyle: DocumentStyle = themeStyle(slateReportTheme, {
  page: { margins: { topMm: 20 } },
});

Установка второй темы заменяет document-style.ts, которого никто не касался. Как только вы написали в него сами, для замены понадобится --force — весь смысл файла в том, что он ваш.


Изменить эту страницу на GitHub ↗ Читать эту страницу в Markdown