Skip to content

Commit 21ca438

Browse files
committed
Update for mdxx-ssg v0.7.0
1 parent 929683e commit 21ca438

20 files changed

Lines changed: 171 additions & 238 deletions

docs/amp-social-share-for-hatena-bookmark.mdx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
22
title: amp-social-share で、はてなブックマークのシェアボタンを設置する
33
created: 1588784852166
4+
tags: [amp]
45
---
56

67
amp-social-share は設定済みプロバイダとして twitter/facebook/line などに対応しているが、はてなブックマークはカスタムプロバイダーとして実装できる。

docs/helloworld.mdx

Lines changed: 0 additions & 10 deletions
This file was deleted.

docs/mdxx-0.6.mdx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
22
title: mdxx@0.6 - PWA Support, Lighthouse 100, RSS対応, コンポーネントの Tailwind 化
33
created: 1589106473785
4+
tags: [mdxx]
45
---
56

67
例によってこのブログ自身が実装例です。

docs/mdxx-cli-and-components.mdx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
22
title: mdxx-ssg@0.5.0 - mdxx-ssg-cli & mdxx-components
33
created: 1588952818281
4+
tags: [mdxx]
45
---
56

67
## ChangeLog

docs/mdxx-introduction.mdx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
22
title: MDX eXtended = MDXX | AMP対応 Markdown Compiler と静的サイトジェネレーター
33
created: 1588688918620
4+
tags: [mdxx]
45
---
56

67
最近作っている mdxx という markdown コンパイラとそのツール郡を紹介します。

docs/study-next-amp-by-mdxx-ssg.mdx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
22
title: next.js の AMP mode を使って静的サイトを作る
33
created: 1588760362771
4+
tags: [next, mdxx]
45
---
56

67
この記事は mdxx-ssg を作りながら, next.js で AMP に対応したときにやったことです。

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
"mdxx-compiler": "^0.6.0",
1010
"mdxx-loader": "^0.6.0",
1111
"mdxx-parser": "^0.6.0",
12-
"mdxx-ssg-components": "^0.6.1",
12+
"mdxx-ssg-components": "^0.7.0",
1313
"next": "^9.3.6",
1414
"react": "^16.13.1",
1515
"react-dom": "^16.13.1",
@@ -19,7 +19,7 @@
1919
"@types/react": "^16.9.34",
2020
"@types/react-dom": "^16.9.7",
2121
"@types/styled-components": "^5.1.0",
22-
"mdxx-ssg-cli": "^0.6.0",
22+
"mdxx-ssg-cli": "^0.7.0",
2323
"raw-loader": "^4.0.1",
2424
"rimraf": "^3.0.2",
2525
"typescript": "^3.8.3"

pages/[slug].tsx

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
import { Article, Layout } from "mdxx-ssg-components";
2+
import { GetStaticProps } from "next";
3+
import ReactDOMServer from "react-dom/server";
4+
import pages from "../gen/pages.json";
5+
import ssgConfig from "../mdxx-ssg.json";
6+
import Head from "next/head";
7+
8+
type Props = {
9+
slug: string;
10+
toc: Array<any>;
11+
history: Array<any>;
12+
frontmatter: {
13+
title: string;
14+
created: number;
15+
tags?: string[];
16+
};
17+
tags: string[];
18+
html: string;
19+
};
20+
21+
export const config = { amp: true };
22+
23+
export function getStaticPaths() {
24+
const paths = pages.map((page) => {
25+
return `/${page.slug}`;
26+
});
27+
return {
28+
paths,
29+
fallback: false,
30+
};
31+
}
32+
33+
export const getStaticProps: GetStaticProps = async (props) => {
34+
const slug = props.params.slug;
35+
const { frontmatter, default: Doc, toc } = await import(
36+
`../docs/${slug}.mdx`
37+
);
38+
const { default: history } = await import(`../gen/${slug}.history.json`);
39+
return {
40+
props: {
41+
slug,
42+
toc,
43+
history,
44+
tags: frontmatter.tags || [],
45+
frontmatter: frontmatter || { title: slug, created: 0, tags: [] },
46+
html: ReactDOMServer.renderToStaticMarkup(<Doc amp />),
47+
} as Props,
48+
};
49+
};
50+
51+
export default (props: Props) => (
52+
<>
53+
<Head>
54+
<title>
55+
{props.frontmatter.title} - {ssgConfig.siteName}
56+
</title>
57+
</Head>
58+
<Layout ssgConfig={ssgConfig}>
59+
<Article
60+
ssgConfig={ssgConfig}
61+
history={props.history}
62+
toc={props.toc}
63+
title={props.frontmatter.title}
64+
tags={props.tags}
65+
>
66+
<div
67+
className="markdown-body"
68+
dangerouslySetInnerHTML={{ __html: props.html }}
69+
/>
70+
</Article>
71+
</Layout>
72+
</>
73+
);

pages/_document.tsx

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -12,19 +12,18 @@ export default class MyDocument extends Document {
1212
sheet.collectStyles(<App {...props} />)
1313
);
1414
const initialProps: any = await Document.getInitialProps(ctx);
15-
const styles = [
16-
...initialProps.styles,
17-
<style
18-
key="custom"
19-
dangerouslySetInnerHTML={{
20-
__html: css,
21-
}}
22-
/>,
23-
...sheet.getStyleElement(),
24-
];
2515
return {
2616
...page,
27-
styles,
17+
styles: [
18+
...initialProps.styles,
19+
<style
20+
key="custom"
21+
dangerouslySetInnerHTML={{
22+
__html: css,
23+
}}
24+
/>,
25+
...sheet.getStyleElement(),
26+
],
2827
};
2928
} finally {
3029
sheet.seal();
@@ -35,10 +34,6 @@ export default class MyDocument extends Document {
3534
return (
3635
<Html lang={ssgConfig.lang || "en-US"}>
3736
<Head>
38-
<meta name="theme-color" content="#317EFB" />
39-
<meta name="description" content="mizchi's blog" />
40-
<link rel="manifest" href="/manifest.json" />
41-
<link rel="apple-touch-icon" href="/apple-touch-icon.png"></link>
4237
<link
4338
rel="alternate"
4439
type="application/rss+xml"
@@ -49,7 +44,7 @@ export default class MyDocument extends Document {
4944
rel="alternate"
5045
type="application/rss+xml"
5146
title={ssgConfig.siteName}
52-
href="/sitemap.xml"
47+
href="sitemap.xml"
5348
/> */}
5449
</Head>
5550
<body>

pages/amp-social-share-for-hatena-bookmark.tsx

Lines changed: 0 additions & 19 deletions
This file was deleted.

0 commit comments

Comments
 (0)