Zyphos/site/quartz/components/ZyphosOverviewSidebar.tsx
2026-05-18 01:26:44 +01:00

37 lines
1.4 KiB
TypeScript

import { QuartzComponent, QuartzComponentConstructor, QuartzComponentProps } from "./types"
import { FullSlug, resolveRelative } from "../util/path"
type SidebarLink = {
label: string
slug: FullSlug
}
const links: SidebarLink[] = [
{ label: "Zyphos Simulation Brief", slug: "World/Zyphos-Simulation-Brief" as FullSlug },
{ label: "Zyphos Umbros Binary System", slug: "World/Zyphos-Umbros-Binary-System" as FullSlug },
{ label: "Mutable Memory Endosymbiosis", slug: "Ecology/Mutable-Memory-Endosymbiosis" as FullSlug },
{ label: "Zyphos Biosphere Examples", slug: "Ecology/Zyphos-Biosphere-Examples" as FullSlug },
{ label: "Biological Memetic Engine", slug: "Technologies/Biological-Memetic-Engine" as FullSlug },
]
export default (() => {
const ZyphosOverviewSidebar: QuartzComponent = ({ fileData }: QuartzComponentProps) => {
const currentSlug = fileData.slug ?? ("index" as FullSlug)
return (
<aside class="zyphos-overview" aria-label="Zyphos overview">
<p class="zyphos-overview-title">Project Surface</p>
<p class="zyphos-overview-copy">
Setting canon lives here. Aquarium renders the demo. Weksa will earn the names.
</p>
<nav>
{links.map((link) => (
<a href={resolveRelative(currentSlug, link.slug)}>{link.label}</a>
))}
</nav>
</aside>
)
}
return ZyphosOverviewSidebar
}) satisfies QuartzComponentConstructor