on master help sign in
pages, components: move markdown to client-side
commita9bb055b4fe3b74d38e8922d3c52487199b5f07a authorMatilde Park <matilde.park@urbit.org> dateWed 1 Jun 2022, 15:54 (4 years ago) parentff144bd
27 files changed+69−197
components/BasicPage.js+2−3 components/GrantProgramOverview.js+1−4 components/PageWithIndex.js+5−5 components/gateway/Description.js+2−8 pages/applications/[[...application]].js+3−6 pages/audits.js+3−6 pages/bitcoin-wallet.js+3−6 pages/blog/[slug].js+3−7 pages/coinmarketcap.js+3−6 pages/community/[[...slug]].js+3−7 pages/docs/[[...slug]].js+3−7 pages/events/[slug].js+2−7 pages/faq.js+3−6 pages/getting-started/[[...slug]].js+3−7 pages/grants/[slug].js+2−4 pages/grants/apprenticeships.js+2−20 pages/grants/bounties.js−14 pages/grants/proposals.js+1−19 pages/groups/[[...group]].js+3−6 pages/ids/[id].js+3−5 pages/media/[slug].js+3−8 pages/privacy.js+3−6 pages/terms-of-service.js+3−5 pages/understanding-urbit/[[...slug]].js+3−7 pages/updates/[slug].js+2−6 pages/using/[[...slug]].js+3−7 pages/voting-instructions.js+2−5
components/BasicPage.js+2−3
@@ -8,6 +8,7 @@ import Footer from "./Footer";
88import SingleColumn from "./SingleColumn";
99import Section from "./Section";
1010import { decode } from "html-entities";
11+import Markdown from "./Markdown";
1112
1213export default function BasicPage({ post, markdown, search }) {
1314 const router = useRouter();
@@ -26,9 +27,7 @@ export default function BasicPage({ post, markdown, search }) {
2627 <h1>{post.title}</h1>
2728 </Section>
2829 <Section narrow className="markdown">
29− <article
30− dangerouslySetInnerHTML={{ __html: decode(markdown) }}
31− ></article>
30+ <Markdown post={post} />
3231 </Section>
3332 </SingleColumn>
3433 <Footer />
components/GrantProgramOverview.js+1−4
@@ -14,7 +14,6 @@ import { DateTime } from "luxon";
1414
1515export default function GrantProgramOverview({
1616 post,
17− markdown,
1817 search,
1918 program,
2019 actionLink,
@@ -46,9 +45,7 @@ export default function GrantProgramOverview({
4645 </Link>
4746 </Section>
4847 <Section narrow short className="markdown">
49− <article
50− dangerouslySetInnerHTML={{ __html: decode(markdown) }}
51− ></article>
48+ <Markdown post={post} />
5249 </Section>
5350 </SingleColumn>
5451 <Footer />
components/PageWithIndex.js+5−5
@@ -8,9 +8,10 @@ import Footer from "./Footer";
88import SingleColumn from "./SingleColumn";
99import Section from "./Section";
1010import { decode } from "html-entities";
11+import Markdown from "../components/Markdown";
1112import { TableOfContents } from "./TableOfContents";
1213
13−export default function PageWithIndex({ post, markdown, search }) {
14+export default function PageWithIndex({ post, search }) {
1415 const router = useRouter();
1516 if (!router.isFallback && !post?.slug) {
1617 return <ErrorPage />;
@@ -28,10 +29,9 @@ export default function PageWithIndex({ post, markdown, search }) {
2829 </Section>
2930 <Section narrow>
3031 <div className="flex sidebar">
31− <article
32− className={"markdown pr-0 lg:pr-16"}
33− dangerouslySetInnerHTML={{ __html: decode(markdown) }}
34− ></article>
32+ <div className="markdown">
33+ <Markdown post={post} />
34+ </div>
3535 <TableOfContents />
3636 </div>
3737 </Section>
components/gateway/Description.js+2−8
@@ -1,18 +1,12 @@
11import { decode } from "html-entities";
2+import Markdown from "../Markdown";
23
34const Description = ({ description, fallback, markdown }) => {
45 return (
56 (description !== fallback || markdown) && (
67 <div className="flex flex-col space-y-4">
78 <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>
15− )}
9+ {markdown ? <Markdown post={markdown} /> : <p>{description}</p>}
1610 </div>
1711 )
1812 );
pages/applications/[[...application]].js+3−6
@@ -7,14 +7,13 @@ import Container from "../../components/Container";
77import SingleColumn from "../../components/SingleColumn";
88import Section from "../../components/Section";
99import ob from "urbit-ob";
10−import Markdown from "../../components/Markdown";
1110import GatewayHeader from "../../components/gateway/GatewayHeader";
1211import Gateway404 from "../../components/gateway/Gateway404";
1312import MetadataBlock from "../../components/gateway/MetadataBlock";
1413import MetadataLink from "../../components/gateway/MetadataLink";
1514import Description from "../../components/gateway/Description";
1615
17−const ApplicationPage = ({ data, markdown, params }) => {
16+const ApplicationPage = ({ data, content, params }) => {
1817 const { application } = params;
1918 if (!ob.isValidPatp(application[0])) {
2019 return <Gateway404 type="application" />;
@@ -95,7 +94,7 @@ const ApplicationPage = ({ data, markdown, params }) => {
9594 <Description
9695 description={data.description}
9796 fallback="An application on Urbit."
98− markdown={markdown}
97+ markdown={content}
9998 />
10099 <hr className="text-wall-200" />
101100 <div className="flex flex-col space-y-6">
@@ -153,12 +152,10 @@ export const getServerSideProps = async ({ params, res }) => {
153152 };
154153 }
155154
156− const markdown = await Markdown({ post: { content: content } }, true);
157−
158155 return {
159156 props: {
160157 data,
161− markdown,
158+ content,
162159 params,
163160 },
164161 };
pages/audits.js+3−6
@@ -1,17 +1,14 @@
11import { getPostBySlug } from "../lib/lib";
22import BasicPage from "../components/BasicPage";
3−import Markdown from "../components/Markdown";
43
5−export default function Post({ post, markdown, search }) {
6− return <BasicPage post={post} markdown={markdown} search={search} />;
4+export default function Post({ post, search }) {
5+ return <BasicPage post={post} search={search} />;
76}
87
98export async function getStaticProps() {
109 const post = getPostBySlug("/audits", ["title", "slug", "content"], "/");
1110
12− const markdown = await Markdown({ post });
13−
1411 return {
15− props: { post, markdown },
12+ props: { post },
1613 };
1714}
pages/bitcoin-wallet.js+3−6
@@ -1,9 +1,8 @@
11import { getPostBySlug } from "../lib/lib";
22import BasicPage from "../components/BasicPage";
3−import Markdown from "../components/Markdown";
43
5−export default function Post({ post, markdown, search }) {
6− return <BasicPage post={post} markdown={markdown} search={search} />;
4+export default function Post({ post, search }) {
5+ return <BasicPage post={post} search={search} />;
76}
87
98export async function getStaticProps() {
@@ -13,9 +12,7 @@ export async function getStaticProps() {
1312 "/"
1413 );
1514
16− const markdown = await Markdown({ post });
17−
1815 return {
19− props: { post, markdown },
16+ props: { post },
2017 };
2118}
pages/blog/[slug].js+3−7
@@ -12,7 +12,6 @@ import Link from "next/link";
1212import Meta from "../../components/Meta";
1313import ErrorPage from "../404";
1414import Container from "../../components/Container";
15−import Markdown from "../../components/Markdown";
1615import Header from "../../components/Header";
1716import Footer from "../../components/Footer";
1817import SingleColumn from "../../components/SingleColumn";
@@ -21,6 +20,7 @@ import Contact from "../../components/Contact";
2120import PostPreview from "../../components/PostPreview";
2221import TwoUp from "../../components/TwoUp";
2322import { decode } from "html-entities";
23+import Markdown from "../../components/Markdown";
2424
2525export default function Post({
2626 post,
@@ -60,9 +60,7 @@ export default function Post({
6060 <div className="text-wall-500 type-sub">{formatDate(date)}</div>
6161 </Section>
6262 <Section short narrow className="markdown">
63− <article
64− dangerouslySetInnerHTML={{ __html: decode(markdown) }}
65− ></article>
63+ <Markdown post={post} />
6664 </Section>
6765 <Section narrow>
6866 <Contact />
@@ -105,10 +103,8 @@ export async function getStaticProps({ params }) {
105103 "blog"
106104 );
107105
108− const markdown = await Markdown({ post });
109−
110106 return {
111− props: { post, markdown, nextPost, previousPost },
107+ props: { post, nextPost, previousPost },
112108 };
113109}
114110
pages/coinmarketcap.js+3−6
@@ -1,9 +1,8 @@
11import { getPostBySlug } from "../lib/lib";
22import PageWithIndex from "../components/PageWithIndex";
3−import Markdown from "../components/Markdown";
43
5−export default function Post({ post, markdown, search }) {
6− return <PageWithIndex post={post} markdown={markdown} search={search} />;
4+export default function Post({ post, search }) {
5+ return <PageWithIndex post={post} search={search} />;
76}
87
98export async function getStaticProps() {
@@ -13,9 +12,7 @@ export async function getStaticProps() {
1312 "/"
1413 );
1514
16− const markdown = await Markdown({ post });
17−
1815 return {
19− props: { post, markdown },
16+ props: { post },
2017 };
2118}
pages/community/[[...slug]].js+3−7
@@ -60,7 +60,7 @@ const pageTree = (thisLink, tree, level = 0) => {
6060 );
6161};
6262
63−export default function UsingLayout({ posts, data, params, search, markdown }) {
63+export default function UsingLayout({ posts, data, params, search, content }) {
6464 return (
6565 <>
6666 <Head>
@@ -79,9 +79,7 @@ export default function UsingLayout({ posts, data, params, search, markdown }) {
7979 params={params}
8080 >
8181 <div className="markdown">
82− <article
83− dangerouslySetInnerHTML={{ __html: decode(markdown) }}
84− ></article>
82+ <Markdown post={{ content: content }} />
8583 </div>
8684 </ContentArea>
8785 </div>
@@ -96,9 +94,7 @@ export async function getStaticProps({ params }) {
9694 join(process.cwd(), "content/community", params.slug?.join("/") || "/")
9795 );
9896
99− const markdown = await Markdown({ post: { content: content } });
100−
101− return { props: { posts, data, markdown, params } };
97+ return { props: { posts, data, content, params } };
10298}
10399
104100export async function getStaticPaths() {
pages/docs/[[...slug]].js+3−7
@@ -105,7 +105,7 @@ export default function DocsLayout({
105105 data,
106106 params,
107107 search,
108− markdown,
108+ content,
109109 previousPost,
110110 nextPost,
111111}) {
@@ -146,9 +146,7 @@ export default function DocsLayout({
146146 params={params}
147147 >
148148 <div className="markdown technical">
149− <article
150− dangerouslySetInnerHTML={{ __html: decode(markdown) }}
151− ></article>
149+ <Markdown post={{ content: content }} />
152150 </div>
153151 <div className="flex justify-between mt-16">
154152 {previousPost === null ? (
@@ -212,9 +210,7 @@ export async function getStaticProps({ params }) {
212210 "weight"
213211 ) || null;
214212
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 } };
218214}
219215
220216export async function getStaticPaths() {
pages/events/[slug].js+2−7
@@ -121,10 +121,7 @@ export default function Event({
121121 ) : null}
122122
123123 <Section short narrow className="markdown">
124− <article
125− className="pt-12 w-full"
126− dangerouslySetInnerHTML={{ __html: decode(markdown) }}
127− ></article>
124+ <Markdown post={event} />
128125 </Section>
129126 <Section narrow>
130127 <Contact />
@@ -161,10 +158,8 @@ export async function getStaticProps({ params }) {
161158
162159 const event = getPostBySlug(params.slug, eventKeys, "events");
163160
164− const markdown = await Markdown({ post: event });
165−
166161 return {
167− props: { event, markdown, nextEvent, previousEvent },
162+ props: { event, nextEvent, previousEvent },
168163 };
169164}
170165
pages/faq.js+3−6
@@ -1,17 +1,14 @@
11import { getPostBySlug } from "../lib/lib";
22import PageWithIndex from "../components/PageWithIndex";
3−import Markdown from "../components/Markdown";
43
5−export default function Post({ post, markdown, search }) {
6− return <PageWithIndex post={post} markdown={markdown} search={search} />;
4+export default function Post({ post, search }) {
5+ return <PageWithIndex post={post} search={search} />;
76}
87
98export async function getStaticProps() {
109 const post = getPostBySlug("/faq", ["title", "slug", "content"], "/");
1110
12− const markdown = await Markdown({ post });
13−
1411 return {
15− props: { post, markdown },
12+ props: { post },
1613 };
1714}
pages/getting-started/[[...slug]].js+3−7
@@ -11,7 +11,7 @@ import ContentArea from "../../components/ContentArea";
1111import Sidebar from "../../components/Sidebar";
1212import GettingStartedTree from "../../cache/getting-started.json";
1313
14−export default function UsingLayout({ posts, data, params, search, markdown }) {
14+export default function UsingLayout({ posts, data, params, search, content }) {
1515 const router = useRouter();
1616
1717 const select = (href) => {
@@ -87,9 +87,7 @@ export default function UsingLayout({ posts, data, params, search, markdown }) {
8787 disableToC
8888 >
8989 <div className="markdown">
90− <article
91− dangerouslySetInnerHTML={{ __html: decode(markdown) }}
92− ></article>
90+ <Markdown post={{ content: content }} />
9391 </div>
9492 {!params?.slug && <LaunchCards />}
9593 </ContentArea>
@@ -293,9 +291,7 @@ export async function getStaticProps({ params }) {
293291 )
294292 );
295293
296− const markdown = await Markdown({ post: { content: content } });
297−
298− return { props: { posts, data, markdown, params } };
294+ return { props: { posts, data, content, params } };
299295}
300296
301297export async function getStaticPaths() {
pages/grants/[slug].js+2−4
@@ -109,7 +109,7 @@ export default function Grant({ post, markdown, search }) {
109109 </div>
110110 </Section>
111111 <Section narrow className="markdown">
112− <article dangerouslySetInnerHTML={{ __html: decode(markdown) }} />
112+ <Markdown post={post} />
113113 </Section>
114114 {canApply && (
115115 <a
@@ -134,10 +134,8 @@ export async function getStaticProps({ params }) {
134134 "grants"
135135 );
136136
137− const markdown = await Markdown({ post });
138−
139137 return {
140− props: { post, markdown },
138+ props: { post },
141139 };
142140}
143141
pages/grants/apprenticeships.js+2−20
@@ -1,27 +1,11 @@
11import { getPostBySlug } from "../../lib/lib";
22import 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";
183
19−export default function Post({ post, markdown, search }) {
4+export default function Post({ post, search }) {
205 return (
216 <GrantProgramOverview
227 program="apprenticeships"
238 post={post}
24− markdown={markdown}
259 search={search}
2610 actionText="View Apprenticeships"
2711 actionLink="/grants?program=apprenticeship&completed=true#view-grants"
@@ -36,9 +20,7 @@ export async function getStaticProps() {
3620 "/"
3721 );
3822
39− const markdown = await Markdown({ post });
40−
4123 return {
42− props: { post, markdown },
24+ props: { post },
4325 };
4426}
pages/grants/bounties.js−14
@@ -1,20 +1,6 @@
11import { getPostBySlug } from "../../lib/lib";
22import GrantProgramOverview from "../../components/GrantProgramOverview";
33import 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";
184
195export default function Post({ post, markdown, search }) {
206 return (
pages/grants/proposals.js+1−19
@@ -1,27 +1,11 @@
11import { getPostBySlug } from "../../lib/lib";
22import 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";
183
19−export default function Post({ post, markdown, search }) {
4+export default function Post({ post, search }) {
205 return (
216 <GrantProgramOverview
227 program="proposals"
238 post={post}
24− markdown={markdown}
259 search={search}
2610 actionText="View Proposals"
2711 actionLink="/grants?program=proposal#view-grants"
@@ -36,8 +20,6 @@ export async function getStaticProps() {
3620 "/"
3721 );
3822
39− const markdown = await Markdown({ post });
40−
4123 return {
4224 props: { post, markdown },
4325 };
pages/groups/[[...group]].js+3−6
@@ -2,7 +2,6 @@ import Head from "next/head";
22import Link from "next/link";
33import { getPage } from "../../lib/lib";
44import { join } from "path";
5−import Meta from "../../components/Meta";
65import CopyLink from "../../components/CopyLink";
76import Container from "../../components/Container";
87import SingleColumn from "../../components/SingleColumn";
@@ -15,7 +14,7 @@ import MetadataBlock from "../../components/gateway/MetadataBlock";
1514import MetadataLink from "../../components/gateway/MetadataLink";
1615import Description from "../../components/gateway/Description";
1716
18−const GroupPage = ({ data, markdown, params }) => {
17+const GroupPage = ({ data, content, params }) => {
1918 const { group } = params;
2019 if (!ob.isValidPatp(group?.[0] || "")) {
2120 return <Gateway404 type="group" />;
@@ -90,7 +89,7 @@ const GroupPage = ({ data, markdown, params }) => {
9089 <Description
9190 description={data.description}
9291 fallback="A group on Urbit."
93− markdown={markdown}
92+ markdown={content}
9493 />
9594 <hr className="text-wall-200" />
9695 <div className="flex flex-col space-y-6">
@@ -138,12 +137,10 @@ export const getServerSideProps = async ({ params, res }) => {
138137 data = { title: params.group?.join("/"), description: "A group on Urbit." };
139138 }
140139
141− const markdown = await Markdown({ post: { content: content } }, true);
142−
143140 return {
144141 props: {
145142 data,
146− markdown,
143+ content,
147144 params,
148145 },
149146 };
pages/ids/[id].js+3−5
@@ -15,7 +15,7 @@ import MetadataLink from "../../components/gateway/MetadataLink";
1515import Description from "../../components/gateway/Description";
1616import axios from "axios";
1717
18−const IdPage = ({ data, markdown, applications, groups, network, params }) => {
18+const IdPage = ({ data, content, applications, groups, network, params }) => {
1919 let { id } = params;
2020 id = `~${deSig(id)}`;
2121 if (!ob.isValidPatp(id) || id.length > 14) {
@@ -110,7 +110,7 @@ const IdPage = ({ data, markdown, applications, groups, network, params }) => {
110110 <Description
111111 description={data.description}
112112 fallback="An Urbit ID."
113− markdown={markdown}
113+ markdown={content}
114114 />
115115 <a
116116 className="flex items-center"
@@ -225,14 +225,12 @@ export const getServerSideProps = async ({ params, res }) => {
225225 )
226226 .then((res) => res.data);
227227
228− const markdown = await Markdown({ post: { content: content } }, true);
229−
230228 return {
231229 props: {
232230 data,
233231 applications,
234232 groups,
235− markdown,
233+ content,
236234 network,
237235 params,
238236 },
pages/media/[slug].js+3−8
@@ -19,7 +19,7 @@ import Section from "../../components/Section";
1919
2020import { decode } from "html-entities";
2121
22−export default function MediaPage({ post, markdown, search }) {
22+export default function MediaPage({ post, search }) {
2323 const router = useRouter();
2424 if (!router.isFallback && !post?.slug) {
2525 return <ErrorPage />;
@@ -73,10 +73,7 @@ export default function MediaPage({ post, markdown, search }) {
7373 ) : null}
7474 </Section>
7575 <Section narrow className="markdown">
76− <article
77− className="pt-12 w-full"
78− dangerouslySetInnerHTML={{ __html: decode(markdown) }}
79− ></article>
76+ <Markdown post={post} />
8077 </Section>
8178 <Section narrow>
8279 <Contact />
@@ -95,10 +92,8 @@ export async function getStaticProps({ params }) {
9592 "media"
9693 );
9794
98− const markdown = await Markdown({ post });
99−
10095 return {
101− props: { post, markdown },
96+ props: { post },
10297 };
10398}
10499
pages/privacy.js+3−6
@@ -1,17 +1,14 @@
11import { getPostBySlug } from "../lib/lib";
22import PageWithIndex from "../components/PageWithIndex";
3−import Markdown from "../components/Markdown";
43
5−export default function Post({ post, markdown, search }) {
6− return <PageWithIndex post={post} markdown={markdown} search={search} />;
4+export default function Post({ post, search }) {
5+ return <PageWithIndex post={post} search={search} />;
76}
87
98export async function getStaticProps() {
109 const post = getPostBySlug("/privacy", ["title", "slug", "content"], "/");
1110
12− const markdown = await Markdown({ post });
13−
1411 return {
15− props: { post, markdown },
12+ props: { post },
1613 };
1714}
pages/terms-of-service.js+3−5
@@ -2,8 +2,8 @@ import { getPostBySlug } from "../lib/lib";
22import PageWithIndex from "../components/PageWithIndex";
33import Markdown from "../components/Markdown";
44
5−export default function Post({ post, markdown, search }) {
6− return <PageWithIndex post={post} markdown={markdown} search={search} />;
5+export default function Post({ post, search }) {
6+ return <PageWithIndex post={post} search={search} />;
77}
88
99export async function getStaticProps() {
@@ -13,9 +13,7 @@ export async function getStaticProps() {
1313 "/"
1414 );
1515
16− const markdown = await Markdown({ post });
17−
1816 return {
19− props: { post, markdown },
17+ props: { post },
2018 };
2119}
pages/understanding-urbit/[[...slug]].js+3−7
@@ -66,7 +66,7 @@ export default function UnderstandingLayout({
6666 data,
6767 params,
6868 search,
69− markdown,
69+ content,
7070 previousPost,
7171 nextPost,
7272}) {
@@ -105,9 +105,7 @@ export default function UnderstandingLayout({
105105 params={params}
106106 >
107107 <div className="markdown">
108− <article
109− dangerouslySetInnerHTML={{ __html: decode(markdown) }}
110− ></article>
108+ <Markdown post={{ content: content }} />
111109 </div>
112110 <div className="flex justify-between mt-16">
113111 {previousPost === null ? (
@@ -172,9 +170,7 @@ export async function getStaticProps({ params }) {
172170 "weight"
173171 ) || null;
174172
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 } };
178174}
179175
180176export async function getStaticPaths() {
pages/updates/[slug].js+2−6
@@ -59,9 +59,7 @@ export default function Post({
5959 </div>
6060 </Section>
6161 <Section narrow className="markdown">
62− <article
63− dangerouslySetInnerHTML={{ __html: decode(markdown) }}
64− ></article>
62+ <Markdown post={post} />
6563 </Section>
6664 <Section narrow>
6765 <Contact />
@@ -116,10 +114,8 @@ export async function getStaticProps({ params }) {
116114 "updates"
117115 );
118116
119− const markdown = await Markdown({ post });
120−
121117 return {
122− props: { post, markdown, nextPost, previousPost },
118+ props: { post, nextPost, previousPost },
123119 };
124120}
125121
pages/using/[[...slug]].js+3−7
@@ -98,7 +98,7 @@ const pageTree = (thisLink, tree, level = 0) => {
9898 );
9999};
100100
101−export default function UsingLayout({ posts, data, params, search, markdown }) {
101+export default function UsingLayout({ posts, data, params, search, content }) {
102102 return (
103103 <>
104104 <Head>
@@ -117,9 +117,7 @@ export default function UsingLayout({ posts, data, params, search, markdown }) {
117117 params={params}
118118 >
119119 <div className="markdown">
120− <article
121− dangerouslySetInnerHTML={{ __html: decode(markdown) }}
122− ></article>
120+ <Markdown post={{ content: content }} />
123121 </div>
124122 </ContentArea>
125123 </div>
@@ -134,9 +132,7 @@ export async function getStaticProps({ params }) {
134132 join(process.cwd(), "content/using", params.slug?.join("/") || "/")
135133 );
136134
137− const markdown = await Markdown({ post: { content: content } });
138−
139− return { props: { posts, data, markdown, params } };
135+ return { props: { posts, data, content, params } };
140136}
141137
142138export async function getStaticPaths() {
pages/voting-instructions.js+2−5
@@ -1,9 +1,8 @@
11import { getPostBySlug } from "../lib/lib";
22import BasicPage from "../components/BasicPage";
3−import Markdown from "../components/Markdown";
43
54export default function Post({ post, markdown, search }) {
6− return <BasicPage post={post} markdown={markdown} search={search} />;
5+ return <BasicPage post={post} search={search} />;
76}
87
98export async function getStaticProps() {
@@ -13,9 +12,7 @@ export async function getStaticProps() {
1312 "/"
1413 );
1514
16− const markdown = await Markdown({ post });
17−
1815 return {
19− props: { post, markdown },
16+ props: { post },
2017 };
2118}