Documentation

Rich Text Format

How biographies and descriptions are encoded (Fleather / Parchment Delta).

Rich-text fields - such as a speaker’s biography - are stored as a Fleather / Parchment Delta, serialized as a JSON string. This is a Quill-compatible Delta: an array of ops, where each op has an insert (the text) and optional attributes (the formatting on that run).

Attributes use short keys (for example b for bold). Use the short keys listed below when you send rich text through the API.

[
  { "insert": "About Jane" },
  { "insert": "\n", "attributes": { "heading": 2 } },
  { "insert": "Jane is a " },
  { "insert": "keynote speaker", "attributes": { "b": true } },
  { "insert": " - see her ", "attributes": {} },
  { "insert": "profile", "attributes": { "a": "https://example.com" } },
  { "insert": ".\n" }
]

Attributes

Attributes are attached to the text run they format (inline styles) or, for block styles, to the newline (\n) that ends the line.

Key Type Kind Meaning
b boolean inline Bold
i boolean inline Italic
u boolean inline Underline
s boolean inline Strikethrough
a string inline Link - the value is the URL
fg integer inline Text colour, as a 32-bit ARGB integer (e.g. 0xFFCC0000)
alignment string block left / right / center / justify
heading integer block Heading level 1-6 (see below)
block string block ul (bullet list) or ol (ordered list); attach to each line’s trailing \n

Plain strings are also accepted - a field that is not valid Delta JSON is treated as plain text - but it will render without any formatting. An empty Delta ([] or one containing only newlines) is treated as empty.

Heading levels

Headings use the heading attribute (values 1-6) on the line’s trailing newline. Event Vault gives the levels distinct visual roles rather than a plain descending scale:

Level Renders as
1 Heading (largest)
2 Heading
3 Heading
4 Heading at body-text size - a subtle heading, same size as normal text
5 Grey sub-text - muted secondary line
6 Red warning text - a callout, sized between heading 2 and heading 3

Example with block styles

[
  { "insert": "Heads up: schedule is provisional" },
  { "insert": "\n", "attributes": { "heading": 6 } },
  { "insert": "Focus areas" },
  { "insert": "\n", "attributes": { "heading": 5 } },
  { "insert": "Machine learning" },
  { "insert": "\n", "attributes": { "block": "ul" } },
  { "insert": "Robotics" },
  { "insert": "\n", "attributes": { "block": "ul" } }
]

This is the same format used by the in-app profile and the console editor, so content you send through the API is rendered wherever the field appears in Event Vault.