at.markpub.text

markpub.at

{
  "id": "at.markpub.text",
  "defs": {
    "main": {
      "type": "object",
      "required": [
        "markdown"
      ],
      "properties": {
        "facets": {
          "type": "array",
          "items": {
            "refs": [],
            "type": "union",
            "closed": false
          },
          "description": "Facets here represent rendered versions of Markdown strings. A bold Markdown string `**bold**` might be represented by a richtext facet of #bold, in which case it is suggested to be presented without the Markdown markup as `<strong>bold</strong>`. Facets select their character ranges based on position in the Markdown text but should be rendered without the related characters. For example: `### Header` will be selected using a character range that includes the hashes like (0,9) but will be rendered without the hashes like `<h3>Header</h3>`. It is recommended that processors to not transform in-place for this reason. The goal of having an open union for facets is that constructing systems may choose to use the facets they prefer from across the ecosystem, either here or in other places like `pub.leaflet.richtext.facet`"
        },
        "lenses": {
          "type": "array",
          "items": {
            "refs": [],
            "type": "union",
            "closed": false
          },
          "description": "Lenses are lexicons that define translatable facets for rendering layers with limited facets. `pub.leaflet.richtext.facet#bold` and `at.markpub.facets.baseFormatting#strong` expect the same output. A lens would then include a union with both those facets and a renderer that understands either of them could translate between the two."
        },
        "markdown": {
          "type": "string",
          "description": "The raw text in markdown. May include anything that is valid markdown syntax for your flavor. Make sure it is properly escaped if necessary."
        },
        "textBlob": {
          "type": "blob",
          "accept": [
            "text/*"
          ],
          "maxSize": 1000000,
          "description": "Text may be blob-ified as raw Markdown and stored on a PDS, pass it here by reference. If you use this property it is assumed that it overrides the \"rawMarkdown\" property. It is a PDS address for a markdown text file. You still must provide some value, even if it is a preview for \"rawMarkdown\" in this field."
        }
      }
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}

Validate Record

Validate a record against at.markpub.text

Validation Options
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:kfxbexqtvw76572grhv2f3on
CID
bafyreicq255g6olx2e3hbkzstyplckjjg7adkfkxcgjzxp6t3t6wlsalwa
Indexed At
2026-03-24 03:04 UTC
AT-URI
at://did:plc:kfxbexqtvw76572grhv2f3on/com.atproto.lexicon.schema/at.markpub.text

Lexicon Garden

@