pub.leaflet.richtext.facet

leaflet.pub

Schema Diff

+25 -1

From

CID
bafyreic7ponczkc...
Indexed At
2026-02-18 20:05 UTC
View this version

To

CID
bafyreiezzdjub5d...
Indexed At
2026-03-19 20:24 UTC
View this version

Compatibility Analysis

Backward Compatible

Backward compatible. 11 non-breaking changes.

Non-Breaking Changes (11)
  • AddedVertex AddedVertex { vertex_id: "pub.leaflet.richtext.facet#footnote" }
  • AddedVertex AddedVertex { vertex_id: "pub.leaflet.richtext.facet#footnote.contentFacets" }
  • AddedVertex AddedVertex { vertex_id: "pub.leaflet.richtext.facet#footnote.contentFacets:items" }
  • AddedVertex AddedVertex { vertex_id: "pub.leaflet.richtext.facet#footnote.contentPlaintext" }
  • AddedVertex AddedVertex { vertex_id: "pub.leaflet.richtext.facet#footnote.footnoteId" }
  • AddedVertex AddedVertex { vertex_id: "pub.leaflet.richtext.facet.features:items:variant10" }
  • AddedEdge AddedEdge { src: "pub.leaflet.richtext.facet#footnote", tgt: "pub.leaflet.richtext.facet#footnote.contentFacets", kind: "prop", name: Some("contentFacets") }
  • AddedEdge AddedEdge { src: "pub.leaflet.richtext.facet#footnote", tgt: "pub.leaflet.richtext.facet#footnote.contentPlaintext", kind: "prop", name: Some("contentPlaintext") }
  • AddedEdge AddedEdge { src: "pub.leaflet.richtext.facet#footnote", tgt: "pub.leaflet.richtext.facet#footnote.footnoteId", kind: "prop", name: Some("footnoteId") }
  • AddedEdge AddedEdge { src: "pub.leaflet.richtext.facet#footnote.contentFacets", tgt: "pub.leaflet.richtext.facet#footnote.contentFacets:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "pub.leaflet.richtext.facet.features:items", tgt: "pub.leaflet.richtext.facet.features:items:variant10", kind: "variant", name: Some("#footnote") }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "pub.leaflet.richtext.facet#footnote" }
  • AddedVertex { vertex_id: "pub.leaflet.richtext.facet#footnote.contentFacets" }
  • AddedVertex { vertex_id: "pub.leaflet.richtext.facet#footnote.contentFacets:items" }
  • AddedVertex { vertex_id: "pub.leaflet.richtext.facet#footnote.contentPlaintext" }
  • AddedVertex { vertex_id: "pub.leaflet.richtext.facet#footnote.footnoteId" }
  • AddedVertex { vertex_id: "pub.leaflet.richtext.facet.features:items:variant10" }

Additional Notes

  • Non-breaking: AddedEdge { src: "pub.leaflet.richtext.facet#footnote", tgt: "pub.leaflet.richtext.facet#footnote.contentFacets", kind: "prop", name: Some("contentFacets") }
  • Non-breaking: AddedEdge { src: "pub.leaflet.richtext.facet#footnote", tgt: "pub.leaflet.richtext.facet#footnote.contentPlaintext", kind: "prop", name: Some("contentPlaintext") }
  • Non-breaking: AddedEdge { src: "pub.leaflet.richtext.facet#footnote", tgt: "pub.leaflet.richtext.facet#footnote.footnoteId", kind: "prop", name: Some("footnoteId") }
  • Non-breaking: AddedEdge { src: "pub.leaflet.richtext.facet#footnote.contentFacets", tgt: "pub.leaflet.richtext.facet#footnote.contentFacets:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "pub.leaflet.richtext.facet.features:items", tgt: "pub.leaflet.richtext.facet.features:items:variant10", kind: "variant", name: Some("#footnote") }
1 1
{
2 2
  "id": "pub.leaflet.richtext.facet",
3 3
  "defs": {
4 4
    "id": {
5 5
      "type": "object",
6 6
      "required": [],
7 7
      "properties": {
8 8
        "id": {
9 9
          "type": "string"
10 10
        }
11 11
      },
12 12
      "description": "Facet feature for an identifier. Used for linking to a segment"
13 13
    },
14 14
    "bold": {
15 15
      "type": "object",
16 16
      "required": [],
17 17
      "properties": {},
18 18
      "description": "Facet feature for bold text"
19 19
    },
20 20
    "code": {
21 21
      "type": "object",
22 22
      "required": [],
23 23
      "properties": {},
24 24
      "description": "Facet feature for inline code."
25 25
    },
26 26
    "link": {
27 27
      "type": "object",
28 28
      "required": [
29 29
        "uri"
30 30
      ],
31 31
      "properties": {
32 32
        "uri": {
33 33
          "type": "string"
34 34
        }
35 35
      },
36 36
      "description": "Facet feature for a URL. The text URL may have been simplified or truncated, but the facet reference should be a complete URL."
37 37
    },
38 38
    "main": {
39 39
      "type": "object",
40 40
      "required": [
41 41
        "index",
42 42
        "features"
43 43
      ],
44 44
      "properties": {
45 45
        "index": {
46 46
          "ref": "#byteSlice",
47 47
          "type": "ref"
48 48
        },
49 49
        "features": {
50 50
          "type": "array",
51 51
          "items": {
52 52
            "refs": [
53 53
              "#link",
54 54
              "#didMention",
55 55
              "#atMention",
56 56
              "#code",
57 57
              "#highlight",
58 58
              "#underline",
59 59
              "#strikethrough",
60 60
              "#id",
61 61
              "#bold",
62 -
              "#italic"
62 +
              "#italic",
63 +
              "#footnote"
63 64
            ],
64 65
            "type": "union"
65 66
          }
66 67
        }
67 68
      },
68 69
      "description": "Annotation of a sub-string within rich text."
69 70
    },
70 71
    "italic": {
71 72
      "type": "object",
72 73
      "required": [],
73 74
      "properties": {},
74 75
      "description": "Facet feature for italic text"
75 76
    },
77 +
    "footnote": {
78 +
      "type": "object",
79 +
      "required": [
80 +
        "footnoteId",
81 +
        "contentPlaintext"
82 +
      ],
83 +
      "properties": {
84 +
        "footnoteId": {
85 +
          "type": "string"
86 +
        },
87 +
        "contentFacets": {
88 +
          "type": "array",
89 +
          "items": {
90 +
            "ref": "#main",
91 +
            "type": "ref"
92 +
          }
93 +
        },
94 +
        "contentPlaintext": {
95 +
          "type": "string"
96 +
        }
97 +
      },
98 +
      "description": "Facet feature for a footnote reference"
99 +
    },
76 100
    "atMention": {
77 101
      "type": "object",
78 102
      "required": [
79 103
        "atURI"
80 104
      ],
81 105
      "properties": {
82 106
        "atURI": {
83 107
          "type": "string",
84 108
          "format": "uri"
85 109
        }
86 110
      },
87 111
      "description": "Facet feature for mentioning an AT URI."
88 112
    },
89 113
    "byteSlice": {
90 114
      "type": "object",
91 115
      "required": [
92 116
        "byteStart",
93 117
        "byteEnd"
94 118
      ],
95 119
      "properties": {
96 120
        "byteEnd": {
97 121
          "type": "integer",
98 122
          "minimum": 0
99 123
        },
100 124
        "byteStart": {
101 125
          "type": "integer",
102 126
          "minimum": 0
103 127
        }
104 128
      },
105 129
      "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."
106 130
    },
107 131
    "highlight": {
108 132
      "type": "object",
109 133
      "required": [],
110 134
      "properties": {},
111 135
      "description": "Facet feature for highlighted text."
112 136
    },
113 137
    "underline": {
114 138
      "type": "object",
115 139
      "required": [],
116 140
      "properties": {},
117 141
      "description": "Facet feature for underline markup"
118 142
    },
119 143
    "didMention": {
120 144
      "type": "object",
121 145
      "required": [
122 146
        "did"
123 147
      ],
124 148
      "properties": {
125 149
        "did": {
126 150
          "type": "string",
127 151
          "format": "did"
128 152
        }
129 153
      },
130 154
      "description": "Facet feature for mentioning a did."
131 155
    },
132 156
    "strikethrough": {
133 157
      "type": "object",
134 158
      "required": [],
135 159
      "properties": {},
136 160
      "description": "Facet feature for strikethrough markup"
137 161
    }
138 162
  },
139 163
  "$type": "com.atproto.lexicon.schema",
140 164
  "lexicon": 1
141 165
}

Compare Other Versions

Lexicon Garden

@