Zum Inhalt springen
Docxcelerate

CLI

Befehle

Jeder dxcl-Befehl, mit den Flags, auf die es ankommt.

Die CLI heißt dxcl und steckt im Paket docxcelerate. Rufen Sie sie einmalig mit npx docxcelerate <command> auf, oder installieren Sie das Paket und rufen dxcl direkt auf — siehe Hier anfangen.

dxcl init

Legt einen Workspace an und installiert dessen Abhängigkeiten.

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

Ohne Argumente aufgerufen, führt der Befehl durch eine geführte Einrichtung, die nach dem Template und dem API-Endpoint fragt.

FlagWirkung
--dir <path>Den Workspace innerhalb von <path> anlegen
--blankDas Beispieldokument auslassen
--official-serverupload.endpoint auf die offizielle Engine zeigen lassen
--api-endpoint <url>upload.endpoint auf Ihren eigenen Dienst zeigen lassen
--no-api-endpointupload.endpoint leer lassen

dxcl document new

Legt ein Dokumentprojekt innerhalb eines Workspace an.

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

Schreibt documents/tenancy-renewal/ mit document.project.ts, document.tsx, document-style.ts, preview-data.ts, types.ts sowie den Verzeichnissen derivers/ und nodes/. Wofür jede Datei da ist, steht unter Dokumentprojekte.

dxcl document node

Erzeugt eine Node-Komponente und registriert sie.

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
FlagWerte
--typeparagraph, image, graph

Der Generator schreibt nodes/<name>.node.tsx und aktualisiert nodes/index.ts. Er platziert den Node nicht in Ihrem Template — fügen Sie ihn in document.tsx an der Stelle ein, an die er im Dokument gehört.

Der erzeugte Node beginnt mit seinem Inhalt. Generiert wird ein Node dadurch, dass Prompts auf ihm gesetzt werden, und das entscheidet eine Komponente mit Daten in der Hand — hier gibt es also nichts zu wählen. Siehe Nodes schreiben.

dxcl list

Gibt die Registry aus: jedes Theme und jede vorgefertigte Komponente, die das Paket mitbringt.

dxcl list
dxcl list themes
dxcl list components

Derselbe Katalog lässt sich unter Themes und Komponenten durchblättern, wo jeder Eintrag eine Vorschau trägt, die von demselben Renderer erzeugt wurde, den auch die CLI mitbringt.

dxcl show

Gibt einen Eintrag vollständig aus — was er ist, was er liest und wo seine Dateien landen.

dxcl show slate-report
dxcl show payment-summary

dxcl add

Installiert Themes und Komponenten in ein Dokumentprojekt.

dxcl add slate-report
dxcl add letterhead signature-block
dxcl add payment-summary --project documents/arrears-notice
FlagWirkung
--project <dir>Das Dokumentprojekt, in das installiert wird
--forceBereits vorhandene Dateien überschreiben

Ohne --project nimmt der Befehl das Dokumentprojekt, in dem Sie stehen, oder das einzige unterhalb von documents/. Gibt es mehrere und ist keines gemeint, sagt er das, statt zu raten.

Eine Komponente wird als Quelltext hineinkopiert — nodes/<name>.node.tsx — und aus nodes/index.ts re-exportiert. Danach ist es Ihre Datei: sie hat keine Version, sie wird nicht hinter Ihrem Rücken aktualisiert, und sie zu bearbeiten ist der vorgesehene nächste Schritt und kein Fork. Was der Befehl nicht tut, ist Ihren Datentyp zu bearbeiten — die Felder, die die Komponente liest, werden deshalb zum Nachtragen ausgegeben. Sie in document.tsx zu platzieren, bleibt ebenfalls Ihnen überlassen, aus demselben Grund, aus dem der Node-Generator das nicht anfasst.

Ein Theme wird als document-style.ts des Projekts geschrieben, das document.project.ts ohnehin durchreicht — die nächste Vorschau ist also themed. Die Datei importiert das Theme und spreizt es, sodass das Überschreiben eines einzelnen Rands eine Zeile ist und kein Fork:

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

Ein zweites Theme ersetzt eine document-style.ts, die niemand angefasst hat. Sobald Sie hineingeschrieben haben, braucht das Ersetzen --force — der Sinn der Datei ist ja, dass sie Ihnen gehört.


Diese Seite auf GitHub bearbeiten ↗ Diese Seite als Markdown lesen