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 "./src/styles/widths.css",
18 ],
19 social: [
20 {
21 icon: "github",
22 label: "GitHub",
23 href: "https://github.com/streamplace/streamplace",
24 },
25 ],
26 logo: {
27 src: "/src/assets/cube.png",
28 alt: "Streamplace Logo",
29 },
30 plugins: [
31 starlightOpenAPI([
32 {
33 base: "api",
34 label: "Related XRPC API endpoints",
35 schema: "./src/content/docs/lex-reference/openapi.json", // or your json generated from swagger
36 sidebar: {
37 operations: {
38 badges: true,
39 labels: "operationId",
40 },
41 },
42 },
43 ]),
44 ],
45 sidebar: [
46 { label: "← Back to Streamplace", link: "/../" },
47 {
48 label: "How Streamplace Works (Blog)",
49 link: "https://blog.stream.place/",
50 attrs: { target: "_blank" },
51 },
52 {
53 label: "Guides",
54 items: [
55 {
56 label: "Start Streaming",
57 autogenerate: { directory: "guides/start-streaming" },
58 },
59 {
60 label: "Installing Streamplace",
61 autogenerate: { directory: "guides/installing" },
62 },
63 {
64 label: "Start Contributing",
65 autogenerate: { directory: "guides/start-contributing" },
66 },
67 ],
68 },
69 // {
70 // label: "Reference",
71 // autogenerate: { directory: "reference" },
72 // },
73 {
74 label: "Video Metadata",
75 autogenerate: { directory: "video-metadata" },
76 },
77 {
78 label: "Components",
79 autogenerate: { directory: "components" },
80 },
81 {
82 label: "Lexicon Reference",
83 autogenerate: { directory: "lex-reference" },
84 },
85 ...openAPISidebarGroups,
86 ],
87 }),
88 ],
89});