com.deckbelcher.richtext

deckbelcher.com

{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "bulletListBlock": {
      "description": "An unordered (bullet) list.",
      "properties": {
        "items": {
          "description": "The list items.",
          "items": {
            "ref": "#listItem",
            "type": "ref"
          },
          "type": "array"
        }
      },
      "required": [
        "items"
      ],
      "type": "object"
    },
    "codeBlock": {
      "description": "A code block with optional language hint.",
      "properties": {
        "language": {
          "description": "Optional language identifier for syntax highlighting.",
          "maxLength": 50,
          "type": "string"
        },
        "text": {
          "description": "The code content (plain text, no facets).",
          "maxLength": 100000,
          "type": "string"
        }
      },
      "required": [
        "text"
      ],
      "type": "object"
    },
    "document": {
      "description": "A multi-block rich text document.\nUsed for primers and other long-form content.",
      "properties": {
        "content": {
          "description": "Array of blocks (paragraphs, headings, etc).",
          "items": {
            "refs": [
              "#paragraphBlock",
              "#headingBlock",
              "#codeBlock",
              "#bulletListBlock",
              "#orderedListBlock",
              "#horizontalRuleBlock"
            ],
            "type": "union"
          },
          "type": "array"
        }
      },
      "required": [
        "content"
      ],
      "type": "object"
    },
    "headingBlock": {
      "description": "A heading block with level, text, and optional facets.",
      "properties": {
        "facets": {
          "description": "Annotations of text (formatting, mentions, links, etc).",
          "items": {
            "ref": "com.deckbelcher.richtext.facet",
            "type": "ref"
          },
          "type": "array"
        },
        "level": {
          "description": "Heading level (1-6).",
          "maximum": 6,
          "minimum": 1,
          "type": "integer"
        },
        "text": {
          "description": "The plain text content (no markdown symbols).",
          "maxGraphemes": 1000,
          "maxLength": 10000,
          "type": "string"
        }
      },
      "required": [
        "level"
      ],
      "type": "object"
    },
    "horizontalRuleBlock": {
      "description": "A horizontal rule (thematic break).",
      "properties": {},
      "type": "object"
    },
    "listItem": {
      "description": "A single list item with text, optional facets, and optional sublist.",
      "properties": {
        "facets": {
          "description": "Annotations of text (formatting, mentions, links, etc).",
          "items": {
            "ref": "com.deckbelcher.richtext.facet",
            "type": "ref"
          },
          "type": "array"
        },
        "sublist": {
          "description": "Optional nested sublist (bullet or ordered).",
          "refs": [
            "#bulletListBlock",
            "#orderedListBlock"
          ],
          "type": "union"
        },
        "text": {
          "description": "The plain text content (no markdown symbols).",
          "maxGraphemes": 10000,
          "maxLength": 100000,
          "type": "string"
        }
      },
      "type": "object"
    },
    "main": {
      "description": "A single paragraph of rich text with optional facet annotations.\nUsed for descriptions and other short formatted text.",
      "properties": {
        "facets": {
          "description": "Annotations of text (mentions, URLs, hashtags, formatting, etc).",
          "items": {
            "ref": "com.deckbelcher.richtext.facet",
            "type": "ref"
          },
          "type": "array"
        },
        "text": {
          "description": "The plain text content (no markdown symbols).",
          "maxGraphemes": 50000,
          "maxLength": 500000,
          "type": "string"
        }
      },
      "type": "object"
    },
    "orderedListBlock": {
      "description": "An ordered (numbered) list.",
      "properties": {
        "items": {
          "description": "The list items.",
          "items": {
            "ref": "#listItem",
            "type": "ref"
          },
          "type": "array"
        },
        "start": {
          "description": "Starting number (default 1).",
          "type": "integer"
        }
      },
      "required": [
        "items"
      ],
      "type": "object"
    },
    "paragraphBlock": {
      "description": "A paragraph block with text and optional facets.",
      "properties": {
        "facets": {
          "description": "Annotations of text (formatting, mentions, links, etc).",
          "items": {
            "ref": "com.deckbelcher.richtext.facet",
            "type": "ref"
          },
          "type": "array"
        },
        "text": {
          "description": "The plain text content (no markdown symbols).",
          "maxGraphemes": 50000,
          "maxLength": 500000,
          "type": "string"
        }
      },
      "type": "object"
    }
  },
  "id": "com.deckbelcher.richtext",
  "lexicon": 1
}

Validate Record

Validate a record against com.deckbelcher.richtext

Validation Options
Automatically resolve and include external schemas for full validation
Treat any remaining unresolved references as valid

Metadata

DID
did:web:deckbelcher.com
CID
bafyreiheaeywzpl3rzb53fc7fbdpujk66bnr2pwnj4otsbram7346ozucu
Indexed At
2026-02-18 19:06 UTC
AT-URI
at://did:web:deckbelcher.com/com.atproto.lexicon.schema/com.deckbelcher.richtext

Referenced Schemas (1)

Similar Lexicons

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

Lexicon Garden

@