atproto blogging
1{
2 "lexicon": 1,
3 "id": "site.standard.document",
4 "defs": {
5 "main": {
6 "type": "record",
7 "description": "A document record representing a published article, blog post, or other content. Documents can belong to a publication or exist independently.",
8 "key": "tid",
9 "record": {
10 "type": "object",
11 "required": [
12 "site",
13 "title",
14 "publishedAt"
15 ],
16 "properties": {
17 "bskyPostRef": {
18 "type": "ref",
19 "description": "Strong reference to a Bluesky post. Useful to keep track of comments off-platform.",
20 "ref": "com.atproto.repo.strongRef"
21 },
22 "content": {
23 "type": "union",
24 "description": "Open union used to define the record's content. Each entry must specify a $type and may be extended with other lexicons to support additional content formats.",
25 "refs": [],
26 "closed": false
27 },
28 "coverImage": {
29 "type": "blob",
30 "description": "Image to used for thumbnail or cover image. Less than 1MB is size.",
31 "accept": [
32 "image/*"
33 ],
34 "maxSize": 1000000
35 },
36 "description": {
37 "type": "string",
38 "description": "A brief description or excerpt from the document.",
39 "maxLength": 3000,
40 "maxGraphemes": 300
41 },
42 "path": {
43 "type": "string",
44 "description": "Combine with site or publication url to construct a canonical URL to the document. Prepend with a leading slash."
45 },
46 "publishedAt": {
47 "type": "string",
48 "description": "Timestamp of the documents publish time.",
49 "format": "datetime"
50 },
51 "site": {
52 "type": "string",
53 "description": "Points to a publication record (at://) or a publication url (https://) for loose documents. Avoid trailing slashes.",
54 "format": "uri"
55 },
56 "tags": {
57 "type": "array",
58 "description": "Array of strings used to tag or categorize the document. Avoid prepending tags with hashtags.",
59 "items": {
60 "type": "string",
61 "maxLength": 100,
62 "maxGraphemes": 50
63 }
64 },
65 "textContent": {
66 "type": "string",
67 "description": "Plaintext representation of the documents contents. Should not contain markdown or other formatting."
68 },
69 "title": {
70 "type": "string",
71 "description": "Title of the document.",
72 "maxLength": 1280,
73 "maxGraphemes": 128
74 },
75 "updatedAt": {
76 "type": "string",
77 "description": "Timestamp of the documents last edit.",
78 "format": "datetime"
79 }
80 }
81 }
82 }
83 }
84}