Naar de inhoud
Docxcelerate

Begin hier

Documentprojecten

De bestanden waaruit één document bestaat, waar elk verantwoordelijk voor is, en de configuratie eromheen.

Een workspace bevat één documentproject per document. Elk is een map onder documents/ met één enkel entrypoint, zodat een document als één geheel te verplaatsen, te kopiëren of te reviewen is.

Maak er een

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

Draai het zonder argumenten om naar de naam en titel gevraagd te worden.

documents/tenancy-renewal/
  document.project.ts
  document.tsx
  document-style.ts
  preview-data.ts
  types.ts
  derivers/
    index.ts
  nodes/
    greeting.node.tsx
    intro.node.tsx
    index.ts

De opsplitsing is precies het punt. Elk bestand beantwoordt één vraag:

BestandWat erin zit
types.tsHet datacontract — wat een document nodig heeft om geschreven te worden
preview-data.tsEén invulling van dat contract, voor de preview
document.tsxAlleen structuur: welke nodes, in welke secties, in welke volgorde
nodes/Eén component per node, plus een index.ts die ze exporteert
document-style.tsLettertypen, witruimte en marges voor de ingepakte .docx
derivers/index.tsBenoemde functies die de engine per document uitvoert
document.project.tsKnoopt het bovenstaande aan elkaar en benoemt het document

Het entrypoint

import { defineDocumentProject } from "docxcelerate/document";
import { derivers } from "./derivers/index.ts";
import { documentTemplate } from "./document.tsx";
import { documentStyle } from "./document-style.ts";
import { previewData } from "./preview-data.ts";
import type { DocumentData } from "./types.ts";

export default defineDocumentProject<DocumentData>({
  id: "tenancy-renewal",
  name: "Tenancy Renewal",
  version: "0.1.0",
  template: documentTemplate,
  previewData,
  derivers,
  style: documentStyle,
  previewOptions: {
    availableTokens: 800,
  },
});
VeldWaar het over beslist
idHoe het document geadresseerd wordt, in artefacten en door een engine
nameWat een mens in de preview-app ziet
versionWordt in elk artefact van dit project gestempeld
templateDe boom, uit document.tsx
previewDataWaartegen de preview oplost
deriversWaarden die per document worden berekend in plaats van per build
styleDe stijl die bij het inpakken wordt toegepast
previewOptions.availableTokensHet budget dat useAvailableTokens meldt

De preview-app vindt projecten door te globben op document.project.ts, dus een nieuw document verschijnt in de keuzelijst zodra het bestaat. Er wordt niets geregistreerd.

Houd de previewdata eerlijk

preview-data.ts is de enige data waartegen het grootste deel van een document ooit gebouwd zal worden, en dus meer aandacht waard dan het meestal krijgt:

import type { DocumentData } from "./types.ts";

export const previewData: DocumentData = {
  recipientName: "Avery",
  city: "Berlin",
};

Korte namen en verzonnen plaatsnamen verbergen lay-outproblemen die echte data juist blootleggen. Gebruik de langste naam en het grootste bedrag dat je echt verwacht.

Workspaceconfiguratie

docxcelerate.config.json staat bovenin de workspace en geldt voor elk document erin. Het bewaart benoemde presets voor build- en uploadgedrag:

{
  "schemaVersion": "docxcelerate.config/v0",
  "activePreset": "local",
  "presets": {
    "local": {
      "build": { "outDir": "build" },
      "upload": { "endpoint": "", "method": "POST", "headers": {}, "body": "document" }
    }
  }
}

activePreset kiest welke geldt, en zo staan een lokale opzet en een staging-engine naast elkaar zonder tussen twee runs de configuratie te bewerken. Met een lege upload.endpoint bouwt alles gewoon — je krijgt artefacten op schijf in plaats van een voltooid document.

Workspace en config documenteert elk veld, en buildartefacten behandelt wat een build wegschrijft.

Hoe nu verder

  • Templates — berekende structuur, herbruikbare onderdelen, en wat er verandert bij publiceren
  • De engine — een document publiceren en eruit schrijven
  • Commando’s — elke CLI-vlag

Deze pagina bewerken op GitHub ↗