on master help sign in
pages, components: move markdown to client-side
a9bb055Matilde Park
components/BasicPage.js+2−3
@@ -8,6 +8,7 @@ import Footer from "./Footer";
8import SingleColumn from "./SingleColumn";
8import SingleColumn from "./SingleColumn";
9import Section from "./Section";
9import Section from "./Section";
10import { decode } from "html-entities";
10import { decode } from "html-entities";
11+import Markdown from "./Markdown";
11
12
12export default function BasicPage({ post, markdown, search }) {
13export default function BasicPage({ post, markdown, search }) {
13 const router = useRouter();
14 const router = useRouter();
@@ -26,9 +27,7 @@ export default function BasicPage({ post, markdown, search }) {
26 <h1>{post.title}</h1>
27 <h1>{post.title}</h1>
27 </Section>
28 </Section>
28 <Section narrow className="markdown">
29 <Section narrow className="markdown">
29− <article
30+ <Markdown post={post} />
30− dangerouslySetInnerHTML={{ __html: decode(markdown) }}
31− ></article>
32 </Section>
31 </Section>
33 </SingleColumn>
32 </SingleColumn>
34 <Footer />
33 <Footer />
components/GrantProgramOverview.js+1−4
@@ -14,7 +14,6 @@ import { DateTime } from "luxon";
14
14
15export default function GrantProgramOverview({
15export default function GrantProgramOverview({
16 post,
16 post,
17− markdown,
18 search,
17 search,
19 program,
18 program,
20 actionLink,
19 actionLink,
@@ -46,9 +45,7 @@ export default function GrantProgramOverview({
46 </Link>
45 </Link>
47 </Section>
46 </Section>
48 <Section narrow short className="markdown">
47 <Section narrow short className="markdown">
49− <article
48+ <Markdown post={post} />
50− dangerouslySetInnerHTML={{ __html: decode(markdown) }}
51− ></article>
52 </Section>
49 </Section>
53 </SingleColumn>
50 </SingleColumn>
54 <Footer />
51 <Footer />
components/PageWithIndex.js+5−5
@@ -8,9 +8,10 @@ import Footer from "./Footer";
8import SingleColumn from "./SingleColumn";
8import SingleColumn from "./SingleColumn";
9import Section from "./Section";
9import Section from "./Section";
10import { decode } from "html-entities";
10import { decode } from "html-entities";
11+import Markdown from "../components/Markdown";
11import { TableOfContents } from "./TableOfContents";
12import { TableOfContents } from "./TableOfContents";
12
13
13−export default function PageWithIndex({ post, markdown, search }) {
14+export default function PageWithIndex({ post, search }) {
14 const router = useRouter();
15 const router = useRouter();
15 if (!router.isFallback && !post?.slug) {
16 if (!router.isFallback && !post?.slug) {
16 return <ErrorPage />;
17 return <ErrorPage />;
@@ -28,10 +29,9 @@ export default function PageWithIndex({ post, markdown, search }) {
28 </Section>
29 </Section>
29 <Section narrow>
30 <Section narrow>
30 <div className="flex sidebar">
31 <div className="flex sidebar">
31− <article
32− className={"markdown pr-0 lg:pr-16"}
32+ <div className="markdown">
33− dangerouslySetInnerHTML={{ __html: decode(markdown) }}
33+ <Markdown post={post} />
34− ></article>
34+ </div>
35 <TableOfContents />
35 <TableOfContents />
36 </div>
36 </div>
37 </Section>
37 </Section>
components/gateway/Description.js+2−8
@@ -1,18 +1,12 @@
1import { decode } from "html-entities";
1import { decode } from "html-entities";
2+import Markdown from "../Markdown";
2
3
3const Description = ({ description, fallback, markdown }) => {
4const Description = ({ description, fallback, markdown }) => {
4 return (
5 return (
5 (description !== fallback || markdown) && (
6 (description !== fallback || markdown) && (
6 <div className="flex flex-col space-y-4">
7 <div className="flex flex-col space-y-4">
7 <p className="font-bold text-wall-400">Description</p>
8 <p className="font-bold text-wall-400">Description</p>
8− {markdown ? (
9− <div
10− className="flex flex-col space-y-4"
11− dangerouslySetInnerHTML={{ __html: decode(markdown) }}
12− />
13− ) : (
14− <p>{description}</p>
9+ {markdown ? <Markdown post={markdown} /> : <p>{description}</p>}
15− )}
16 </div>
10 </div>
17 )
11 )
18 );
12 );
pages/applications/[[...application]].js+3−6
@@ -7,14 +7,13 @@ import Container from "../../components/Container";
7import SingleColumn from "../../components/SingleColumn";
7import SingleColumn from "../../components/SingleColumn";
8import Section from "../../components/Section";
8import Section from "../../components/Section";
9import ob from "urbit-ob";
9import ob from "urbit-ob";
10−import Markdown from "../../components/Markdown";
11import GatewayHeader from "../../components/gateway/GatewayHeader";
10import GatewayHeader from "../../components/gateway/GatewayHeader";
12import Gateway404 from "../../components/gateway/Gateway404";
11import Gateway404 from "../../components/gateway/Gateway404";
13import MetadataBlock from "../../components/gateway/MetadataBlock";
12import MetadataBlock from "../../components/gateway/MetadataBlock";
14import MetadataLink from "../../components/gateway/MetadataLink";
13import MetadataLink from "../../components/gateway/MetadataLink";
15import Description from "../../components/gateway/Description";
14import Description from "../../components/gateway/Description";
16
15
17−const ApplicationPage = ({ data, markdown, params }) => {
16+const ApplicationPage = ({ data, content, params }) => {
18 const { application } = params;
17 const { application } = params;
19 if (!ob.isValidPatp(application[0])) {
18 if (!ob.isValidPatp(application[0])) {
20 return <Gateway404 type="application" />;
19 return <Gateway404 type="application" />;
@@ -95,7 +94,7 @@ const ApplicationPage = ({ data, markdown, params }) => {
95 <Description
94 <Description
96 description={data.description}
95 description={data.description}
97 fallback="An application on Urbit."
96 fallback="An application on Urbit."
98− markdown={markdown}
97+ markdown={content}
99 />
98 />
100 <hr className="text-wall-200" />
99 <hr className="text-wall-200" />
101 <div className="flex flex-col space-y-6">
100 <div className="flex flex-col space-y-6">
@@ -153,12 +152,10 @@ export const getServerSideProps = async ({ params, res }) => {
153 };
152 };
154 }
153 }
155
154
156− const markdown = await Markdown({ post: { content: content } }, true);
157−
158 return {
155 return {
159 props: {
156 props: {
160 data,
157 data,
161− markdown,
158+ content,
162 params,
159 params,
163 },
160 },
164 };
161 };
pages/audits.js+3−6
@@ -1,17 +1,14 @@
1import { getPostBySlug } from "../lib/lib";
1import { getPostBySlug } from "../lib/lib";
2import BasicPage from "../components/BasicPage";
2import BasicPage from "../components/BasicPage";
3−import Markdown from "../components/Markdown";
4
3
5−export default function Post({ post, markdown, search }) {
4+export default function Post({ post, search }) {
6− return <BasicPage post={post} markdown={markdown} search={search} />;
5+ return <BasicPage post={post} search={search} />;
7}
6}
8
7
9export async function getStaticProps() {
8export async function getStaticProps() {
10 const post = getPostBySlug("/audits", ["title", "slug", "content"], "/");
9 const post = getPostBySlug("/audits", ["title", "slug", "content"], "/");
11
10
12− const markdown = await Markdown({ post });
13−
14 return {
11 return {
15− props: { post, markdown },
12+ props: { post },
16 };
13 };
17}
14}
pages/bitcoin-wallet.js+3−6
@@ -1,9 +1,8 @@
1import { getPostBySlug } from "../lib/lib";
1import { getPostBySlug } from "../lib/lib";
2import BasicPage from "../components/BasicPage";
2import BasicPage from "../components/BasicPage";
3−import Markdown from "../components/Markdown";
4
3
5−export default function Post({ post, markdown, search }) {
4+export default function Post({ post, search }) {
6− return <BasicPage post={post} markdown={markdown} search={search} />;
5+ return <BasicPage post={post} search={search} />;
7}
6}
8
7
9export async function getStaticProps() {
8export async function getStaticProps() {
@@ -13,9 +12,7 @@ export async function getStaticProps() {
13 "/"
12 "/"
14 );
13 );
15
14
16− const markdown = await Markdown({ post });
17−
18 return {
15 return {
19− props: { post, markdown },
16+ props: { post },
20 };
17 };
21}
18}
pages/blog/[slug].js+3−7
@@ -12,7 +12,6 @@ import Link from "next/link";
12import Meta from "../../components/Meta";
12import Meta from "../../components/Meta";
13import ErrorPage from "../404";
13import ErrorPage from "../404";
14import Container from "../../components/Container";
14import Container from "../../components/Container";
15−import Markdown from "../../components/Markdown";
16import Header from "../../components/Header";
15import Header from "../../components/Header";
17import Footer from "../../components/Footer";
16import Footer from "../../components/Footer";
18import SingleColumn from "../../components/SingleColumn";
17import SingleColumn from "../../components/SingleColumn";
@@ -21,6 +20,7 @@ import Contact from "../../components/Contact";
21import PostPreview from "../../components/PostPreview";
20import PostPreview from "../../components/PostPreview";
22import TwoUp from "../../components/TwoUp";
21import TwoUp from "../../components/TwoUp";
23import { decode } from "html-entities";
22import { decode } from "html-entities";
23+import Markdown from "../../components/Markdown";
24
24
25export default function Post({
25export default function Post({
26 post,
26 post,
@@ -60,9 +60,7 @@ export default function Post({
60 <div className="text-wall-500 type-sub">{formatDate(date)}</div>
60 <div className="text-wall-500 type-sub">{formatDate(date)}</div>
61 </Section>
61 </Section>
62 <Section short narrow className="markdown">
62 <Section short narrow className="markdown">
63− <article
63+ <Markdown post={post} />
64− dangerouslySetInnerHTML={{ __html: decode(markdown) }}
65− ></article>
66 </Section>
64 </Section>
67 <Section narrow>
65 <Section narrow>
68 <Contact />
66 <Contact />
@@ -105,10 +103,8 @@ export async function getStaticProps({ params }) {
105 "blog"
103 "blog"
106 );
104 );
107
105
108− const markdown = await Markdown({ post });
109−
110 return {
106 return {
111− props: { post, markdown, nextPost, previousPost },
107+ props: { post, nextPost, previousPost },
112 };
108 };
113}
109}
114
110
pages/coinmarketcap.js+3−6
@@ -1,9 +1,8 @@
1import { getPostBySlug } from "../lib/lib";
1import { getPostBySlug } from "../lib/lib";
2import PageWithIndex from "../components/PageWithIndex";
2import PageWithIndex from "../components/PageWithIndex";
3−import Markdown from "../components/Markdown";
4
3
5−export default function Post({ post, markdown, search }) {
4+export default function Post({ post, search }) {
6− return <PageWithIndex post={post} markdown={markdown} search={search} />;
5+ return <PageWithIndex post={post} search={search} />;
7}
6}
8
7
9export async function getStaticProps() {
8export async function getStaticProps() {
@@ -13,9 +12,7 @@ export async function getStaticProps() {
13 "/"
12 "/"
14 );
13 );
15
14
16− const markdown = await Markdown({ post });
17−
18 return {
15 return {
19− props: { post, markdown },
16+ props: { post },
20 };
17 };
21}
18}
pages/community/[[...slug]].js+3−7
@@ -60,7 +60,7 @@ const pageTree = (thisLink, tree, level = 0) => {
60 );
60 );
61};
61};
62
62
63−export default function UsingLayout({ posts, data, params, search, markdown }) {
63+export default function UsingLayout({ posts, data, params, search, content }) {
64 return (
64 return (
65 <>
65 <>
66 <Head>
66 <Head>
@@ -79,9 +79,7 @@ export default function UsingLayout({ posts, data, params, search, markdown }) {
79 params={params}
79 params={params}
80 >
80 >
81 <div className="markdown">
81 <div className="markdown">
82− <article
82+ <Markdown post={{ content: content }} />
83− dangerouslySetInnerHTML={{ __html: decode(markdown) }}
84− ></article>
85 </div>
83 </div>
86 </ContentArea>
84 </ContentArea>
87 </div>
85 </div>
@@ -96,9 +94,7 @@ export async function getStaticProps({ params }) {
96 join(process.cwd(), "content/community", params.slug?.join("/") || "/")
94 join(process.cwd(), "content/community", params.slug?.join("/") || "/")
97 );
95 );
98
96
99− const markdown = await Markdown({ post: { content: content } });
100−
101− return { props: { posts, data, markdown, params } };
97+ return { props: { posts, data, content, params } };
102}
98}
103
99
104export async function getStaticPaths() {
100export async function getStaticPaths() {
pages/docs/[[...slug]].js+3−7
@@ -105,7 +105,7 @@ export default function DocsLayout({
105 data,
105 data,
106 params,
106 params,
107 search,
107 search,
108− markdown,
108+ content,
109 previousPost,
109 previousPost,
110 nextPost,
110 nextPost,
111}) {
111}) {
@@ -146,9 +146,7 @@ export default function DocsLayout({
146 params={params}
146 params={params}
147 >
147 >
148 <div className="markdown technical">
148 <div className="markdown technical">
149− <article
149+ <Markdown post={{ content: content }} />
150− dangerouslySetInnerHTML={{ __html: decode(markdown) }}
151− ></article>
152 </div>
150 </div>
153 <div className="flex justify-between mt-16">
151 <div className="flex justify-between mt-16">
154 {previousPost === null ? (
152 {previousPost === null ? (
@@ -212,9 +210,7 @@ export async function getStaticProps({ params }) {
212 "weight"
210 "weight"
213 ) || null;
211 ) || null;
214
212
215− const markdown = await Markdown({ post: { content: content } });
216−
217− return { props: { posts, data, markdown, previousPost, nextPost, params } };
213+ return { props: { posts, data, content, previousPost, nextPost, params } };
218}
214}
219
215
220export async function getStaticPaths() {
216export async function getStaticPaths() {
pages/events/[slug].js+2−7
@@ -121,10 +121,7 @@ export default function Event({
121 ) : null}
121 ) : null}
122
122
123 <Section short narrow className="markdown">
123 <Section short narrow className="markdown">
124− <article
124+ <Markdown post={event} />
125− className="pt-12 w-full"
126− dangerouslySetInnerHTML={{ __html: decode(markdown) }}
127− ></article>
128 </Section>
125 </Section>
129 <Section narrow>
126 <Section narrow>
130 <Contact />
127 <Contact />
@@ -161,10 +158,8 @@ export async function getStaticProps({ params }) {
161
158
162 const event = getPostBySlug(params.slug, eventKeys, "events");
159 const event = getPostBySlug(params.slug, eventKeys, "events");
163
160
164− const markdown = await Markdown({ post: event });
165−
166 return {
161 return {
167− props: { event, markdown, nextEvent, previousEvent },
162+ props: { event, nextEvent, previousEvent },
168 };
163 };
169}
164}
170
165
pages/faq.js+3−6
@@ -1,17 +1,14 @@
1import { getPostBySlug } from "../lib/lib";
1import { getPostBySlug } from "../lib/lib";
2import PageWithIndex from "../components/PageWithIndex";
2import PageWithIndex from "../components/PageWithIndex";
3−import Markdown from "../components/Markdown";
4
3
5−export default function Post({ post, markdown, search }) {
4+export default function Post({ post, search }) {
6− return <PageWithIndex post={post} markdown={markdown} search={search} />;
5+ return <PageWithIndex post={post} search={search} />;
7}
6}
8
7
9export async function getStaticProps() {
8export async function getStaticProps() {
10 const post = getPostBySlug("/faq", ["title", "slug", "content"], "/");
9 const post = getPostBySlug("/faq", ["title", "slug", "content"], "/");
11
10
12− const markdown = await Markdown({ post });
13−
14 return {
11 return {
15− props: { post, markdown },
12+ props: { post },
16 };
13 };
17}
14}
pages/getting-started/[[...slug]].js+3−7
@@ -11,7 +11,7 @@ import ContentArea from "../../components/ContentArea";
11import Sidebar from "../../components/Sidebar";
11import Sidebar from "../../components/Sidebar";
12import GettingStartedTree from "../../cache/getting-started.json";
12import GettingStartedTree from "../../cache/getting-started.json";
13
13
14−export default function UsingLayout({ posts, data, params, search, markdown }) {
14+export default function UsingLayout({ posts, data, params, search, content }) {
15 const router = useRouter();
15 const router = useRouter();
16
16
17 const select = (href) => {
17 const select = (href) => {
@@ -87,9 +87,7 @@ export default function UsingLayout({ posts, data, params, search, markdown }) {
87 disableToC
87 disableToC
88 >
88 >
89 <div className="markdown">
89 <div className="markdown">
90− <article
90+ <Markdown post={{ content: content }} />
91− dangerouslySetInnerHTML={{ __html: decode(markdown) }}
92− ></article>
93 </div>
91 </div>
94 {!params?.slug && <LaunchCards />}
92 {!params?.slug && <LaunchCards />}
95 </ContentArea>
93 </ContentArea>
@@ -293,9 +291,7 @@ export async function getStaticProps({ params }) {
293 )
291 )
294 );
292 );
295
293
296− const markdown = await Markdown({ post: { content: content } });
297−
298− return { props: { posts, data, markdown, params } };
294+ return { props: { posts, data, content, params } };
299}
295}
300
296
301export async function getStaticPaths() {
297export async function getStaticPaths() {
pages/grants/[slug].js+2−4
@@ -109,7 +109,7 @@ export default function Grant({ post, markdown, search }) {
109 </div>
109 </div>
110 </Section>
110 </Section>
111 <Section narrow className="markdown">
111 <Section narrow className="markdown">
112− <article dangerouslySetInnerHTML={{ __html: decode(markdown) }} />
112+ <Markdown post={post} />
113 </Section>
113 </Section>
114 {canApply && (
114 {canApply && (
115 <a
115 <a
@@ -134,10 +134,8 @@ export async function getStaticProps({ params }) {
134 "grants"
134 "grants"
135 );
135 );
136
136
137− const markdown = await Markdown({ post });
138−
139 return {
137 return {
140− props: { post, markdown },
138+ props: { post },
141 };
139 };
142}
140}
143
141
pages/grants/apprenticeships.js+2−20
@@ -1,27 +1,11 @@
1import { getPostBySlug } from "../../lib/lib";
1import { getPostBySlug } from "../../lib/lib";
2import GrantProgramOverview from "../../components/GrantProgramOverview";
2import GrantProgramOverview from "../../components/GrantProgramOverview";
3−import Markdown from "../../components/Markdown";
4−// new
5−import Head from "next/head";
6−import { TableOfContents } from "../../components/TableOfContents";
7−import Meta from "../../components/Meta";
8−import Link from "next/link";
9−import { useState } from "react";
10−import classnames from "classnames";
11−import Container from "../../components/Container";
12−import Footer from "../../components/Footer";
13−import Header from "../../components/Header";
14−import SingleColumn from "../../components/SingleColumn";
15−import Section from "../../components/Section";
16−import PostPreview from "../../components/PostPreview";
17−import GrantPreview from "../../components/GrantPreview";
18
3
19−export default function Post({ post, markdown, search }) {
4+export default function Post({ post, search }) {
20 return (
5 return (
21 <GrantProgramOverview
6 <GrantProgramOverview
22 program="apprenticeships"
7 program="apprenticeships"
23 post={post}
8 post={post}
24− markdown={markdown}
25 search={search}
9 search={search}
26 actionText="View Apprenticeships"
10 actionText="View Apprenticeships"
27 actionLink="/grants?program=apprenticeship&completed=true#view-grants"
11 actionLink="/grants?program=apprenticeship&completed=true#view-grants"
@@ -36,9 +20,7 @@ export async function getStaticProps() {
36 "/"
20 "/"
37 );
21 );
38
22
39− const markdown = await Markdown({ post });
40−
41 return {
23 return {
42− props: { post, markdown },
24+ props: { post },
43 };
25 };
44}
26}
pages/grants/bounties.js−14
@@ -1,20 +1,6 @@
1import { getPostBySlug } from "../../lib/lib";
1import { getPostBySlug } from "../../lib/lib";
2import GrantProgramOverview from "../../components/GrantProgramOverview";
2import GrantProgramOverview from "../../components/GrantProgramOverview";
3import Markdown from "../../components/Markdown";
3import Markdown from "../../components/Markdown";
4−// new
5−import Head from "next/head";
6−import { TableOfContents } from "../../components/TableOfContents";
7−import Meta from "../../components/Meta";
8−import Link from "next/link";
9−import { useState } from "react";
10−import classnames from "classnames";
11−import Container from "../../components/Container";
12−import Footer from "../../components/Footer";
13−import Header from "../../components/Header";
14−import SingleColumn from "../../components/SingleColumn";
15−import Section from "../../components/Section";
16−import PostPreview from "../../components/PostPreview";
17−import GrantPreview from "../../components/GrantPreview";
18
4
19export default function Post({ post, markdown, search }) {
5export default function Post({ post, markdown, search }) {
20 return (
6 return (
pages/grants/proposals.js+1−19
@@ -1,27 +1,11 @@
1import { getPostBySlug } from "../../lib/lib";
1import { getPostBySlug } from "../../lib/lib";
2import GrantProgramOverview from "../../components/GrantProgramOverview";
2import GrantProgramOverview from "../../components/GrantProgramOverview";
3−import Markdown from "../../components/Markdown";
4−// new
5−import Head from "next/head";
6−import { TableOfContents } from "../../components/TableOfContents";
7−import Meta from "../../components/Meta";
8−import Link from "next/link";
9−import { useState } from "react";
10−import classnames from "classnames";
11−import Container from "../../components/Container";
12−import Footer from "../../components/Footer";
13−import Header from "../../components/Header";
14−import SingleColumn from "../../components/SingleColumn";
15−import Section from "../../components/Section";
16−import PostPreview from "../../components/PostPreview";
17−import GrantPreview from "../../components/GrantPreview";
18
3
19−export default function Post({ post, markdown, search }) {
4+export default function Post({ post, search }) {
20 return (
5 return (
21 <GrantProgramOverview
6 <GrantProgramOverview
22 program="proposals"
7 program="proposals"
23 post={post}
8 post={post}
24− markdown={markdown}
25 search={search}
9 search={search}
26 actionText="View Proposals"
10 actionText="View Proposals"
27 actionLink="/grants?program=proposal#view-grants"
11 actionLink="/grants?program=proposal#view-grants"
@@ -36,8 +20,6 @@ export async function getStaticProps() {
36 "/"
20 "/"
37 );
21 );
38
22
39− const markdown = await Markdown({ post });
40−
41 return {
23 return {
42 props: { post, markdown },
24 props: { post, markdown },
43 };
25 };
pages/groups/[[...group]].js+3−6
@@ -2,7 +2,6 @@ import Head from "next/head";
2import Link from "next/link";
2import Link from "next/link";
3import { getPage } from "../../lib/lib";
3import { getPage } from "../../lib/lib";
4import { join } from "path";
4import { join } from "path";
5−import Meta from "../../components/Meta";
6import CopyLink from "../../components/CopyLink";
5import CopyLink from "../../components/CopyLink";
7import Container from "../../components/Container";
6import Container from "../../components/Container";
8import SingleColumn from "../../components/SingleColumn";
7import SingleColumn from "../../components/SingleColumn";
@@ -15,7 +14,7 @@ import MetadataBlock from "../../components/gateway/MetadataBlock";
15import MetadataLink from "../../components/gateway/MetadataLink";
14import MetadataLink from "../../components/gateway/MetadataLink";
16import Description from "../../components/gateway/Description";
15import Description from "../../components/gateway/Description";
17
16
18−const GroupPage = ({ data, markdown, params }) => {
17+const GroupPage = ({ data, content, params }) => {
19 const { group } = params;
18 const { group } = params;
20 if (!ob.isValidPatp(group?.[0] || "")) {
19 if (!ob.isValidPatp(group?.[0] || "")) {
21 return <Gateway404 type="group" />;
20 return <Gateway404 type="group" />;
@@ -90,7 +89,7 @@ const GroupPage = ({ data, markdown, params }) => {
90 <Description
89 <Description
91 description={data.description}
90 description={data.description}
92 fallback="A group on Urbit."
91 fallback="A group on Urbit."
93− markdown={markdown}
92+ markdown={content}
94 />
93 />
95 <hr className="text-wall-200" />
94 <hr className="text-wall-200" />
96 <div className="flex flex-col space-y-6">
95 <div className="flex flex-col space-y-6">
@@ -138,12 +137,10 @@ export const getServerSideProps = async ({ params, res }) => {
138 data = { title: params.group?.join("/"), description: "A group on Urbit." };
137 data = { title: params.group?.join("/"), description: "A group on Urbit." };
139 }
138 }
140
139
141− const markdown = await Markdown({ post: { content: content } }, true);
142−
143 return {
140 return {
144 props: {
141 props: {
145 data,
142 data,
146− markdown,
143+ content,
147 params,
144 params,
148 },
145 },
149 };
146 };
pages/ids/[id].js+3−5
@@ -15,7 +15,7 @@ import MetadataLink from "../../components/gateway/MetadataLink";
15import Description from "../../components/gateway/Description";
15import Description from "../../components/gateway/Description";
16import axios from "axios";
16import axios from "axios";
17
17
18−const IdPage = ({ data, markdown, applications, groups, network, params }) => {
18+const IdPage = ({ data, content, applications, groups, network, params }) => {
19 let { id } = params;
19 let { id } = params;
20 id = `~${deSig(id)}`;
20 id = `~${deSig(id)}`;
21 if (!ob.isValidPatp(id) || id.length > 14) {
21 if (!ob.isValidPatp(id) || id.length > 14) {
@@ -110,7 +110,7 @@ const IdPage = ({ data, markdown, applications, groups, network, params }) => {
110 <Description
110 <Description
111 description={data.description}
111 description={data.description}
112 fallback="An Urbit ID."
112 fallback="An Urbit ID."
113− markdown={markdown}
113+ markdown={content}
114 />
114 />
115 <a
115 <a
116 className="flex items-center"
116 className="flex items-center"
@@ -225,14 +225,12 @@ export const getServerSideProps = async ({ params, res }) => {
225 )
225 )
226 .then((res) => res.data);
226 .then((res) => res.data);
227
227
228− const markdown = await Markdown({ post: { content: content } }, true);
229−
230 return {
228 return {
231 props: {
229 props: {
232 data,
230 data,
233 applications,
231 applications,
234 groups,
232 groups,
235− markdown,
233+ content,
236 network,
234 network,
237 params,
235 params,
238 },
236 },
pages/media/[slug].js+3−8
@@ -19,7 +19,7 @@ import Section from "../../components/Section";
19
19
20import { decode } from "html-entities";
20import { decode } from "html-entities";
21
21
22−export default function MediaPage({ post, markdown, search }) {
22+export default function MediaPage({ post, search }) {
23 const router = useRouter();
23 const router = useRouter();
24 if (!router.isFallback && !post?.slug) {
24 if (!router.isFallback && !post?.slug) {
25 return <ErrorPage />;
25 return <ErrorPage />;
@@ -73,10 +73,7 @@ export default function MediaPage({ post, markdown, search }) {
73 ) : null}
73 ) : null}
74 </Section>
74 </Section>
75 <Section narrow className="markdown">
75 <Section narrow className="markdown">
76− <article
76+ <Markdown post={post} />
77− className="pt-12 w-full"
78− dangerouslySetInnerHTML={{ __html: decode(markdown) }}
79− ></article>
80 </Section>
77 </Section>
81 <Section narrow>
78 <Section narrow>
82 <Contact />
79 <Contact />
@@ -95,10 +92,8 @@ export async function getStaticProps({ params }) {
95 "media"
92 "media"
96 );
93 );
97
94
98− const markdown = await Markdown({ post });
99−
100 return {
95 return {
101− props: { post, markdown },
96+ props: { post },
102 };
97 };
103}
98}
104
99
pages/privacy.js+3−6
@@ -1,17 +1,14 @@
1import { getPostBySlug } from "../lib/lib";
1import { getPostBySlug } from "../lib/lib";
2import PageWithIndex from "../components/PageWithIndex";
2import PageWithIndex from "../components/PageWithIndex";
3−import Markdown from "../components/Markdown";
4
3
5−export default function Post({ post, markdown, search }) {
4+export default function Post({ post, search }) {
6− return <PageWithIndex post={post} markdown={markdown} search={search} />;
5+ return <PageWithIndex post={post} search={search} />;
7}
6}
8
7
9export async function getStaticProps() {
8export async function getStaticProps() {
10 const post = getPostBySlug("/privacy", ["title", "slug", "content"], "/");
9 const post = getPostBySlug("/privacy", ["title", "slug", "content"], "/");
11
10
12− const markdown = await Markdown({ post });
13−
14 return {
11 return {
15− props: { post, markdown },
12+ props: { post },
16 };
13 };
17}
14}
pages/terms-of-service.js+3−5
@@ -2,8 +2,8 @@ import { getPostBySlug } from "../lib/lib";
2import PageWithIndex from "../components/PageWithIndex";
2import PageWithIndex from "../components/PageWithIndex";
3import Markdown from "../components/Markdown";
3import Markdown from "../components/Markdown";
4
4
5−export default function Post({ post, markdown, search }) {
5+export default function Post({ post, search }) {
6− return <PageWithIndex post={post} markdown={markdown} search={search} />;
6+ return <PageWithIndex post={post} search={search} />;
7}
7}
8
8
9export async function getStaticProps() {
9export async function getStaticProps() {
@@ -13,9 +13,7 @@ export async function getStaticProps() {
13 "/"
13 "/"
14 );
14 );
15
15
16− const markdown = await Markdown({ post });
17−
18 return {
16 return {
19− props: { post, markdown },
17+ props: { post },
20 };
18 };
21}
19}
pages/understanding-urbit/[[...slug]].js+3−7
@@ -66,7 +66,7 @@ export default function UnderstandingLayout({
66 data,
66 data,
67 params,
67 params,
68 search,
68 search,
69− markdown,
69+ content,
70 previousPost,
70 previousPost,
71 nextPost,
71 nextPost,
72}) {
72}) {
@@ -105,9 +105,7 @@ export default function UnderstandingLayout({
105 params={params}
105 params={params}
106 >
106 >
107 <div className="markdown">
107 <div className="markdown">
108− <article
108+ <Markdown post={{ content: content }} />
109− dangerouslySetInnerHTML={{ __html: decode(markdown) }}
110− ></article>
111 </div>
109 </div>
112 <div className="flex justify-between mt-16">
110 <div className="flex justify-between mt-16">
113 {previousPost === null ? (
111 {previousPost === null ? (
@@ -172,9 +170,7 @@ export async function getStaticProps({ params }) {
172 "weight"
170 "weight"
173 ) || null;
171 ) || null;
174
172
175− const markdown = await Markdown({ post: { content: content } });
176−
177− return { props: { posts, data, markdown, params, previousPost, nextPost } };
173+ return { props: { posts, data, content, params, previousPost, nextPost } };
178}
174}
179
175
180export async function getStaticPaths() {
176export async function getStaticPaths() {
pages/updates/[slug].js+2−6
@@ -59,9 +59,7 @@ export default function Post({
59 </div>
59 </div>
60 </Section>
60 </Section>
61 <Section narrow className="markdown">
61 <Section narrow className="markdown">
62− <article
62+ <Markdown post={post} />
63− dangerouslySetInnerHTML={{ __html: decode(markdown) }}
64− ></article>
65 </Section>
63 </Section>
66 <Section narrow>
64 <Section narrow>
67 <Contact />
65 <Contact />
@@ -116,10 +114,8 @@ export async function getStaticProps({ params }) {
116 "updates"
114 "updates"
117 );
115 );
118
116
119− const markdown = await Markdown({ post });
120−
121 return {
117 return {
122− props: { post, markdown, nextPost, previousPost },
118+ props: { post, nextPost, previousPost },
123 };
119 };
124}
120}
125
121
pages/using/[[...slug]].js+3−7
@@ -98,7 +98,7 @@ const pageTree = (thisLink, tree, level = 0) => {
98 );
98 );
99};
99};
100
100
101−export default function UsingLayout({ posts, data, params, search, markdown }) {
101+export default function UsingLayout({ posts, data, params, search, content }) {
102 return (
102 return (
103 <>
103 <>
104 <Head>
104 <Head>
@@ -117,9 +117,7 @@ export default function UsingLayout({ posts, data, params, search, markdown }) {
117 params={params}
117 params={params}
118 >
118 >
119 <div className="markdown">
119 <div className="markdown">
120− <article
120+ <Markdown post={{ content: content }} />
121− dangerouslySetInnerHTML={{ __html: decode(markdown) }}
122− ></article>
123 </div>
121 </div>
124 </ContentArea>
122 </ContentArea>
125 </div>
123 </div>
@@ -134,9 +132,7 @@ export async function getStaticProps({ params }) {
134 join(process.cwd(), "content/using", params.slug?.join("/") || "/")
132 join(process.cwd(), "content/using", params.slug?.join("/") || "/")
135 );
133 );
136
134
137− const markdown = await Markdown({ post: { content: content } });
138−
139− return { props: { posts, data, markdown, params } };
135+ return { props: { posts, data, content, params } };
140}
136}
141
137
142export async function getStaticPaths() {
138export async function getStaticPaths() {
pages/voting-instructions.js+2−5
@@ -1,9 +1,8 @@
1import { getPostBySlug } from "../lib/lib";
1import { getPostBySlug } from "../lib/lib";
2import BasicPage from "../components/BasicPage";
2import BasicPage from "../components/BasicPage";
3−import Markdown from "../components/Markdown";
4
3
5export default function Post({ post, markdown, search }) {
4export default function Post({ post, markdown, search }) {
6− return <BasicPage post={post} markdown={markdown} search={search} />;
5+ return <BasicPage post={post} search={search} />;
7}
6}
8
7
9export async function getStaticProps() {
8export async function getStaticProps() {
@@ -13,9 +12,7 @@ export async function getStaticProps() {
13 "/"
12 "/"
14 );
13 );
15
14
16− const markdown = await Markdown({ post });
17−
18 return {
15 return {
19− props: { post, markdown },
16+ props: { post },
20 };
17 };
21}
18}