Dev-Kit im Überblick
Das Dev-Kit umfasst alles, womit Sie auf Ihrem eigenen Rechner an Vorlagen arbeiten: die lokale Vorschau, die Validierung und die Tests der CLI, die Test-Helfer für Vitest und Jest und das Engine-Paket darunter. Für einen geführten Einstieg lesen Sie Vorlagen als Code.
Offline und Cloud
| Schicht | Braucht einen API-Schlüssel | Was sie tut |
|---|---|---|
| Offline | Nein | Vorlagen mit Ihren Daten kompilieren, Diagnosen melden, paginierte Vorschau mit Hot-Reload, HTML-Snapshot-Tests; Word- und PowerPoint-Vorlagen füllen und ihre XML-Snapshots vergleichen |
| Cloud | Ja; ein Test-Schlüssel reicht und ist kostenlos | Das echte Chromium-Rendering zu PDF oder Bild, templates pull und push, CI-Vorschauen; das PDF eines gefüllten Word- oder PowerPoint-Dokuments (ab dem Starter-Plan) |
Der Schlüssel, den formfeed login speichert, ist ein Live-Schlüssel; seine Renderings zählen also gegen Ihren Plan. Für kostenlose Renderings speichern Sie einen Test-Schlüssel mit formfeed login --api-key ff_test_… oder setzen FORMFEED_API_KEY. Siehe Installieren und anmelden.
Die Offline-Schicht nutzt @formfeed/engine, dasselbe Paket, das der Web-Editor und die Render-Server verwenden; lokale Diagnosen und Vorschauen entsprechen also dem, was die API liefert. Nur der finale Druck passiert in der Cloud: Liefe Chromium mit den Produktionsschriften und -einstellungen auf jedem Laptop, würde die lokale Ausgabe in kleinen, verwirrenden Details von der Produktion abweichen. Dasselbe gilt für Word- und PowerPoint-Vorlagen: Die CLI füllt das Dokument lokal und wandelt es auf den Formfeed-Servern mit deren Schriften in PDF um.
Pakete
| Paket | Wofür Sie es nutzen |
|---|---|
formfeed | Die CLI: init, dev, validate, test, render, templates push und mehr |
@formfeed/testing | Matcher und loadTemplate() für Vitest und Jest, für HTML-Vorlagen |
@formfeed/engine | Die Template-Engine, für Ihre eigenen Tools |
@formfeed/devkit | Was CLI und Test-Helfer gemeinsam nutzen: Vorlagenordner und Projektkonfiguration lesen, lokal rendern. Nutzen Sie es, wenn Sie eigene Tools rund um Vorlagenordner bauen. |
Alle vier Pakete brauchen Node.js 22 oder neuer; @formfeed/engine läuft auch im Browser. @formfeed/devkit arbeitet auf den Ordnern, die die Projektstruktur beschreibt, zum Beispiel:
import {
findProject,
readTemplate,
defaultData,
diagnose,
renderLocal,
} from '@formfeed/devkit';
const project = findProject(process.cwd()); // die nächste formfeed.json aufwärts, oder null
if (!project) throw new Error('no formfeed.json here or above');
const tpl = readTemplate(project, 'invoice'); // templates/invoice als ein Objekt
const { data } = defaultData(tpl); // data/default.json, sonst der erste Datensatz
console.log(diagnose(tpl, data)); // die Diagnosen des Editors
const { document } = await renderLocal(project, tpl, data, { mode: 'print' }); // das zusammengesetzte HTML
Seine Funktionen werfen DevkitError mit einem code von usage oder validation, den die CLI in die Exit-Codes 2 und 1 übersetzt.
Der Arbeitszyklus
formfeed dev invoice # Dateien bearbeiten, Vorschau beobachten
formfeed validate # auch in einem Pre-Commit-Hook
formfeed test # HTML-Snapshots aller Datensätze
formfeed render invoice --out out.pdf
git commit -am "Rechnung: EPC-QR-Code ergänzt"
git push # CI validiert, rendert Vorschauen und veröffentlicht
Geplant
Noch nicht verfügbar:
formfeed dev --local-chromiumundformfeed render --local-chromium: ein näherungsweiser Druck mit einem bereits auf Ihrem Rechner installierten Chromium, deutlich als nicht byteidentisch gekennzeichnet.- Pixel-Snapshots (
toMatchRenderSnapshot) neben den HTML-Snapshots.
Seiten
- Projektstruktur: wie eine Vorlage auf Dateien abgebildet wird.
- Dev-Server:
formfeed devim Detail. - Tests: Matcher, Snapshots und CI.
- Engine-Paket: die API der Engine.