a tool for shared writing and social publishing
1import { LexiconDoc } from "@atproto/lexicon";
2import { BlockUnion } from "../blocks";
3
4export const PubLeafletPagesLinearDocument: LexiconDoc = {
5 lexicon: 1,
6 id: "pub.leaflet.pages.linearDocument",
7 defs: {
8 main: {
9 type: "object",
10 required: ["blocks"],
11 properties: {
12 id: { type: "string" },
13 blocks: { type: "array", items: { type: "ref", ref: "#block" } },
14 },
15 },
16 block: {
17 type: "object",
18 required: ["block"],
19 properties: {
20 block: BlockUnion,
21 alignment: {
22 type: "string",
23 knownValues: [
24 "#textAlignLeft",
25 "#textAlignCenter",
26 "#textAlignRight",
27 "#textAlignJustify",
28 ],
29 },
30 },
31 },
32 textAlignLeft: { type: "token" },
33 textAlignCenter: { type: "token" },
34 textAlignRight: { type: "token" },
35 textAlignJustify: { type: "token" },
36 quote: {
37 type: "object",
38 required: ["start", "end"],
39 properties: {
40 start: { type: "ref", ref: "#position" },
41 end: { type: "ref", ref: "#position" },
42 },
43 },
44 position: {
45 type: "object",
46 required: ["block", "offset"],
47 properties: {
48 block: { type: "array", items: { type: "integer" } },
49 offset: { type: "integer" },
50 },
51 },
52 },
53};