Node types

Every element entry has a type that decides which editor construct it becomes. The dispatch happens in src/extensions/extensions.js.

The types

type Becomes Typical use
inline a mark phrase-level markup wrapping text: hi, rs, foreign, persName
block a block node paragraphs, divisions, headings, quotes
empty a self-closing (atom) node milestones with no content: pb, lb, milestone
ref an inline reference node ref/link-like elements
anchor an anchor node footnote anchors (paired with note)
note a note node footnote/annotation bodies (via a group)
list a list node list containers
listItem a list item node item — supports a custom tagName
table / row / cell table nodes table, row, cell
graphic a graphic/figure node images

Marks vs. nodes

The most important distinction:

Block details

block entries pass several optional properties straight through to the node: group (default block), content, defining, selectable, isolating, priority, inline. See Element definitions for what each means.

Elements per type

Counts below are from the built-in schemas. The same type values apply to any custom schema.

TEI (src/tei-schema.json)

41 elements total.

JATS (src/jats-schema.json)

18 elements total. Full catalogs: TEI · JATS.