1import { useRouter } from "next/router";
2import Link from "next/link";
3import Head from "next/head";
4import Meta from "../Meta";
5import ErrorPage from "../../pages/404";
6import classnames from "classnames";
13} from "@urbit/foundation-design-system";
14import Header from "../Header";
15import Footer from "../Footer";
17export default function BasicPage({
24 const router = useRouter();
25 if (!router.isFallback && !post?.slug) {
28 const metaPost = Object.assign({}, post);
29 metaPost.title = `${post.title} - ${section}`;
30 metaPost.description =
31 section === "Podcast" ? `${post.podcast} - ${post.date}` : post.description;
36 {post.title} • {section}
40 <IntraNav ourSite="https://urbit.org" search={search} />
43 <Section narrow className="space-y-12">
44 <div className="flex items-center space-x-4">
45 <img src={post.image} className="w-36" />
46 <div className="flex flex-col pl-2">
47 <h1 className={classnames({ "text-3xl": section === "Podcast" })}>
53 {/* General purpose metadata bar -- podcast listen button is special-cased URL, flexed at the end of the row */}
54 <div className="flex justify-between">
55 <div className="flex space-x-12">
57 <div className="flex flex-col">
58 <p className="font-bold text-wall-400">Podcast</p>
63 <div className="flex flex-col">
64 <p className="font-bold text-wall-400">Date</p>
65 <p className="shrink-0">{post.date}</p>
68 {post?.URL && section !== "Podcast" && (
69 <div className="flex flex-col">
70 <p className="font-bold text-wall-400">Website</p>
72 className="text-green-400 text-sm font-semibold font-mono"
75 {post.URL.slice(post.URL.indexOf("://") + 3)}
79 {post?.URL && section === "Urbit Marketplace" && (
80 <div className="flex flex-col">
81 <p className="font-bold text-wall-400">Accepts</p>
82 <p className="text-sm font-semibold font-mono">
83 {post.payment.join(", ")}
88 {post?.URL && section === "Podcast" && (
91 className="button-lg bg-green-400 text-white cursor-pointer flex space-x-2"
93 <img src="/images/sound.svg" />
98 <div className="flex">
99 <div className="markdown w-full">
100 <Markdown.render content={JSON.parse(markdown)} />
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list