a tool for shared writing and social publishing
1import { LexiconDoc } from "@atproto/lexicon";
2import { PubLeafletPagesLinearDocument } from "./pages/LinearDocument";
3
4export const PubLeafletDocument: LexiconDoc = {
5 lexicon: 1,
6 id: "pub.leaflet.document",
7 revision: 1,
8 description: "A lexicon for long form rich media documents",
9 defs: {
10 main: {
11 type: "record",
12 key: "tid",
13 description: "Record containing a document",
14 record: {
15 type: "object",
16 required: ["pages", "author", "title", "publication"],
17 properties: {
18 title: { type: "string", maxLength: 1280, maxGraphemes: 128 },
19 postRef: { type: "ref", ref: "com.atproto.repo.strongRef" },
20 description: { type: "string", maxLength: 3000, maxGraphemes: 300 },
21 publishedAt: { type: "string", format: "datetime" },
22 publication: { type: "string", format: "at-uri" },
23 author: { type: "string", format: "at-identifier" },
24 pages: {
25 type: "array",
26 items: {
27 type: "union",
28 refs: [PubLeafletPagesLinearDocument.id],
29 },
30 },
31 },
32 },
33 },
34 },
35};