import Layout from '../../components/layout'; import ReactMarkdown from 'react-markdown'; import style from '../../styles/post.module.css'; import PostsInfo from '../../public/posts.json'; import readMarkdown from '../../lib/read-markdown'; interface Post { title: string; mtime: string; otime?: string; } interface Posts { [slug: string]: Post } function Post({ post }: { post: Post & { content: string, cover?: string } }) { return (<> {
}
{post.content}
); } export async function getStaticProps({ params }: any) { const postsInfo: Posts = PostsInfo; const post: Post = postsInfo[params.post]; return { props: { post: { ...post, content: await readMarkdown('posts', params.post, true) } } } } export async function getStaticPaths() { return { paths: Object.keys(PostsInfo).map((post: string) => { return { params: { post } } }), fallback: false }; } export default Post;