Referenz

Feldtypen

Die vier Feldtypen von Brevier, was jeder mit Leerraum und Markup macht, und wie ein Schema sie festlegt.

Auf dieser Seite

Community

Ein Feldtyp legt fest, was in einem Wert stehen darf. Er legt auch fest, was mit Leerraum und Markup geschieht, bevor der Wert auf die Seite kommt. text ist der Standard.

Feldtyp Eingabe Ausgabe Wirkung
text "Anna <b>Berg</b>\n" Anna &lt;b&gt;Berg&lt;/b&gt; Folgen von Leerzeichen und Zeilenumbrüchen werden zu einem Leerzeichen. Die Enden werden gekürzt. Markup wird maskiert.
multiline "Line 1\nLine <b>2</b>" Line 1<br>Line &lt;b&gt;2&lt;/b&gt; Ein Zeilenumbruch wird zu <br>. Anderes Markup wird maskiert. Für Adressen und Notizen.
rich "<b>bold</b> <script>x()</script><a href=\"javascript:x()\">link</a>" <b>bold</b> <a>link</a> Fett, kursiv, Listen, Links und Zeilenumbrüche bleiben. Anderes Markup wird entfernt. Für Text aus einem CMS.
raw "<b>x</b>" <b>x</b> Der Wert bleibt unverändert. Nur für Markup, dem Sie vertrauen.

Ein Name, der keiner der vier Typen ist, gilt als text.

Was rich behält

  • Tags: b, i, em, strong, ul, ol, li, a, br, p und span.
  • Attribute: href und title bei a, und class bei p und span.
  • Links: Ein href mit dem Schema http, https, mailto oder tel oder ohne Schema bleibt. Ein Link mit einem anderen Schema, etwa javascript:, verliert sein href.
  • Ereignis-Attribute wie onclick werden entfernt.
  • Jedes andere Tag wird entfernt, sein Text bleibt. script und style verlieren auch ihren Text.

Einen Feldtyp festlegen

Geben Sie dem Feld x-brevier-type im Schema der Vorlage: die Datei rechnung.schema.json neben rechnung.html, oder das Schema, das --schema nennt.

rechnung.schema.json
{
  "type": "object",
  "properties": {
    "bemerkung": { "type": "string", "x-brevier-type": "multiline" }
  }
}
  • brevier pdf, brevier html, brevier lint, brevier preview, brevier serve und die Clients binden das Feld mit diesem Typ.
  • Ein Feld ohne x-brevier-type ist text. Das gilt auch für jedes Feld einer Vorlage ohne Schema.
  • Der Typ gehört zur Stelle des Felds im Schema, nicht zu seinem Namen. kunde.name kann rich sein, während lieferant.name text bleibt.
  • Der Front-Matter-Block fields:, Kopf- und Fußzeile aus page: und der Python-Builder Pdf nutzen noch keine Feldtypen: ihre Felder sind text.