From 6fa2bf2fffdc26ffc200f78aed5dc3cff303312d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcus=20Bl=C3=A4ttermann?= Date: Wed, 16 Nov 2022 20:39:02 +0100 Subject: [PATCH] Allow to parse subfolders for pages --- website/pages/{[slug].tsx => [...listPathPage].tsx} | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) rename website/pages/{[slug].tsx => [...listPathPage].tsx} (77%) diff --git a/website/pages/[slug].tsx b/website/pages/[...listPathPage].tsx similarity index 77% rename from website/pages/[slug].tsx rename to website/pages/[...listPathPage].tsx index aa311ff03..7860e2135 100644 --- a/website/pages/[slug].tsx +++ b/website/pages/[...listPathPage].tsx @@ -21,17 +21,17 @@ const PostPage = ({ mdx: mdx }: PropsPage) => { export default PostPage type ParsedUrlQuery = { - slug: string + listPathPage: Array } export const getStaticPaths: GetStaticPaths = async () => { // This function needs to be defined inside `getStaticPath` to be executed in executed in the correct context - const loadFolder = (): Array<{ params: ParsedUrlQuery }> => + const loadFolder = (pathBase: Array = []): Array<{ params: ParsedUrlQuery }> => fs - .readdirSync(path.join('docs'), { withFileTypes: true }) + .readdirSync(path.join('docs', ...pathBase), { withFileTypes: true }) .flatMap((dirent: fs.Dirent) => { if (dirent.isDirectory()) { - return [] + return loadFolder([...pathBase, dirent.name]) } if (!dirent.name.includes('.mdx')) { return [] @@ -39,7 +39,7 @@ export const getStaticPaths: GetStaticPaths = async () => { return { params: { - slug: dirent.name.replace('.mdx', ''), + listPathPage: [...pathBase, dirent.name.replace('.mdx', '')], }, } }) @@ -56,9 +56,8 @@ export const getStaticProps: GetStaticProps = async ( } return { props: { - slug: args.params.slug, mdx: await serialize( - fs.readFileSync(`${path.join('docs', args.params.slug)}.mdx`, 'utf-8'), + fs.readFileSync(`${path.join('docs', ...args.params.listPathPage)}.mdx`, 'utf-8'), { parseFrontmatter: true, mdxOptions: {