a tool for shared writing and social publishing
1import * as PageLexicons from "./src/pages";
2import { BlockLexicons } from "./src/blocks";
3import { PubLeafletDocument } from "./src/document";
4import * as PublicationLexicons from "./src/publication";
5import * as PollLexicons from "./src/polls";
6import { ThemeLexicons } from "./src/theme";
7
8import * as fs from "fs";
9import * as path from "path";
10import { PubLeafletRichTextFacet } from "./src/facet";
11import { PubLeafletComment } from "./src/comment";
12
13const outdir = path.join("lexicons", "pub", "leaflet");
14
15if (fs.existsSync(outdir)) {
16 fs.rmSync(outdir, { recursive: true });
17}
18fs.mkdirSync(outdir, { recursive: true });
19
20const lexicons = [
21 PubLeafletDocument,
22 PubLeafletComment,
23 PubLeafletRichTextFacet,
24 PageLexicons.PubLeafletPagesLinearDocument,
25 PageLexicons.PubLeafletPagesCanvasDocument,
26 ...ThemeLexicons,
27 ...BlockLexicons,
28 ...Object.values(PublicationLexicons),
29 ...Object.values(PollLexicons),
30];
31
32// Write each lexicon to a file
33lexicons.forEach((lexicon) => {
34 let id = lexicon.id.split(".");
35 let folder = path.join(outdir, ...id.slice(2, -1));
36 if (!fs.existsSync(folder)) fs.mkdirSync(folder, { recursive: true });
37 const filename = path.join(folder, id[id.length - 1] + ".json");
38 fs.writeFileSync(filename, JSON.stringify(lexicon, null, 2));
39});