net.atchan.richtext.facet
Schema Diff
+12 -0
Compatibility Analysis
Breaking Changes Detected
4 breaking changes, 12 non-breaking changes.
Breaking Changes (4)
- RemovedEdge RemovedEdge { src: "net.atchan.richtext.facet.features:items", tgt: "net.atchan.richtext.facet.features:items:variant10", kind: "variant", name: Some("#ref") }
- RemovedEdge RemovedEdge { src: "net.atchan.richtext.facet.features:items", tgt: "net.atchan.richtext.facet.features:items:variant9", kind: "variant", name: Some("#link") }
- RemovedEdge RemovedEdge { src: "net.atchan.richtext.facet.features:items:variant10", tgt: "net.atchan.richtext.facet#ref", kind: "ref", name: None }
- RemovedEdge RemovedEdge { src: "net.atchan.richtext.facet.features:items:variant9", tgt: "net.atchan.richtext.facet#link", kind: "ref", name: None }
Non-Breaking Changes (12)
- AddedVertex AddedVertex { vertex_id: "net.atchan.richtext.facet#code" }
- AddedVertex AddedVertex { vertex_id: "net.atchan.richtext.facet#pre" }
- AddedVertex AddedVertex { vertex_id: "net.atchan.richtext.facet.features:items:variant11" }
- AddedVertex AddedVertex { vertex_id: "net.atchan.richtext.facet.features:items:variant12" }
- AddedEdge AddedEdge { src: "net.atchan.richtext.facet.features:items", tgt: "net.atchan.richtext.facet.features:items:variant10", kind: "variant", name: Some("#pre") }
- AddedEdge AddedEdge { src: "net.atchan.richtext.facet.features:items", tgt: "net.atchan.richtext.facet.features:items:variant11", kind: "variant", name: Some("#link") }
- AddedEdge AddedEdge { src: "net.atchan.richtext.facet.features:items", tgt: "net.atchan.richtext.facet.features:items:variant12", kind: "variant", name: Some("#ref") }
- AddedEdge AddedEdge { src: "net.atchan.richtext.facet.features:items", tgt: "net.atchan.richtext.facet.features:items:variant9", kind: "variant", name: Some("#code") }
- AddedEdge AddedEdge { src: "net.atchan.richtext.facet.features:items:variant10", tgt: "net.atchan.richtext.facet#pre", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "net.atchan.richtext.facet.features:items:variant11", tgt: "net.atchan.richtext.facet#link", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "net.atchan.richtext.facet.features:items:variant12", tgt: "net.atchan.richtext.facet#ref", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "net.atchan.richtext.facet.features:items:variant9", tgt: "net.atchan.richtext.facet#code", kind: "ref", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "net.atchan.richtext.facet#code" }AddedVertex { vertex_id: "net.atchan.richtext.facet#pre" }AddedVertex { vertex_id: "net.atchan.richtext.facet.features:items:variant11" }AddedVertex { vertex_id: "net.atchan.richtext.facet.features:items:variant12" }
Additional Notes
- Breaking: RemovedEdge { src: "net.atchan.richtext.facet.features:items", tgt: "net.atchan.richtext.facet.features:items:variant10", kind: "variant", name: Some("#ref") }
- Breaking: RemovedEdge { src: "net.atchan.richtext.facet.features:items", tgt: "net.atchan.richtext.facet.features:items:variant9", kind: "variant", name: Some("#link") }
- Breaking: RemovedEdge { src: "net.atchan.richtext.facet.features:items:variant10", tgt: "net.atchan.richtext.facet#ref", kind: "ref", name: None }
- Breaking: RemovedEdge { src: "net.atchan.richtext.facet.features:items:variant9", tgt: "net.atchan.richtext.facet#link", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "net.atchan.richtext.facet.features:items", tgt: "net.atchan.richtext.facet.features:items:variant10", kind: "variant", name: Some("#pre") }
- Non-breaking: AddedEdge { src: "net.atchan.richtext.facet.features:items", tgt: "net.atchan.richtext.facet.features:items:variant11", kind: "variant", name: Some("#link") }
- Non-breaking: AddedEdge { src: "net.atchan.richtext.facet.features:items", tgt: "net.atchan.richtext.facet.features:items:variant12", kind: "variant", name: Some("#ref") }
- Non-breaking: AddedEdge { src: "net.atchan.richtext.facet.features:items", tgt: "net.atchan.richtext.facet.features:items:variant9", kind: "variant", name: Some("#code") }
- Non-breaking: AddedEdge { src: "net.atchan.richtext.facet.features:items:variant10", tgt: "net.atchan.richtext.facet#pre", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "net.atchan.richtext.facet.features:items:variant11", tgt: "net.atchan.richtext.facet#link", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "net.atchan.richtext.facet.features:items:variant12", tgt: "net.atchan.richtext.facet#ref", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "net.atchan.richtext.facet.features:items:variant9", tgt: "net.atchan.richtext.facet#code", kind: "ref", name: None }
1
1
{
2
2
"id": "net.atchan.richtext.facet",
3
3
"defs": {
4
+
"pre": {
5
+
"type": "object",
6
+
"properties": {},
7
+
"description": "Facet feature marking the range as preformatted text, rendered as a block in a monospace font with whitespace preserved. No other facet is valid inside it."
8
+
},
4
9
"ref": {
5
10
"type": "object",
6
11
"required": [
7
12
"rkey"
8
13
],
9
14
"properties": {
10
15
"rkey": {
11
16
"type": "string",
12
17
"format": "record-key"
13
18
}
14
19
},
15
20
"description": "Facet feature marking the range as a quote-link to another post, given by its record key. The range covers the \">>rkey\" the author typed."
16
21
},
17
22
"bold": {
18
23
"type": "object",
19
24
"properties": {},
20
25
"description": "Facet feature marking the range as bold."
21
26
},
27
+
"code": {
28
+
"type": "object",
29
+
"properties": {},
30
+
"description": "Facet feature marking the range as inline code, rendered in a monospace font. No other facet is valid inside it."
31
+
},
22
32
"font": {
23
33
"type": "object",
24
34
"required": [
25
35
"name"
26
36
],
27
37
"properties": {
28
38
"name": {
29
39
"type": "string"
30
40
}
31
41
},
32
42
"description": "Facet feature rendering the range in a named font"
33
43
},
34
44
"link": {
35
45
"type": "object",
36
46
"required": [
37
47
"uri"
38
48
],
39
49
"properties": {
40
50
"uri": {
41
51
"type": "string",
42
52
"format": "uri"
43
53
}
44
54
},
45
55
"description": "Facet feature marking the range as a link to a uri"
46
56
},
47
57
"main": {
48
58
"type": "object",
49
59
"required": [
50
60
"index",
51
61
"features"
52
62
],
53
63
"properties": {
54
64
"index": {
55
65
"ref": "#byteSlice",
56
66
"type": "ref"
57
67
},
58
68
"features": {
59
69
"type": "array",
60
70
"items": {
61
71
"refs": [
62
72
"#bold",
63
73
"#italic",
64
74
"#underline",
65
75
"#strikethrough",
66
76
"#spoiler",
67
77
"#color",
68
78
"#size",
69
79
"#font",
70
80
"#kaomoji",
81
+
"#code",
82
+
"#pre",
71
83
"#link",
72
84
"#ref"
73
85
],
74
86
"type": "union"
75
87
},
76
88
"minLength": 1
77
89
}
78
90
},
79
91
"description": "A facet defines a range of rich text within a larger string."
80
92
},
81
93
"size": {
82
94
"type": "object",
83
95
"required": [
84
96
"value"
85
97
],
86
98
"properties": {
87
99
"value": {
88
100
"type": "integer",
89
101
"maximum": 5,
90
102
"minimum": 1
91
103
}
92
104
},
93
105
"description": "Facet feature rendering the range at a relative text size from 1 (smallest) to 5 (largest), with 3 being the default."
94
106
},
95
107
"color": {
96
108
"type": "object",
97
109
"required": [
98
110
"value"
99
111
],
100
112
"properties": {
101
113
"value": {
102
114
"type": "string"
103
115
}
104
116
},
105
117
"description": "Facet feature rendering the range in a color, given as a CSS hex color such as \"#ff0000\"."
106
118
},
107
119
"italic": {
108
120
"type": "object",
109
121
"properties": {},
110
122
"description": "Facet feature marking the range as italic."
111
123
},
112
124
"kaomoji": {
113
125
"type": "object",
114
126
"properties": {},
115
127
"description": "Facet feature marking the range as a kaomoji, ideally rendered in a Shift-JIS font."
116
128
},
117
129
"spoiler": {
118
130
"type": "object",
119
131
"properties": {},
120
132
"description": "Facet feature marking the range as a spoiler, hidden until the reader interacts with it."
121
133
},
122
134
"byteSlice": {
123
135
"type": "object",
124
136
"required": [
125
137
"byteStart",
126
138
"byteEnd"
127
139
],
128
140
"properties": {
129
141
"byteEnd": {
130
142
"type": "integer",
131
143
"minimum": 0
132
144
},
133
145
"byteStart": {
134
146
"type": "integer",
135
147
"minimum": 0
136
148
}
137
149
},
138
150
"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."
139
151
},
140
152
"underline": {
141
153
"type": "object",
142
154
"properties": {},
143
155
"description": "Facet feature marking the range as underlined."
144
156
},
145
157
"strikethrough": {
146
158
"type": "object",
147
159
"properties": {},
148
160
"description": "Facet feature marking the range as struck through."
149
161
}
150
162
},
151
163
"$type": "com.atproto.lexicon.schema",
152
164
"lexicon": 1
153
165
}