page.cavu.blocks.screenplay

cavu.page

Documentation

One element of a screenplay: a scene heading, a paragraph of action, a character cue, a parenthetical, a run of dialogue or lyric, a transition, or centered text. A script is a flat sequence of these blocks, the paragraph-type model of Fountain and Final Draft; a speech is a character block followed by the parenthetical, dialogue and lyric blocks that belong to it. Renderers set each element by screenplay convention (a monospaced face, dialogue and cues indented, transitions flush right, headings, cues and transitions in capitals) and keep a cue with the speech that follows it. Mirrors the shape of pub.leaflet.blocks.text so the same rich-text tooling applies. Designed to sit inside pub.leaflet.pages.* open block unions; renderers that don't recognize it skip it, so the document's textContent should still carry the script plaintext.

main object

One element of a screenplay: a scene heading, a paragraph of action, a character cue, a parenthetical, a run of dialogue or lyric, a transition, or centered text. A script is a flat sequence of these blocks, the paragraph-type model of Fountain and Final Draft; a speech is a character block followed by the parenthetical, dialogue and lyric blocks that belong to it. Renderers set each element by screenplay convention (a monospaced face, dialogue and cues indented, transitions flush right, headings, cues and transitions in capitals) and keep a cue with the speech that follows it. Mirrors the shape of pub.leaflet.blocks.text so the same rich-text tooling applies. Designed to sit inside pub.leaflet.pages.* open block unions; renderers that don't recognize it skip it, so the document's textContent should still carry the script plaintext.

Properties

dual boolean Optional

On a character block: this speech runs beside the previous one (dual dialogue). Renderers that can't set speeches side by side may stack them.

element string Required

Which screenplay element this block is. A renderer that meets an unknown value should set it as action.

maxLength: 100 bytes
Known values: sceneHeading, action, character, parenthetical, dialogue, lyric, transition, centered
facets array of refpub.leaflet.richtext.facet Optional

Byte-range annotations over plaintext (emphasis, underline), same facet system as Leaflet blocks.

plaintext string Required

The element's text as the author wrote it; a newline is a hard line break. Capitalization conventions (headings, cues, transitions) are the renderer's to apply, so the stored case is the author's.

maxLength: 100000 bytes
sceneNumber string Optional

The scene's number as printed in the margins ("12", "12A"). Meaningful on sceneHeading only.

maxLength: 100 bytesmaxGraphemes: 10 graphemes
View raw schema
{
  "description": "One element of a screenplay: a scene heading, a paragraph of action, a character cue, a parenthetical, a run of dialogue or lyric, a transition, or centered text. A script is a flat sequence of these blocks, the paragraph-type model of Fountain and Final Draft; a speech is a character block followed by the parenthetical, dialogue and lyric blocks that belong to it. Renderers set each element by screenplay convention (a monospaced face, dialogue and cues indented, transitions flush right, headings, cues and transitions in capitals) and keep a cue with the speech that follows it. Mirrors the shape of pub.leaflet.blocks.text so the same rich-text tooling applies. Designed to sit inside pub.leaflet.pages.* open block unions; renderers that don't recognize it skip it, so the document's textContent should still carry the script plaintext.",
  "properties": {
    "dual": {
      "description": "On a character block: this speech runs beside the previous one (dual dialogue). Renderers that can't set speeches side by side may stack them.",
      "type": "boolean"
    },
    "element": {
      "description": "Which screenplay element this block is. A renderer that meets an unknown value should set it as action.",
      "knownValues": [
        "sceneHeading",
        "action",
        "character",
        "parenthetical",
        "dialogue",
        "lyric",
        "transition",
        "centered"
      ],
      "maxLength": 100,
      "type": "string"
    },
    "facets": {
      "description": "Byte-range annotations over plaintext (emphasis, underline), same facet system as Leaflet blocks.",
      "items": {
        "ref": "pub.leaflet.richtext.facet",
        "type": "ref"
      },
      "type": "array"
    },
    "plaintext": {
      "description": "The element's text as the author wrote it; a newline is a hard line break. Capitalization conventions (headings, cues, transitions) are the renderer's to apply, so the stored case is the author's.",
      "maxLength": 100000,
      "type": "string"
    },
    "sceneNumber": {
      "description": "The scene's number as printed in the margins (\"12\", \"12A\"). Meaningful on sceneHeading only.",
      "maxGraphemes": 10,
      "maxLength": 100,
      "type": "string"
    }
  },
  "required": [
    "element",
    "plaintext"
  ],
  "type": "object"
}

Lexicon Garden

@