at.markpub.facets.baseFormatting

markpub.at

{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "byteSlice": {
      "description": "Specifies the sub-string range a facet feature applies to. Start index is inclusive, end index is exclusive. Indices are zero-indexed, counting bytes of the UTF-8 encoded text. NOTE: some languages, like Javascript, use UTF-16 or Unicode codepoints for string slice indexing; in these languages, convert to byte arrays before working with facets. Byte slices can overlap.",
      "properties": {
        "byteEnd": {
          "minimum": 0,
          "type": "integer"
        },
        "byteStart": {
          "minimum": 0,
          "type": "integer"
        }
      },
      "required": [
        "byteStart",
        "byteEnd"
      ],
      "type": "object"
    },
    "header": {
      "description": "Facet feature for a `<h1>` HTML tag. The integer is the level you want to use, as in h1, h2, h3, etc... For the byteSlice provided it should surround the underlying text.",
      "properties": {
        "level": {
          "maximum": 6,
          "minimum": 1,
          "type": "integer"
        }
      },
      "required": [
        "level"
      ],
      "type": "object"
    },
    "idify": {
      "description": "Facet feature instructs parsers to stringify the underlying text and include it as an id property on an HTML element. If this overlaps with an existing HTML tag generated by another facet, it is assumed that it will be applied to that tag. If there is no matching tag, use `<span></span>`. It is expected spaces are turned into hyphens. For example, a header facet with an idify feature might produce `<h1 id=\"header-text\">Header Text</h1>`.",
      "properties": {},
      "type": "object"
    },
    "main": {
      "properties": {
        "features": {
          "items": {
            "refs": [
              "#strong",
              "#header",
              "#idify"
            ],
            "type": "union"
          },
          "type": "array"
        },
        "index": {
          "ref": "#byteSlice",
          "type": "ref"
        }
      },
      "required": [
        "index",
        "features"
      ],
      "type": "object"
    },
    "strong": {
      "description": "Facet feature for a `<strong>` HTML tag. For the byteSlice provided it should surround the underlying text.",
      "properties": {},
      "type": "object"
    }
  },
  "id": "at.markpub.facets.baseFormatting",
  "lexicon": 1
}

Validate Record

Validate a record against at.markpub.facets.baseFormatting

Validation Options
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:kfxbexqtvw76572grhv2f3on
CID
bafyreie7wndiiey5wknard76zdh7s2n3e73xn36topfvzsr65yep33q37e
Indexed At
2026-06-26 03:56 UTC
AT-URI
at://did:plc:kfxbexqtvw76572grhv2f3on/com.atproto.lexicon.schema/at.markpub.facets.baseFormatting

Similar Lexicons

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

  • Specifies the sub-string range a facet feature applies to. Start index is inclusive, end index is exclusive. Indices are zero-indexed, counting bytes of the UTF-8 encoded text. NOTE: some languages, like Javascript, use…

  • Annotation of a sub-string within rich text.

  • Annotation of a sub-string within rich text.

  • Annotation of a sub-string within rich text.

  • Annotation of a sub-string within the parent record's `textContent`. Byte offsets refer to a UTF-8 encoding of the string. A single facet may carry multiple features that all apply to the same byte range.

Lexicon Garden

@