Referenz

Kommandozeile

Jeder Brevier-Befehl und seine Optionen: pdf, html, preview, lint, serve, import, batch, compile, template, scaffold, sample, from-template, licence.

Auf dieser Seite

Community

brevier --version
brevier --help
brevier <befehl> --help
Befehl Was er tut
pdf Setzt eine Vorlage als PDF.
html Setzt eine Vorlage als HTML.
preview Zeigt eine Vorlage im Browser und lädt bei Änderungen neu.
lint Setzt eine Vorlage und listet die Layout- und Schriftprobleme, jedes mit Seite und Zeile des erzeugten HTML.
serve Führt die Engine als HTTP-Dienst oder stdio-Prozess aus.
import Übernimmt Vorlagen aus Word, JasperReports oder BIRT.
batch pdf, batch html Setzt jede Vorlage in einem Ordner.
compile Schreibt das HTML, das aus einer Markdown-Vorlage entsteht.
template Schreibt eine erste Vorlage und Beispieldaten aus einem Schema.
scaffold Schreibt ein Schema, eine erste Vorlage und Beispieldaten aus einem JSON-Datensatz.
sample Schreibt Beispieldaten aus einem Schema, sonst nichts.
from-template Schreibt das Schema, das eine Vorlage braucht.
licence Zeigt Firma, Typ, Schlüssel-ID, Enddatum und Resttage deines Lizenzschlüssels.

pdf

Setzt eine HTML- oder Markdown-Vorlage als PDF.

brevier pdf rechnung.md --data rechnung.json -o rechnung.pdf
Option Bedeutung
-o, --output Die Datei, die entsteht. Pflicht.
--data Eine JSON-Datei mit den Daten.
--theme Ein eingebautes Theme: print-base, web oder din5008.
--style Eine CSS-Datei. Mehrfach möglich; eine spätere Datei gewinnt.
--schema Die Schema-Prüfung: true (Standard, nutzt rechnung.schema.json neben der Vorlage), false der Pfad einer Schema-Datei oder das Schema als JSON-Text.
--base-url Der Ordner oder die URL, woher Bilder und Schriften mit relativem Pfad gelesen werden. Standard: der Ordner der Vorlage.
--debug Schreibt zusätzlich das HTML und CSS, das die Engine bekommen hat, als .debug.html und .debug.css.
--einvoice Bettet die Rechnung zusätzlich als Daten ein, in der Datei factur-x.xml (ZUGFeRD / Factur-X). Siehe unten.

Der Befehl endet mit Exit-Code 1, wenn etwas nicht stimmt: kaputtes JSON, ein fehlendes Feld, ein Schema-Fehler oder eine fehlende CSS-Datei. Die Meldung sagt, was falsch ist, und wo möglich, in welcher Zeile.

E-Rechnung

Jedes PDF, das Brevier schreibt, ist PDF/A-3b. Mit --einvoice enthält das PDF außerdem die Rechnung als XML-Datei nach der Norm EN 16931. Die Software des Empfängers kann sie dann ohne Abtippen verbuchen.

brevier pdf rechnung-zugferd.html --data rechnung.json --einvoice -o rechnung.pdf

Brevier schreibt das XML aus denselben --data wie die Seite. Die Daten müssen dem Rechnungsschema folgen. Bevor Brevier die Datei schreibt, prüft es, ob die Beträge stimmen. Wenn nicht, bricht der Befehl ab und nennt das Feld. Die Vorlage rechnung-zugferd zeigt eine vollständige Rechnung.

html

Setzt eine Vorlage als HTML, mit denselben Optionen wie pdf, außer --einvoice. Das HTML ist Produktausgabe: siehe Ausgabe und Tests.

brevier html rechnung.md --data rechnung.json -o rechnung.html

preview

Zeigt eine Vorlage im Browser an und lädt die Seite automatisch neu, sobald Sie Vorlage, Daten oder Stylesheet auf der Festplatte speichern.

brevier preview rechnung.html --data rechnung.json --port 5151 --open
Option Bedeutung
<vorlagendatei> Eingabedatei als HTML oder Markdown. Pflicht.
--data JSON-Datei mit den Daten. Standard: sample.json neben der Vorlage, falls vorhanden.
--style, --css Zusätzliche CSS-Stylesheets. Mehrfach möglich.
--theme Ein eingebautes Theme: print-base, web oder din5008.
--port Port für den Server. Standard: 5151.
--open, --no-open Öffnet den Browser beim Start oder nicht. Standard: --no-open.

lint

Setzt eine Vorlage und listet die Probleme auf den Seiten: Text, der breiter ist als sein Behälter (overflow), eine Tabellenspalte, die schmaler ist als ihre angegebene Mindestbreite (table), ein Zeichen, das der Schrift fehlt (glyph), eine Überschrift allein am Seitenende (orphan), eine Tabellenzeile, die über einen Seitenumbruch reißt (split), und Trennzeilen, die die Trennregeln verletzen (hyphens). Es schreibt kein PDF. Eine Spalte gibt ihre Mindestbreite mit data-min-width auf ihrem <col> an: siehe die Lint-Anleitung.

brevier lint rechnung.html --data rechnung.json --debug-dir out/

Jedes Problem hat eine Zeile: die Seite, die Art, was falsch ist, und hinter → die Datei und Zeile des erzeugten HTML, die die Ursache enthält.

rechnung.html
  page 2    overflow  "DE893704004405320130…" wider than its box (106.1 > 38.4 mm)  → out/rechnung.debug.html:412
  → 1 problem. exit code 1
debug file: out/rechnung.debug.html (holds the document's data)
Option Bedeutung
<input_file> Die Vorlage als .html oder .md. Pflicht.
--data JSON-Datei mit den Daten.
--theme Ein eingebautes Theme: print-base, web oder din5008.
--style Eine CSS-Datei. Mehrfach möglich; eine spätere Datei gewinnt.
--debug-dir Ordner für das erzeugte HTML. Standard: der Ordner der Vorlage.
--schema Die Schema-Prüfung der Daten: true (Standard, nutzt <stem>.schema.json), false, der Pfad einer Schema-Datei oder das Schema als JSON-Text.
--format text (Standard) oder json. Mit json ist die Ausgabe eine Liste mit einem Objekt je Problem, mit den Schlüsseln page, kind, message, file und line.

Der Befehl schreibt immer rechnung.debug.html und rechnung.debug.css, weil ein Problem ohne die Datei nicht sagt, wo es liegt. Die Dateien enthalten die Daten des Dokuments: Geben Sie sie nicht weiter, wenn die Daten privat sind.

Exit-Code 0: keine Probleme. Exit-Code 1: mindestens ein Problem, oder eine Vorlage, die sich nicht setzen lässt. Exit-Code 2: ein falscher Dateityp oder --format.

serve

Führt die Engine als HTTP-Dienst oder stdio-Prozess aus. Die Client-Bibliotheken verbinden sich im Produktivbetrieb mit diesem Dienst.

brevier serve --templates templates/ --port 8080
Option Bedeutung
--templates Ordner mit Unterordnern als Vorlagen, jeweils als <name>/<name>.html oder .md. Pflicht.
--host Adresse, auf der der Dienst lauscht. Der Standard nimmt nur Verbindungen von diesem Rechner an. Der Dienst hat weder TLS noch Anmeldung: Stellen Sie ein Gateway davor, bevor Sie ihn freigeben. Standard: 127.0.0.1.
--port Port für den Dienst. Standard: 8080.
--allowed-host Ein Hostname, außer diesem Rechner, den eine Anfrage im Host-Header nutzen darf. Nötig für den Namen, den ein Gateway oder ein Container-Netz nutzt. Kann mehrfach stehen. Jeder andere Name bekommt 403.
--stdio Liest eine JSON-Anfrage pro Zeile von der Standardeingabe und schreibt eine Antwort pro Zeile auf die Standardausgabe.

import

Übernimmt bestehende Vorlagen aus Word (.docx), JasperReports (.jrxml) oder BIRT (.rptdesign) und erzeugt eine HTML-Vorlage, ein CSS-Stylesheet und ein JSON-Schema. Ein Import von .jrxml oder .rptdesign schreibt auch sample.json. Für jedes Element, das er weglässt, gibt er eine Zeile Not converted: line N: <Element> aus. Vorlage importieren listet, was er umwandelt und nennt.

brevier import brief.docx -o templates/brief
Option Bedeutung
<eingabedatei> Zu importierende Datei (Word, JasperReports oder BIRT). Pflicht. Eine .pdf-Datei wird angenommen, aber es wird keine Datei geschrieben: der AcroForm-Import ist geplant.
-o, --output Ausgabeordner für erzeugte Vorlagen und Schemata.
--force Überschreibt vorhandene Vorlagendateien. Ohne die Option lehnt der Import das ab.

batch

Setzt jede Vorlage in einem Ordner und seinen Unterordnern.

brevier batch pdf vorlagen/ -o ausgabe/
brevier batch html vorlagen/ -o ausgabe/ --pattern "*.md"

Für jede Vorlage nimmt Brevier eine JSON-Datei mit demselben Namen als Daten, wenn es eine gibt: aus rechnung.html und rechnung.json wird ausgabe/rechnung.pdf. Die Ordnerstruktur bleibt erhalten.

Option Bedeutung
-o, --output Der Ausgabeordner. Pflicht.
--pattern Welche Dateien Vorlagen sind. Standard: *.html.
--debug Wie bei pdf.

compile

Schreibt das HTML, das aus einer Markdown-Vorlage entsteht, neben sie. Siehe Vorlagen.

brevier compile rechnung.md
Option Bedeutung
--force Ersetzt die HTML-Datei, wenn es sie schon gibt.

template

Schreibt eine erste Vorlage, ein Stylesheet und Beispieldaten aus einem Schema. Siehe Schema und Code.

brevier template --schema rechnung.schema.json
Option Bedeutung
--schema Die Schema-Datei. Pflicht. Ihr Name vor .schema.json benennt die Dateien.
--format html (Standard) oder md.
--theme Das Theme, das die Vorlage nennt. Standard: print-base.
--force Ersetzt Dateien, die es schon gibt.

scaffold

Schreibt ein Schema, eine erste Vorlage und Beispieldaten aus einem JSON-Datensatz, zum Beispiel aus einer echten Rechnung Ihres Systems.

brevier scaffold --from rechnung.json
Option Bedeutung
--from Die JSON-Datei mit einem Datensatz. Pflicht.
--name Der Basisname der Dateien. Standard: der Name der --from-Datei.
--format html (Standard) oder md.
--theme Das Theme, das die Vorlage nennt. Standard: print-base.
--force Ersetzt Dateien, die es schon gibt.

Es schreibt rechnung.schema.json, rechnung.html, rechnung.css und sample.json.

sample

Schreibt Beispieldaten aus einem Schema. Es schreibt und ändert weder eine Vorlage noch ein Stylesheet.

brevier sample --schema rechnung.schema.json
Option Bedeutung
--schema Die Schema-Datei. Pflicht.
-o, --output Die Datei, die geschrieben wird. Standard: sample.json neben dem Schema.
--force Ersetzt die Datei, wenn es sie schon gibt.

from-template

Schreibt das Schema, das eine Vorlage braucht, aus den {{ }}-Tags darin.

brevier from-template police.html
Option Bedeutung
--lang Schreibt zusätzlich Java-Klassen, sample.json und ein Beispiel: java8 oder java17.
--package Mit --lang: das Java-Paket, zum Beispiel com.acme.police.
--force Ersetzt Dateien, die es schon gibt.

licence

Zeigt den Lizenzschlüssel, den Brevier aus BREVIER_LICENCE_KEY liest: die Firma, den Typ (production oder trial), die Schlüssel-ID, das Enddatum und die Resttage. Der Befehl läuft auch ohne Schlüssel. Bei einem fehlenden, ungültigen oder abgelaufenen Schlüssel nennt er den Grund und endet mit Exit-Code 1.

brevier licence

Jeder andere Befehl außer --help und --version endet mit Exit-Code 1 und schreibt keine Datei, solange der Schlüssel nicht gültig ist. Einen Testschlüssel für 30 Tage gibt es unter brevier.dev/pricing.