Skip to content

Commit bc82a42

Browse files
author
Rajat
committed
OpenAPI spec + Fumadocs based documentation site
1 parent 7d3a405 commit bc82a42

408 files changed

Lines changed: 11378 additions & 223 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
name: Deploy new documentation to GitHub Pages
2+
3+
on:
4+
push:
5+
branches: ["**"]
6+
paths:
7+
- "apps/docs-new/**"
8+
- "apps/web/openapi/**"
9+
- ".github/workflows/deploy-docs-new-to-pages.yml"
10+
- "pnpm-lock.yaml"
11+
- "pnpm-workspace.yaml"
12+
- "package.json"
13+
workflow_dispatch:
14+
15+
permissions:
16+
contents: read
17+
pages: write
18+
id-token: write
19+
20+
concurrency:
21+
group: "pages-docs-new"
22+
cancel-in-progress: false
23+
24+
jobs:
25+
build:
26+
runs-on: ubuntu-latest
27+
steps:
28+
- name: Checkout
29+
uses: actions/checkout@v4
30+
31+
- name: Setup Node
32+
uses: actions/setup-node@v4
33+
with:
34+
node-version: "20"
35+
36+
- name: Setup pnpm
37+
uses: pnpm/action-setup@v4
38+
39+
- name: Setup Pages
40+
id: pages
41+
uses: actions/configure-pages@v5
42+
43+
- name: Install dependencies
44+
run: pnpm install --frozen-lockfile
45+
46+
- name: Generate OpenAPI spec
47+
run: pnpm --filter @courselit/web openapi:generate
48+
49+
- name: Build docs site
50+
env:
51+
NEXT_PUBLIC_BASE_PATH: ${{ steps.pages.outputs.base_path }}
52+
run: pnpm --filter @courselit/docs-new build
53+
54+
- name: Upload artifact
55+
uses: actions/upload-pages-artifact@v3
56+
with:
57+
path: ./apps/docs-new/out
58+
59+
deploy:
60+
environment:
61+
name: github-pages
62+
url: ${{ steps.deployment.outputs.page_url }}
63+
runs-on: ubuntu-latest
64+
needs: build
65+
steps:
66+
- name: Deploy to GitHub Pages
67+
id: deployment
68+
uses: actions/deploy-pages@v4

apps/docs-new/.gitignore

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2+
3+
# dependencies
4+
/node_modules
5+
/.pnp
6+
.pnp.js
7+
8+
# testing
9+
/coverage
10+
11+
# next.js
12+
/.next/
13+
/out/
14+
15+
# production
16+
/build
17+
18+
# misc
19+
.DS_Store
20+
*.pem
21+
22+
# debug
23+
npm-debug.log*
24+
yarn-debug.log*
25+
yarn-error.log*
26+
.pnpm-debug.log*
27+
28+
# local env files
29+
.env.local
30+
.env.development.local
31+
.env.test.local
32+
.env.production.local
33+
34+
# vercel
35+
.vercel
36+
37+
# typescript
38+
*.tsbuildinfo
39+
40+
# analyze
41+
/analyze

apps/docs-new/.source/browser.ts

Lines changed: 184 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,184 @@
1+
// @ts-nocheck
2+
import { browser } from "fumadocs-mdx/runtime/browser";
3+
import type * as Config from "../source.config";
4+
5+
const create = browser<
6+
typeof Config,
7+
import("fumadocs-mdx/runtime/types").InternalTypeConfig & {
8+
DocData: {};
9+
}
10+
>();
11+
const browserCollections = {
12+
docs: create.doc("docs", {
13+
"index.mdx": () => import("../content/docs/index.mdx?collection=docs"),
14+
"blog/introduction.mdx": () =>
15+
import("../content/docs/blog/introduction.mdx?collection=docs"),
16+
"blog/publish.mdx": () =>
17+
import("../content/docs/blog/publish.mdx?collection=docs"),
18+
"communities/create.mdx": () =>
19+
import("../content/docs/communities/create.mdx?collection=docs"),
20+
"communities/delete.mdx": () =>
21+
import("../content/docs/communities/delete.mdx?collection=docs"),
22+
"communities/grant-access-to-additional-products.mdx": () =>
23+
import(
24+
"../content/docs/communities/grant-access-to-additional-products.mdx?collection=docs"
25+
),
26+
"communities/introduction.mdx": () =>
27+
import(
28+
"../content/docs/communities/introduction.mdx?collection=docs"
29+
),
30+
"communities/manage-members.mdx": () =>
31+
import(
32+
"../content/docs/communities/manage-members.mdx?collection=docs"
33+
),
34+
"communities/manage-reported-content.mdx": () =>
35+
import(
36+
"../content/docs/communities/manage-reported-content.mdx?collection=docs"
37+
),
38+
"courses/add-content.mdx": () =>
39+
import("../content/docs/courses/add-content.mdx?collection=docs"),
40+
"courses/certificates.mdx": () =>
41+
import("../content/docs/courses/certificates.mdx?collection=docs"),
42+
"courses/create.mdx": () =>
43+
import("../content/docs/courses/create.mdx?collection=docs"),
44+
"courses/introduction.mdx": () =>
45+
import("../content/docs/courses/introduction.mdx?collection=docs"),
46+
"courses/invite-customers.mdx": () =>
47+
import(
48+
"../content/docs/courses/invite-customers.mdx?collection=docs"
49+
),
50+
"courses/publish.mdx": () =>
51+
import("../content/docs/courses/publish.mdx?collection=docs"),
52+
"courses/reports.mdx": () =>
53+
import("../content/docs/courses/reports.mdx?collection=docs"),
54+
"courses/section.mdx": () =>
55+
import("../content/docs/courses/section.mdx?collection=docs"),
56+
"courses/set-a-price-for-product.mdx": () =>
57+
import(
58+
"../content/docs/courses/set-a-price-for-product.mdx?collection=docs"
59+
),
60+
"courses/visibility.mdx": () =>
61+
import("../content/docs/courses/visibility.mdx?collection=docs"),
62+
"developers/introduction.mdx": () =>
63+
import(
64+
"../content/docs/developers/introduction.mdx?collection=docs"
65+
),
66+
"developers/manage-users.mdx": () =>
67+
import(
68+
"../content/docs/developers/manage-users.mdx?collection=docs"
69+
),
70+
"downloads/create.mdx": () =>
71+
import("../content/docs/downloads/create.mdx?collection=docs"),
72+
"downloads/introduction.mdx": () =>
73+
import(
74+
"../content/docs/downloads/introduction.mdx?collection=docs"
75+
),
76+
"downloads/lead-magnet.mdx": () =>
77+
import("../content/docs/downloads/lead-magnet.mdx?collection=docs"),
78+
"downloads/set-a-price.mdx": () =>
79+
import("../content/docs/downloads/set-a-price.mdx?collection=docs"),
80+
"email-marketing/analytics.mdx": () =>
81+
import(
82+
"../content/docs/email-marketing/analytics.mdx?collection=docs"
83+
),
84+
"email-marketing/broadcasts.mdx": () =>
85+
import(
86+
"../content/docs/email-marketing/broadcasts.mdx?collection=docs"
87+
),
88+
"email-marketing/introduction.mdx": () =>
89+
import(
90+
"../content/docs/email-marketing/introduction.mdx?collection=docs"
91+
),
92+
"email-marketing/mail-access-request.mdx": () =>
93+
import(
94+
"../content/docs/email-marketing/mail-access-request.mdx?collection=docs"
95+
),
96+
"email-marketing/sequences.mdx": () =>
97+
import(
98+
"../content/docs/email-marketing/sequences.mdx?collection=docs"
99+
),
100+
"email-marketing/templates.mdx": () =>
101+
import(
102+
"../content/docs/email-marketing/templates.mdx?collection=docs"
103+
),
104+
"getting-started/features.mdx": () =>
105+
import(
106+
"../content/docs/getting-started/features.mdx?collection=docs"
107+
),
108+
"getting-started/quick-start.mdx": () =>
109+
import(
110+
"../content/docs/getting-started/quick-start.mdx?collection=docs"
111+
),
112+
"getting-started/vision.mdx": () =>
113+
import(
114+
"../content/docs/getting-started/vision.mdx?collection=docs"
115+
),
116+
"lessons/add-quiz.mdx": () =>
117+
import("../content/docs/lessons/add-quiz.mdx?collection=docs"),
118+
"lessons/embed.mdx": () =>
119+
import("../content/docs/lessons/embed.mdx?collection=docs"),
120+
"lessons/scorm.mdx": () =>
121+
import("../content/docs/lessons/scorm.mdx?collection=docs"),
122+
"schools/add-custom-domain.mdx": () =>
123+
import(
124+
"../content/docs/schools/add-custom-domain.mdx?collection=docs"
125+
),
126+
"schools/create.mdx": () =>
127+
import("../content/docs/schools/create.mdx?collection=docs"),
128+
"schools/delete.mdx": () =>
129+
import("../content/docs/schools/delete.mdx?collection=docs"),
130+
"schools/google-sign-in.mdx": () =>
131+
import(
132+
"../content/docs/schools/google-sign-in.mdx?collection=docs"
133+
),
134+
"schools/introduction.mdx": () =>
135+
import("../content/docs/schools/introduction.mdx?collection=docs"),
136+
"schools/set-up-payments.mdx": () =>
137+
import(
138+
"../content/docs/schools/set-up-payments.mdx?collection=docs"
139+
),
140+
"schools/sso.mdx": () =>
141+
import("../content/docs/schools/sso.mdx?collection=docs"),
142+
"self-hosting/cloud-vs-self-hosting.mdx": () =>
143+
import(
144+
"../content/docs/self-hosting/cloud-vs-self-hosting.mdx?collection=docs"
145+
),
146+
"self-hosting/introduction.mdx": () =>
147+
import(
148+
"../content/docs/self-hosting/introduction.mdx?collection=docs"
149+
),
150+
"self-hosting/self-host.mdx": () =>
151+
import(
152+
"../content/docs/self-hosting/self-host.mdx?collection=docs"
153+
),
154+
"users/delete.mdx": () =>
155+
import("../content/docs/users/delete.mdx?collection=docs"),
156+
"users/filters.mdx": () =>
157+
import("../content/docs/users/filters.mdx?collection=docs"),
158+
"users/introduction.mdx": () =>
159+
import("../content/docs/users/introduction.mdx?collection=docs"),
160+
"users/manage.mdx": () =>
161+
import("../content/docs/users/manage.mdx?collection=docs"),
162+
"users/notifications.mdx": () =>
163+
import("../content/docs/users/notifications.mdx?collection=docs"),
164+
"users/permissions.mdx": () =>
165+
import("../content/docs/users/permissions.mdx?collection=docs"),
166+
"users/segments.mdx": () =>
167+
import("../content/docs/users/segments.mdx?collection=docs"),
168+
"website/blocks.mdx": () =>
169+
import("../content/docs/website/blocks.mdx?collection=docs"),
170+
"website/create-page.mdx": () =>
171+
import("../content/docs/website/create-page.mdx?collection=docs"),
172+
"website/edit.mdx": () =>
173+
import("../content/docs/website/edit.mdx?collection=docs"),
174+
"website/introduction.mdx": () =>
175+
import("../content/docs/website/introduction.mdx?collection=docs"),
176+
"website/rich-text.mdx": () =>
177+
import("../content/docs/website/rich-text.mdx?collection=docs"),
178+
"website/sales-pages.mdx": () =>
179+
import("../content/docs/website/sales-pages.mdx?collection=docs"),
180+
"website/themes.mdx": () =>
181+
import("../content/docs/website/themes.mdx?collection=docs"),
182+
}),
183+
};
184+
export default browserCollections;

apps/docs-new/.source/dynamic.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
// @ts-nocheck
2+
import { dynamic } from "fumadocs-mdx/runtime/dynamic";
3+
import * as Config from "../source.config";
4+
5+
const create = await dynamic<
6+
typeof Config,
7+
import("fumadocs-mdx/runtime/types").InternalTypeConfig & {
8+
DocData: {};
9+
}
10+
>(
11+
Config,
12+
{ configPath: "source.config.ts", environment: "next", outDir: ".source" },
13+
{ doc: { passthroughs: ["extractedReferences"] } },
14+
);

0 commit comments

Comments
 (0)