mirror of
https://github.com/explosion/spaCy.git
synced 2025-01-13 02:36:32 +03:00
51 lines
1.2 KiB
TypeScript
51 lines
1.2 KiB
TypeScript
import type { GetStaticPaths, GetStaticProps } from 'next'
|
|
import { serialize } from 'next-mdx-remote/serialize'
|
|
import fs from 'fs'
|
|
import { MDXRemote, MDXRemoteSerializeResult } from 'next-mdx-remote'
|
|
import path from 'path'
|
|
import Layout from '../components/layout'
|
|
|
|
type PropsPage = {
|
|
mdx: MDXRemoteSerializeResult
|
|
}
|
|
|
|
const PostPage = ({ mdx: mdx }: PropsPage) => {
|
|
return (
|
|
<Layout>
|
|
<MDXRemote {...mdx} />
|
|
</Layout>
|
|
)
|
|
}
|
|
|
|
export default PostPage
|
|
|
|
type ParsedUrlQuery = {
|
|
slug: string
|
|
}
|
|
|
|
export const getStaticPaths: GetStaticPaths<ParsedUrlQuery> = async () => {
|
|
return {
|
|
paths: fs.readdirSync(path.join('docs')).map((filename) => ({
|
|
params: {
|
|
slug: filename.replace('.mdx', ''),
|
|
},
|
|
})),
|
|
fallback: false,
|
|
}
|
|
}
|
|
|
|
export const getStaticProps: GetStaticProps<PropsPage, ParsedUrlQuery> = async (args) => {
|
|
if (!args.params) {
|
|
return { notFound: true }
|
|
}
|
|
return {
|
|
props: {
|
|
slug: args.params.slug,
|
|
mdx: await serialize(
|
|
fs.readFileSync(path.join('docs', args.params.slug + '.mdx'), 'utf-8'),
|
|
{ parseFrontmatter: true }
|
|
),
|
|
},
|
|
}
|
|
}
|