at.markpub.facets.baseFormatting

markpub.at

{
  "id": "at.markpub.facets.baseFormatting",
  "defs": {
    "main": {
      "type": "object",
      "required": [
        "index",
        "features"
      ],
      "properties": {
        "index": {
          "ref": "#byteSlice",
          "type": "ref"
        },
        "features": {
          "type": "array",
          "items": {
            "refs": [
              "#strong",
              "#header",
              "#idify"
            ],
            "type": "union"
          }
        }
      }
    },
    "idify": {
      "type": "object",
      "properties": {},
      "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>`."
    },
    "header": {
      "type": "object",
      "required": [
        "level"
      ],
      "properties": {
        "level": {
          "type": "integer",
          "maximum": 6,
          "minimum": 1
        }
      },
      "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."
    },
    "strong": {
      "type": "object",
      "properties": {},
      "description": "Facet feature for a `<strong>` HTML tag. For the byteSlice provided it should surround the underlying text."
    },
    "byteSlice": {
      "type": "object",
      "required": [
        "byteStart",
        "byteEnd"
      ],
      "properties": {
        "byteEnd": {
          "type": "integer",
          "minimum": 0
        },
        "byteStart": {
          "type": "integer",
          "minimum": 0
        }
      },
      "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."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "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

Lexicon Garden

@