Skip to content

Commit 3da662f

Browse files
committed
feat: ✨ enhance documentation structure and add redirect to intro page
1 parent 892bc27 commit 3da662f

8 files changed

Lines changed: 116 additions & 20 deletions

File tree

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,9 @@ yarn-error.log*
3535

3636
packages/*/dist/
3737
packages/*/dist/*
38+
39+
# Ignore everything inside docs/ by default (generated content)
40+
apps/docs/docs/*
41+
apps/docs/docs/intro.md
42+
# But keep the placeholder file
43+
!apps/docs/docs/.gitkeep

apps/docs/docs/.gitignore

Lines changed: 0 additions & 1 deletion
This file was deleted.

apps/docs/docs/.gitkeep

Whitespace-only changes.

apps/docs/docs/intro.md

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,38 @@
1-
# Docusaurus Plugins
1+
# @gracefullight/docusaurus-plugins
22

3-
Documentation for the plugins in this repository.
3+
This monorepo contains a collection of plugins for [Docusaurus](https://docusaurus.io/) to enhance your documentation website. The following plugins are included:
4+
5+
- [@gracefullight/docusaurus-plugin-baidu-analytics](https://www.npmjs.com/package/@gracefullight/docusaurus-plugin-baidu-analytics)
6+
- [@gracefullight/docusaurus-plugin-channelio](https://www.npmjs.com/package/@gracefullight/docusaurus-plugin-channelio)
7+
- [@gracefullight/docusaurus-plugin-chatra](https://www.npmjs.com/package/@gracefullight/docusaurus-plugin-chatra)
8+
- [@gracefullight/docusaurus-plugin-cloudflare-analytics](https://www.npmjs.com/package/@gracefullight/docusaurus-plugin-cloudflare-analytics)
9+
- [@gracefullight/docusaurus-plugin-gitter](https://www.npmjs.com/package/@gracefullight/docusaurus-plugin-gitter)
10+
- [@gracefullight/docusaurus-plugin-google-adsense](https://www.npmjs.com/package/@gracefullight/docusaurus-plugin-google-adsense)
11+
- [@gracefullight/docusaurus-plugin-intercom](https://www.npmjs.com/package/@gracefullight/docusaurus-plugin-intercom)
12+
- [@gracefullight/docusaurus-plugin-meta-pixel](https://www.npmjs.com/package/@gracefullight/docusaurus-plugin-meta-pixel)
13+
- [@gracefullight/docusaurus-plugin-microsoft-clarity](https://www.npmjs.com/package/@gracefullight/docusaurus-plugin-microsoft-clarity)
14+
- [@gracefullight/docusaurus-plugin-naver-analytics](https://www.npmjs.com/package/@gracefullight/docusaurus-plugin-naver-analytics)
15+
- [@gracefullight/docusaurus-plugin-sentry](https://www.npmjs.com/package/@gracefullight/docusaurus-plugin-sentry)
16+
- [@gracefullight/docusaurus-plugin-tailwind](https://www.npmjs.com/package/@gracefullight/docusaurus-plugin-tailwind)
17+
- [@gracefullight/docusaurus-plugin-vercel-analytics](https://www.npmjs.com/package/@gracefullight/docusaurus-plugin-vercel-analytics)
18+
- [@gracefullight/docusaurus-plugin-yandex-metrica](https://www.npmjs.com/package/@gracefullight/docusaurus-plugin-yandex-metrica)
19+
20+
## Installation
21+
22+
You can install these plugins via pnpm:
23+
24+
```bash
25+
pnpm add @gracefullight/docusaurus-plugin-${PLUGIN_NAME}
26+
```
27+
28+
## Usage
29+
30+
To use these plugins, you will need to configure them in your Docusaurus `docusaurus.config.js` file. Please refer to the individual plugin's README for specific configuration instructions.
31+
32+
## Contributing
33+
34+
Contributions are welcome. If you find a bug or want to suggest a new feature, please open an issue or a pull request. To contribute a new plugin, you can use the command `pnpm gen plugin`.
35+
36+
## License
37+
38+
This repository is licensed under the [MIT License](#license).

apps/docs/docusaurus.config.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,20 @@
1+
import type { ThemeConfig } from "@docusaurus/preset-classic";
12
import type { Config } from "@docusaurus/types";
23

4+
const themeConfig: ThemeConfig = {
5+
navbar: {
6+
items: [
7+
{
8+
"aria-label": "GitHub repository",
9+
className: "header-github-link",
10+
href: "https://github.com/gracefullight/docusaurus-plugins",
11+
position: "right",
12+
},
13+
],
14+
title: "docusaurus-plugins",
15+
},
16+
};
17+
318
const config: Config = {
419
baseUrl: "/docusaurus-plugins/",
520
favicon: "img/favicon.ico",
@@ -12,12 +27,14 @@ const config: Config = {
1227
{
1328
blog: false,
1429
docs: {
30+
routeBasePath: "/",
1531
sidebarPath: "./sidebars.ts",
1632
},
1733
},
1834
],
1935
],
2036
projectName: "docusaurus-plugins",
37+
themeConfig,
2138
title: "docusaurus-plugins",
2239
url: "https://gracefullight.github.io",
2340
};

apps/docs/package.json

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,7 @@
1919
"private": true,
2020
"scripts": {
2121
"build": "pnpm prepare-docs && docusaurus build",
22-
"prepare-docs": "tsx ./scripts/prepare-docs.ts",
23-
"start": "pnpm prepare-docs && docusaurus start"
24-
},
25-
"type": "module"
22+
"dev": "pnpm prepare-docs && docusaurus start",
23+
"prepare-docs": "tsx ./scripts/prepare-docs.ts"
24+
}
2625
}

apps/docs/scripts/prepare-docs.ts

Lines changed: 46 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,54 @@
1-
import { access, copyFile, mkdir, readdir, rm } from "node:fs/promises";
1+
import {
2+
access,
3+
copyFile,
4+
mkdir,
5+
readdir,
6+
readFile,
7+
rm,
8+
writeFile,
9+
} from "node:fs/promises";
210
import { join } from "node:path";
311

4-
const root = join(process.cwd(), "..", "..", "packages");
5-
const outDir = join(process.cwd(), "docs", "plugins");
12+
async function main() {
13+
const monorepoRoot = join(process.cwd(), "..", "..");
14+
const packagesRoot = join(monorepoRoot, "packages");
15+
const outDir = join(process.cwd(), "docs", "plugins");
616

7-
await rm(outDir, { force: true, recursive: true });
8-
await mkdir(outDir, { recursive: true });
17+
await rm(outDir, { force: true, recursive: true });
18+
await mkdir(outDir, { recursive: true });
919

10-
const packages = await readdir(root, { withFileTypes: true });
11-
12-
for (const dir of packages) {
13-
if (!dir.isDirectory() || dir.name === "tsconfig") continue;
14-
const readme = join(root, dir.name, "README.md");
20+
// Copy the monorepo README as the docs intro page
21+
const repoReadme = join(monorepoRoot, "README.md");
22+
const introDoc = join(process.cwd(), "docs", "intro.md");
1523
try {
16-
await access(readme);
17-
await copyFile(readme, join(outDir, `${dir.name}.md`));
24+
await access(repoReadme);
25+
const raw = await readFile(repoReadme, "utf8");
26+
// Rewrite repo-relative links that would 404 on the docs site
27+
const rewritten = raw.replace(
28+
/\((?:\.\/)?LICENSE(?:\.md)?\)/g,
29+
"(#license)",
30+
);
31+
await writeFile(introDoc, rewritten, "utf8");
1832
} catch {
19-
/* ignore */
33+
// ignore if the root README does not exist
34+
}
35+
36+
// Copy each package README under docs/plugins
37+
const packages = await readdir(packagesRoot, { withFileTypes: true });
38+
39+
for (const dir of packages) {
40+
if (!dir.isDirectory() || dir.name === "tsconfig") continue;
41+
const readme = join(packagesRoot, dir.name, "README.md");
42+
try {
43+
await access(readme);
44+
await copyFile(readme, join(outDir, `${dir.name}.md`));
45+
} catch {
46+
/* ignore */
47+
}
2048
}
2149
}
50+
51+
main().catch((err) => {
52+
console.error(err);
53+
process.exit(1);
54+
});

apps/docs/src/pages/index.tsx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import { Redirect } from "@docusaurus/router";
2+
import useBaseUrl from "@docusaurus/useBaseUrl";
3+
4+
export default function Home() {
5+
const to = useBaseUrl("/intro");
6+
return <Redirect to={to} />;
7+
}

0 commit comments

Comments
 (0)