Zum Inhalt springen
Docxcelerate

Projekte

Workspace und Config

Wie ein angelegter Workspace aufgebaut ist und was die Config-Presets steuern.

dxcl init erzeugt ein gewöhnliches Vite-Projekt. Daran ist nichts magisch — Sie können es in Ihrem Editor öffnen, Abhängigkeiten ergänzen und es committen wie jedes andere Repository.

my-documents/
  docxcelerate.config.json
  index.html
  package.json
  preview/
    main.ts
    styles.css
  vite.config.ts
  tsconfig.json
  documents/

documents/ enthält ein Verzeichnis je Dokumentprojekt. Alles andere ist die Vorschau-App, die mit npm run dev läuft.

Config-Presets

docxcelerate.config.json speichert benannte Presets für das Build- und Upload-Verhalten:

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

activePreset wählt aus, welches gilt. Presets sind der Mechanismus, um eine lokale Einrichtung und einen Staging- oder Produktions-Endpoint nebeneinander zu haben, ohne zwischen Läufen die Konfiguration zu bearbeiten:

{
  "activePreset": "local",
  "presets": {
    "local": { "build": { "outDir": "build" }, "upload": { "endpoint": "" } },
    "staging": {
      "build": { "outDir": "build" },
      "upload": {
        "endpoint": "https://documents.staging.example.com/api/letters",
        "method": "POST",
        "headers": { "Authorization": "Bearer ${LETTERS_TOKEN}" },
        "body": "document"
      }
    }
  }
}
FeldBedeutung
build.outDirWohin Artefakte geschrieben werden, relativ zum Dokumentverzeichnis
upload.endpointDer Generierungs-Endpoint; leer schaltet den Upload ab
upload.methodHTTP-Methode, normalerweise POST
upload.headersWerden mit der Upload-Anfrage gesendet
upload.bodyWelches Artefakt gesendet wird — document ist das für die Anfragezeit

Build & Upload ist in der Vorschau-Oberfläche nur aktiv, wenn das aktive Preset einen nicht leeren upload.endpoint hat. Ist er leer, wird trotzdem alles gebaut — Sie bekommen dann eben Artefakte auf der Platte statt eines fertigen Dokuments.

Aufbau eines Dokumentprojekts

documents/offer-of-admission/
  document.project.ts
  document-style.ts
  document.tsx
  preview-data.ts
  types.ts
  nodes/
    index.ts

Die Aufteilung ist der Punkt: types.ts ist der Vertrag, preview-data.ts eine Instanz davon, document.tsx ist reine Struktur, und jeder Node ist ein kleines Modul unter nodes/. Dokumente werden lang, und ein Template, das seine Prosa einbettet, wird schnell unlesbar.


Diese Seite auf GitHub bearbeiten ↗