import fs from 'fs'; import clientPromise from '@/lib/mddb'; import { GetStaticProps } from 'next'; import Layout from '../../components/_shared/Layout'; import { formatDate } from '@/utils/formatDate'; import parse from '../../lib/markdown'; import dynamic from 'next/dynamic'; const DataRichDocument = dynamic( () => import('../../components/DataRichDocument'), { ssr: false } ); export default function Page({ source, meta }) { return (
{meta.title && (

{meta.title}

)} {meta.date && (

)}
); } export const getStaticProps: GetStaticProps = async ({ params }) => { const mddb = await clientPromise; const dbFile = await mddb.getFileByUrl('stories/' + params?.fileName); let source = fs.readFileSync(dbFile.file_path, { encoding: 'utf-8' }); let { mdxSource } = await parse(source, '.mdx', {}); return { props: { source: mdxSource, meta: dbFile.metadata, }, }; }; export async function getStaticPaths() { const mddb = await clientPromise; let allDocuments = await mddb.getFiles({ extensions: ['mdx'], folder: 'stories', }); const paths = allDocuments .filter((page) => page.metadata?.isDraft !== true) .map((page) => { const parts = page.url_path!.split('/').slice(-1)[0]; return { params: { fileName: parts } }; }); return { paths, fallback: false, }; }