Schemas / Story (semantic copy)
rig.story.paragraph_style
v0.31.0 · draft 4 fields 0 required
Fields
| Field | Type | Meaning | |
|---|---|---|---|
basedOn |
entity | optional | Optional. Parent paragraph style; absent / null = none |
listKind |
enumbullet · numbered | optional | Optional. bullet or numbered. Absent = not a list style |
keepWithNext |
bool | optional | Optional. Never leave a paragraph of this style last on a page - break before it so it travels with the block that follows (headings). Absent = false |
keepWithPrevious |
bool | optional | Optional. Never start a page with a paragraph of this style - it travels with the block before it (captions). Absent = false |
Named paragraph style. Format when present.
The display name is rig.meta.named - do not re-declare name here. Identity only: no font, size, colour, or leading. A host maps the name (Heading 1, Normal, Unordered List) at emit time.
Headings are styles whose name the host already knows (Header 1, Heading 1) - no headingLevel field. List membership is this listKind on the style, not a separate list object.
Keeps are style facts, not per-paragraph switches: a heading style holds its section (keepWithNext), a caption style holds its figure (keepWithPrevious). Either side of a pair declaring the bond is enough. Keeping a paragraph's own lines together is host compose policy, not a schema field.
Based-on chains stay acyclic. A cycle is a document error.
JSON Schema
Resolves at https://rig.works/schemas/rig.story.paragraph_style.schema.json —
raw file.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://rig.works/schemas/rig.story.paragraph_style.schema.json",
"title": "rig.story.paragraph_style",
"type": "object",
"additionalProperties": false,
"properties": {
"basedOn": {
"$ref": "./_defs.schema.json#/$defs/entity"
},
"listKind": {
"type": "string",
"enum": [
"bullet",
"numbered"
]
},
"keepWithNext": {
"$ref": "./_defs.schema.json#/$defs/bool"
},
"keepWithPrevious": {
"$ref": "./_defs.schema.json#/$defs/bool"
}
}
}