@@ -1,121 +0,0 @@
1−import Head from "next/head";
2−import Link from "next/link";
3−import { useRouter } from "next/router";
4−import classnames from "classnames";
5−import { join } from "path";
6−import Meta from "../../components/Meta";
7−import { Markdown, getPage } from "@urbit/foundation-design-system";
8−import ContentArea from "../../components/ContentArea";
9−import Sidebar from "../../components/DocsSidebar";
10−import communityTree from "../../cache/community.json";
12−const breadcrumbs = (posts, paths) => {
14− <Link href="/">Urbit</Link>,
15− <span className="px-1">/</span>,
16− <Link href="/community">Community</Link>,
18− let thisLink = "/community";
19− for (const path of paths) {
20− posts = posts.children[path];
21− thisLink = join(thisLink, path);
23− <span className="px-1">/</span>,
24− <Link href={thisLink}>{posts.title}</Link>
30−const childPages = (thisLink, children, level = 0) => (
31− <ul className="pl-1">
32− {children?.map((child) => (
33− <li>{pageTree(join(thisLink, child.slug), child, level)}</li>
38−const pageTree = (thisLink, tree, level = 0) => {
39− const router = useRouter();
41− const isThisPage = router.asPath === thisLink;
43− const pageItemClasses = classnames({
44− "pl-4 text-wall-600 text-base hover:text-green-400": level === 0,
45− "pl-8 text-wall-600 text-base hover:text-green-400": level === 1,
46− "pl-12 text-wall-600 text-base hover:text-green-400": level === 2,
47− "dot relative": isThisPage,
48− "text-green-400": isThisPage,
53− <Link href={thisLink}>
54− <a className={`${pageItemClasses} cursor-pointer`}>{tree.title}</a>
60−export default function UsingLayout({ posts, data, markdown, params, search }) {
64− <title>{data.title} • Community</title>
67− <div className="flex h-screen min-h-screen w-screen sidebar">
68− <Sidebar search={search}>
69− {childPages("/community", posts.pages)}
72− breadcrumbs={breadcrumbs(posts, params.slug?.slice(0, -1) || "")}
75− section={"Community"}
78− <div className="markdown">
79− <Markdown.render content={JSON.parse(markdown)} />
87−export async function getStaticProps({ params }) {
88− const posts = communityTree;
90− const { data, content } = getPage(
91− join(process.cwd(), "content/community", params.slug?.join("/") || "/")
94− const markdown = JSON.stringify(Markdown.parse({ post: { content } }));
96− return { props: { posts, data, markdown, params } };
99−export async function getStaticPaths() {
100− const posts = communityTree;
104− const allHrefs = (thisLink, tree) => {
105− slugs.push(thisLink, ...tree.pages.map((e) => join(thisLink, e.slug)));
106− allHrefsChildren(thisLink, tree.children);
109− const allHrefsChildren = (thisLink, children) => {
110− Object.entries(children).map(([childSlug, child]) => {
111− allHrefs(join(thisLink, childSlug), child);
115− allHrefs("/community", posts);