diff --git a/site/pages/all.js b/site/pages/all.js
new file mode 100644
index 0000000..9f92e49
--- /dev/null
+++ b/site/pages/all.js
@@ -0,0 +1,52 @@
+import { NextSeo } from "next-seo";
+import { allOtherPages } from "contentlayer/generated";
+
+export default function All({ pages }) {
+ const labels = new Set(pages.map((p) => p.wikiPage.charAt(0)));
+ return (
+ <>
+
+
+
A-Z Index
+ {Array.from(labels).map((pageTitle) => (
+
+
{pageTitle}
+
+
+ {pages.map(
+ ({ wikiPage, wikiPath }) =>
+ pageTitle === wikiPage.charAt(0) && (
+ -
+ {wikiPage}
+
+ )
+ )}
+
+
+ ))}
+
+ >
+ );
+}
+
+export async function getStaticProps() {
+ const pages = allOtherPages
+ .map((page) => {
+ const wikiPath = page._raw.flattenedPath;
+ const wikiPage = wikiPath
+ .split("/")
+ .pop()
+ .replace(/-/g, " ")
+ .replace(
+ /^(\w)(.+)/,
+ (match, p1, p2) => p1.toUpperCase() + p2.toLowerCase()
+ );
+
+ return { wikiPage, wikiPath };
+ })
+ .sort((a, b) => a.wikiPage.localeCompare(b.wikiPage));
+
+ return {
+ props: { pages },
+ };
+}