on master help sign in
content/guides: rename routes for guide pages
commit78b45fbb25df645153956bb1afb2305427119398 authorMatilde Park <matilde.park@urbit.org> dateFri 29 Apr 2022, 12:56 (4 years ago) parent18fe7b5
9 files changed+36−53
content/ids/get.md → content/guides/getting-an-urbit-id.md content/applications/guide.md → content/guides/installing-applications.md content/groups/guide.md → content/guides/joining-groups.md pages/applications/[[...application]].js+2−2 pages/groups/[[...group]].js+1−1 pages/groups/guide.js → pages/guides/[slug].js+30−3 pages/applications/guide.js → pages/guides/installing-applications.js+2−2 pages/ids/[id].js+1−1 pages/ids/get.js−44
content/ids/get.md → content/guides/getting-an-urbit-id.mdrenamed

The content is the same.

content/applications/guide.md → content/guides/installing-applications.mdrenamed

The content is the same.

content/groups/guide.md → content/guides/joining-groups.mdrenamed

The content is the same.

pages/applications/[[...application]].js+2−2
@@ -74,7 +74,7 @@ const ApplicationPage = ({ data, markdown, params }) => {
7474 }
7575 />
7676 )}
77− {ob.isValidPatp(data?.developer) ? (
77+ {ob.isValidPatp(data?.developer) && data.developer.length < 10 ? (
7878 <MetadataLink
7979 title="Developer"
8080 href={`/ids/${data.developer}`}
@@ -105,7 +105,7 @@ const ApplicationPage = ({ data, markdown, params }) => {
105105 <p className="text-sm font-semibold text-wall-400">
106106 Learn how to install an Urbit application
107107 </p>
108− <Link href="/applications/guide">
108+ <Link href="/guides/installing-applications">
109109 <button className="button-lg max-w-xs bg-green-400 text-white">
110110 Installing Urbit applications
111111 </button>
pages/groups/[[...group]].js+1−1
@@ -92,7 +92,7 @@ const GroupPage = ({ data, markdown, params }) => {
9292 <p className="text-sm font-semibold text-wall-400">
9393 Get on the network and join this group.
9494 </p>
95− <Link href="/groups/guide">
95+ <Link href="/guides/joining-groups">
9696 <button className="button-lg max-w-xs bg-green-400 text-white">
9797 How to join a group
9898 </button>
pages/groups/guide.js → pages/guides/[slug].jsrenamed+30−3
@@ -1,14 +1,22 @@
1+import { useRouter } from "next/router";
2+import { getPostBySlug, getAllPosts } from "../../lib/lib";
13import Head from "next/head";
24import Link from "next/link";
3−import { getPostBySlug } from "../../lib/lib";
45import Meta from "../../components/Meta";
5−import Markdown from "../../components/Markdown";
6+import ErrorPage from "../404";
67import Container from "../../components/Container";
8+import Markdown from "../../components/Markdown";
79import SingleColumn from "../../components/SingleColumn";
810import Section from "../../components/Section";
11+
912import { decode } from "html-entities";
1013
1114export default function GuidePage({ post, markdown }) {
15+ const router = useRouter();
16+ if (!router.isFallback && !post?.slug) {
17+ return <ErrorPage />;
18+ }
19+
1220 return (
1321 <Container>
1422 <Head>
@@ -34,7 +42,11 @@ export default function GuidePage({ post, markdown }) {
3442
3543//
3644export async function getStaticProps({ params }) {
37− const post = getPostBySlug("guide", ["title", "slug", "content"], "groups");
45+ const post = getPostBySlug(
46+ params.slug,
47+ ["title", "slug", "date", "description", "content", "extra"],
48+ "guides"
49+ );
3850
3951 const markdown = await Markdown({ post });
4052
@@ -42,3 +54,18 @@ export async function getStaticProps({ params }) {
4254 props: { post, markdown },
4355 };
4456}
57+
58+export async function getStaticPaths() {
59+ const posts = getAllPosts(["slug", "date"], "guides", "date");
60+
61+ return {
62+ paths: posts.map((post) => {
63+ return {
64+ params: {
65+ slug: post.slug,
66+ },
67+ };
68+ }),
69+ fallback: false,
70+ };
71+}
pages/applications/guide.js → pages/guides/installing-applications.jsrenamed+2−2
@@ -88,9 +88,9 @@ export default function GuidePage({ post, markdown }) {
8888//
8989export async function getStaticProps({ params }) {
9090 const post = getPostBySlug(
91− "guide",
91+ "installing-applications",
9292 ["title", "slug", "content"],
93− "applications"
93+ "guides"
9494 );
9595
9696 const markdown = await Markdown({ post });
pages/ids/[id].js+1−1
@@ -143,7 +143,7 @@ const IdPage = ({ data, markdown, applications, groups, network, params }) => {
143143 <p className="text-md font-semibold text-wall-400">
144144 Learn how get your own Urbit ID.
145145 </p>
146− <Link href="/ids/get">
146+ <Link href="/guides/getting-an-urbit-id">
147147 <button className="button-lg max-w-xs bg-green-400 text-white">
148148 Get an Urbit ID
149149 </button>
pages/ids/get.jsdeleted−44
@@ -1,44 +0,0 @@
1−import Head from "next/head";
2−import Link from "next/link";
3−import { getPostBySlug } from "../../lib/lib";
4−import Meta from "../../components/Meta";
5−import Markdown from "../../components/Markdown";
6−import Container from "../../components/Container";
7−import SingleColumn from "../../components/SingleColumn";
8−import Section from "../../components/Section";
9−import { decode } from "html-entities";
10−
11−export default function GuidePage({ post, markdown }) {
12− return (
13− <Container>
14− <Head>
15− <title>Urbit • {post.title}</title>
16− {Meta(post)}
17− </Head>
18− <SingleColumn>
19− <Section narrow short>
20− <h2>{post.title}</h2>
21− </Section>
22− <Section narrow short className="markdown">
23− <article
24− dangerouslySetInnerHTML={{ __html: decode(markdown) }}
25− ></article>
26− <Link href="/">
27− <a className="text-xl pt-12 block font-semibold">Urbit.org</a>
28− </Link>
29− </Section>
30− </SingleColumn>
31− </Container>
32− );
33−}
34−
35−//
36−export async function getStaticProps({ params }) {
37− const post = getPostBySlug("get", ["title", "slug", "content"], "ids");
38−
39− const markdown = await Markdown({ post });
40−
41− return {
42− props: { post, markdown },
43− };
44−}