Live video on the AT Protocol
1// @ts-check
2import starlight from "@astrojs/starlight";
3import { defineConfig } from "astro/config";
4import starlightOpenAPI, { openAPISidebarGroups } from "starlight-openapi";
5
6// https://astro.build/config
7export default defineConfig({
8 base: "/docs",
9 integrations: [
10 starlight({
11 title: "Streamplace Docs",
12 customCss: [
13 "@fontsource/atkinson-hyperlegible-next/400.css",
14 "@fontsource/atkinson-hyperlegible-next/600.css",
15 "./src/styles/custom-font-face.css",
16 "./src/styles/pre-first-table-col.css",
17 ],
18 social: [
19 {
20 icon: "github",
21 label: "GitHub",
22 href: "https://github.com/streamplace/streamplace",
23 },
24 ],
25 logo: {
26 src: "/src/assets/cube.png",
27 alt: "Streamplace Logo",
28 },
29 plugins: [
30 starlightOpenAPI([
31 {
32 base: "api",
33 label: "Related XRPC API endpoints",
34 schema: "./src/content/docs/lex-reference/openapi.json", // or your json generated from swagger
35 sidebar: {
36 operations: {
37 badges: true,
38 labels: "operationId",
39 },
40 },
41 },
42 ]),
43 ],
44 sidebar: [
45 {
46 label: "Guides",
47 items: [
48 {
49 label: "Start Streaming",
50 autogenerate: { directory: "guides/start-streaming" },
51 },
52 {
53 label: "Start Contributing",
54 autogenerate: { directory: "guides/start-contributing" },
55 },
56 ],
57 },
58 // {
59 // label: "Reference",
60 // autogenerate: { directory: "reference" },
61 // },
62 {
63 label: "Components",
64 autogenerate: { directory: "components" },
65 },
66 {
67 label: "Lexicon Reference",
68 autogenerate: { directory: "lex-reference" },
69 },
70 ...openAPISidebarGroups,
71 ],
72 }),
73 ],
74});