Skip to content

Commit 33ad858

Browse files
authored
[ENG-526] Restructure roam documentation (#252)
* pages created * rough structure * shared page + share components cleanup * proof read + badge * cleanup * cleanup Roam * sm * address PR comments * fix build
1 parent a47a867 commit 33ad858

File tree

8 files changed

+28
-182
lines changed

8 files changed

+28
-182
lines changed
Lines changed: 16 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -1,110 +1,31 @@
1-
import fs from "fs/promises";
2-
import path from "path";
3-
import { notFound } from "next/navigation";
1+
import { docMap } from "~/(docs)/docs/roam/docMap";
42
import { Metadata } from "next";
5-
import { DocsHeader } from "~/components/DocsHeader";
6-
import { Prose } from "~/components/Prose";
7-
import { TableOfContents } from "~/components/TableOfContents";
8-
import { getProcessedMarkdownFile } from "~/utils/getProcessedMarkdownFile";
9-
import { collectSections } from "~/utils/getSections";
10-
import { PrevNextLinks } from "~/components/PrevNextLinks";
11-
import { getFileMetadata } from "~/utils/getFileMetadata";
3+
import {
4+
generateDocsStaticParams,
5+
generateDocsMetadata,
6+
DocsPage,
7+
} from "~/components/DocsPage";
128

139
type Params = {
1410
params: Promise<{
1511
slug: string;
1612
}>;
1713
};
1814

19-
const PATH = "app/(docs)/docs/roam/pages";
20-
const DIRECTORY = path.join(process.cwd(), PATH);
21-
2215
const Page = async ({ params }: Params) => {
23-
try {
24-
const { slug } = await params;
25-
const { data, contentHtml } = await getProcessedMarkdownFile({
26-
slug,
27-
directory: DIRECTORY,
28-
});
29-
const tableOfContents = await collectSections(contentHtml);
16+
const { slug } = await params;
17+
const directory = docMap[slug] ?? docMap.default;
3018

31-
return (
32-
<>
33-
<div className="min-w-0 max-w-2xl flex-auto px-4 py-8 lg:max-w-none lg:pl-8 lg:pr-0 xl:px-16">
34-
<article className="[&::-webkit-scrollbar]:hidden">
35-
<DocsHeader title={data.title} />
36-
<Prose>
37-
<div dangerouslySetInnerHTML={{ __html: contentHtml }} />
38-
</Prose>
39-
</article>
40-
<PrevNextLinks />
41-
</div>
42-
<TableOfContents tableOfContents={tableOfContents} />
43-
</>
44-
);
45-
} catch (error) {
46-
console.error("Error rendering docs page:", error);
47-
return notFound();
48-
}
19+
return <DocsPage params={Promise.resolve({ slug })} directory={directory} />;
4920
};
5021

5122
export default Page;
5223

53-
export const generateStaticParams = async () => {
54-
try {
55-
const directoryExists = await fs
56-
.stat(DIRECTORY)
57-
.then((stats) => stats.isDirectory())
58-
.catch(() => false);
59-
60-
if (!directoryExists) {
61-
console.log("No docs directory found");
62-
return [];
63-
}
64-
65-
const files = await fs.readdir(DIRECTORY);
66-
67-
const mdFiles = files.filter((filename) => filename.endsWith(".md"));
68-
69-
const publishedFiles = await Promise.all(
70-
mdFiles.map(async (filename) => {
71-
const { published } = await getFileMetadata({
72-
filename,
73-
directory: DIRECTORY,
74-
});
75-
return { filename, published };
76-
}),
77-
);
24+
export const generateStaticParams = () =>
25+
generateDocsStaticParams(docMap.default);
7826

79-
return publishedFiles
80-
.filter(({ published }) => published)
81-
.map(({ filename }) => ({
82-
slug: filename.replace(/\.md$/, ""),
83-
}));
84-
} catch (error) {
85-
console.error("Error generating static params:", error);
86-
return [];
87-
}
88-
};
89-
90-
export const generateMetadata = async ({
91-
params,
92-
}: Params): Promise<Metadata> => {
93-
try {
94-
const { slug } = await params;
95-
const { data } = await getProcessedMarkdownFile({
96-
slug,
97-
directory: DIRECTORY,
98-
});
99-
100-
return {
101-
title: data.title,
102-
authors: [{ name: data.author }],
103-
};
104-
} catch (error) {
105-
console.error("Error generating metadata:", error);
106-
return {
107-
title: "Docs",
108-
};
109-
}
110-
};
27+
export async function generateMetadata({ params }: Params): Promise<Metadata> {
28+
const { slug } = await params;
29+
const directory = docMap[slug] ?? docMap.default;
30+
return generateDocsMetadata({ params: Promise.resolve({ slug }), directory });
31+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { sharedDocMap } from "~/(docs)/docs/shared/docMap";
2+
3+
const ROAM_DOCS = "app/(docs)/docs/roam/pages";
4+
type DocMapType = {
5+
default: string;
6+
[key: string]: string;
7+
};
8+
9+
export const docMap: DocMapType = {
10+
default: ROAM_DOCS,
11+
...sharedDocMap,
12+
};

apps/website/app/(docs)/docs/roam/pages/base-grammar.md

Lines changed: 0 additions & 27 deletions
This file was deleted.

apps/website/app/(docs)/docs/roam/pages/lab-notebooks.md

Lines changed: 0 additions & 8 deletions
This file was deleted.

apps/website/app/(docs)/docs/roam/pages/literature-reviewing.md

Lines changed: 0 additions & 14 deletions
This file was deleted.

apps/website/app/(docs)/docs/roam/pages/reading-clubs.md

Lines changed: 0 additions & 10 deletions
This file was deleted.

apps/website/app/(docs)/docs/roam/pages/research-roadmapping.md

Lines changed: 0 additions & 8 deletions
This file was deleted.

apps/website/app/(docs)/docs/roam/pages/what-is-discourse-graph.md

Lines changed: 0 additions & 20 deletions
This file was deleted.

0 commit comments

Comments
 (0)