site.mochott.article
Schema Diff
+5 -0
Compatibility Analysis
Backward Compatible
Backward compatible. 2 non-breaking changes.
Non-Breaking Changes (2)
- AddedVertex AddedVertex { vertex_id: "site.mochott.article:body.topic" }
- AddedEdge AddedEdge { src: "site.mochott.article:body", tgt: "site.mochott.article:body.topic", kind: "prop", name: Some("topic") }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "site.mochott.article:body.topic" }
Additional Notes
- Non-breaking: AddedEdge { src: "site.mochott.article:body", tgt: "site.mochott.article:body.topic", kind: "prop", name: Some("topic") }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"main": {
5
5
"description": "Record representing a single blog article published to a publication.",
6
6
"key": "tid",
7
7
"record": {
8
8
"properties": {
9
9
"blobs": {
10
10
"description": "Blob references for media embedded within the article content.",
11
11
"items": {
12
12
"ref": "site.mochott.defs#blobMetadata",
13
13
"type": "ref"
14
14
},
15
15
"type": "array"
16
16
},
17
17
"category": {
18
18
"description": "Primary category of the article.",
19
19
"maxLength": 100,
20
20
"type": "string"
21
21
},
22
22
"content": {
23
23
"description": "Rich text content in TipTap editor JSON format.",
24
24
"ref": "#tiptapDocument",
25
25
"type": "ref"
26
26
},
27
27
"coverImage": {
28
28
"accept": [
29
29
"image/png",
30
30
"image/jpeg",
31
31
"image/webp"
32
32
],
33
33
"description": "Cover image displayed at the top of the article and in previews.",
34
34
"maxSize": 1000000,
35
35
"type": "blob"
36
36
},
37
37
"createdAt": {
38
38
"description": "Timestamp when the article was created.",
39
39
"format": "datetime",
40
40
"type": "string"
41
41
},
42
42
"description": {
43
43
"description": "Short summary or excerpt of the article, used for previews and SEO.",
44
44
"maxGraphemes": 3000,
45
45
"maxLength": 30000,
46
46
"type": "string"
47
47
},
48
48
"path": {
49
49
"description": "Custom URL path slug for the article. Used to construct human-readable URLs.",
50
50
"maxLength": 500,
51
51
"type": "string"
52
52
},
53
53
"profile": {
54
54
"description": "AT URI of the publication profile this article belongs to.",
55
55
"format": "at-uri",
56
56
"type": "string"
57
57
},
58
58
"tags": {
59
59
"description": "Tags for categorizing the article.",
60
60
"items": {
61
61
"maxGraphemes": 64,
62
62
"maxLength": 640,
63
63
"type": "string"
64
64
},
65
65
"maxLength": 8,
66
66
"type": "array"
67
67
},
68
68
"textContent": {
69
69
"description": "Plain text representation of the article content, primarily for search indexing and text-only consumers.",
70
70
"maxLength": 100000,
71
71
"type": "string"
72
72
},
73
73
"title": {
74
74
"description": "Title of the article.",
75
75
"maxGraphemes": 500,
76
76
"maxLength": 5000,
77
77
"type": "string"
78
78
},
79
+
"topic": {
80
+
"description": "Slug of the platform writing topic (投稿のお題) this article participates in.",
81
+
"maxLength": 100,
82
+
"type": "string"
83
+
},
79
84
"updatedAt": {
80
85
"description": "Timestamp when the article was last updated.",
81
86
"format": "datetime",
82
87
"type": "string"
83
88
}
84
89
},
85
90
"required": [
86
91
"profile",
87
92
"title",
88
93
"createdAt"
89
94
],
90
95
"type": "object"
91
96
},
92
97
"type": "record"
93
98
},
94
99
"tiptapDocument": {
95
100
"description": "A TipTap editor document node. Represents a recursive tree structure for rich text content.",
96
101
"properties": {
97
102
"attrs": {
98
103
"description": "Node-specific attributes.",
99
104
"type": "unknown"
100
105
},
101
106
"content": {
102
107
"description": "Child nodes of this document node.",
103
108
"items": {
104
109
"type": "unknown"
105
110
},
106
111
"type": "array"
107
112
},
108
113
"marks": {
109
114
"description": "Inline formatting marks applied to this node.",
110
115
"items": {
111
116
"type": "unknown"
112
117
},
113
118
"type": "array"
114
119
},
115
120
"text": {
116
121
"description": "Text content for text-type nodes.",
117
122
"type": "string"
118
123
},
119
124
"type": {
120
125
"description": "Node type identifier (e.g. 'doc', 'paragraph', 'heading').",
121
126
"type": "string"
122
127
}
123
128
},
124
129
"required": [
125
130
"type"
126
131
],
127
132
"type": "object"
128
133
}
129
134
},
130
135
"description": "A blog article record. Contains rich text content, metadata, and optional media attachments.",
131
136
"id": "site.mochott.article",
132
137
"lexicon": 1,
133
138
"revision": 1
134
139
}