Skip to content

Commit

Permalink
getPage + renderPage is simpler
Browse files Browse the repository at this point in the history
  • Loading branch information
ericclemmons committed Jul 2, 2019
1 parent fbe31fc commit 082fe89
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 18 deletions.
13 changes: 7 additions & 6 deletions src/app.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,8 @@ import path from "path";
import serve from "serve-handler";

import { defaultContentDir } from "./utils/defaults";
import getMDX from "./utils/getMDX";
import renderMDX from "./utils/renderMDX";
import resolveProps from "./utils/resolveProps";
import getPage from "./utils/getPage";
import renderPage from "./utils/renderPage";

export default router(
get("(:folder)", async req => {
Expand All @@ -20,14 +19,16 @@ export default router(
}

const { folder } = req.params;
const mdx = await getMDX(path.join(defaultContentDir, folder, "index.mdx"));
const page = await getPage(
path.join(defaultContentDir, folder, "index.mdx")
);

// Ignore folders without markup
if (!mdx) {
if (!page) {
return;
}

return renderMDX(mdx, props);
return renderPage(page);
}),

get("/*", async (req, res) => {
Expand Down
12 changes: 6 additions & 6 deletions src/build.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ import {
defaultPublicDir
} from "./utils/defaults";

import renderMDX from "./utils/renderMDX";
import renderPage from "./utils/renderPage";
import findAllPages from "./utils/findAllPages";
import getMDX from "./utils/getMDX";
import getPage from "./utils/getPage";

if (!process.env.NODE_ENV) {
process.env.NODE_ENV = "production";
Expand Down Expand Up @@ -42,16 +42,16 @@ let spinner: Ora;
spinner.info(`Found ${pages.length} pages`);

// Build each page into /dist
for (const page of pages) {
const folder = page
for (const pagePath of pages) {
const folder = pagePath
.replace(defaultContentDir, "")
.replace("/index.mdx", "");

const target = path.join(defaultOutputDir, folder, "index.html");
spinner = ora().start(`Building ${folder || "/"}`);

const mdx = await getMDX(page);
const output = await renderMDX(mdx);
const page = await getPage(pagePath);
const output = await renderPage(page);

await fse.mkdirp(path.dirname(target));
await fse.writeFile(target, output, "utf8");
Expand Down
4 changes: 2 additions & 2 deletions src/index.tsx
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
import * as defaults from "./utils/defaults";
import findAllPages from "./utils/findAllPages";
import getComponents from "./utils/getComponents";
import getMDX from "./utils/getMDX";
import getPage from "./utils/getPage";
import renderMDX from "./utils/renderMDX";
import resolvePageProps from "./utils/resolvePageProps";

export {
defaults,
findAllPages,
getComponents,
getMDX,
getPage,
renderMDX,
resolvePageProps
};
2 changes: 1 addition & 1 deletion src/utils/getMDX.tsx → src/utils/getPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import React from "react";
import { defaultContentDir } from "./defaults";
import resolvePageProps from "./resolvePageProps";

export default async function getMDX(pagePath: string) {
export default async function getPage(pagePath: string) {
const [raw, props] = await Promise.all([
fse.readFile(pagePath, "utf8"),
resolvePageProps(pagePath)
Expand Down
6 changes: 3 additions & 3 deletions src/utils/renderMDX.tsx → src/utils/renderPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,16 @@ import getComponents from "./getComponents";
import renderTemplate from "./renderTemplate";
import { Props } from "./resolvePageProps";

interface MDX {
interface Page {
readonly attributes: any;
readonly body: string;
readonly frontmatter?: string;
readonly props: Props;
readonly raw: string;
}

export default async function renderMDX(mdx: MDX) {
const { attributes, body, props } = mdx;
export default async function renderPage(page: Page) {
const { attributes, body, props } = page;
const { title } = attributes;
const components = await getComponents(defaultComponentsDir);

Expand Down

0 comments on commit 082fe89

Please sign in to comment.