From 8743f0d5728d1992ccb5b2ab46b234d7af06267a Mon Sep 17 00:00:00 2001 From: Luccas Mateus de Medeiros Gomes Date: Wed, 26 Apr 2023 07:48:07 -0300 Subject: [PATCH] [basic-example][m] - remove everything related to multiple pages --- .../content/my-dataset/README.md | 2 +- examples/basic-example/middleware.ts | 6 +- .../basic-example/pages/api/get-data-file.ts | 6 +- .../pages/datasets/[datasetId].tsx | 57 ---------- examples/basic-example/pages/index.tsx | 107 +++++++----------- 5 files changed, 49 insertions(+), 129 deletions(-) delete mode 100644 examples/basic-example/pages/datasets/[datasetId].tsx diff --git a/examples/basic-example/content/my-dataset/README.md b/examples/basic-example/content/my-dataset/README.md index 280401a7..53ffe5fa 100644 --- a/examples/basic-example/content/my-dataset/README.md +++ b/examples/basic-example/content/my-dataset/README.md @@ -8,4 +8,4 @@ This is the README.md this project. ## Vega Lite Line Chart from URL - + diff --git a/examples/basic-example/middleware.ts b/examples/basic-example/middleware.ts index f4ee6eb0..434a3151 100644 --- a/examples/basic-example/middleware.ts +++ b/examples/basic-example/middleware.ts @@ -4,14 +4,12 @@ import type { NextRequest } from 'next/server' // This function can be marked `async` if using `await` inside export async function middleware(req: NextRequest, res: NextResponse) { - const refererPaths = req.headers.get('referer').split('/'); // logs the referer URL to the console const urlPaths = req.nextUrl.pathname.split('/') - const datasetName = refererPaths[refererPaths.length - 1] const fileName = urlPaths[urlPaths.length - 1] - return NextResponse.rewrite(new URL(`/api/get-data-file?datasetName=${datasetName}&fileName=${fileName}`, req.url)) + return NextResponse.rewrite(new URL(`/api/get-data-file?fileName=${fileName}`, req.url)) } // See "Matching Paths" below to learn more export const config = { - matcher: '/datasets/:file*.csv', + matcher: ['/:file*.csv'], } diff --git a/examples/basic-example/pages/api/get-data-file.ts b/examples/basic-example/pages/api/get-data-file.ts index c2dbe50b..c37e0e5d 100644 --- a/examples/basic-example/pages/api/get-data-file.ts +++ b/examples/basic-example/pages/api/get-data-file.ts @@ -7,11 +7,13 @@ export default async function handler( req: NextApiRequest, res: NextApiResponse ) { + const contentDir = path.join(process.cwd(), '/content'); + const datasets = await fs.readdir(contentDir); const query = req.query; - const { datasetName, fileName } = query; + const { fileName } = query; const dataFile = path.join( process.cwd(), - '/content/' + datasetName + '/' + fileName + '/content/' + datasets[0] + '/' + fileName ); const data = await fs.readFile(dataFile, 'utf8'); res.status(200).send(data) diff --git a/examples/basic-example/pages/datasets/[datasetId].tsx b/examples/basic-example/pages/datasets/[datasetId].tsx deleted file mode 100644 index 020350e6..00000000 --- a/examples/basic-example/pages/datasets/[datasetId].tsx +++ /dev/null @@ -1,57 +0,0 @@ -import { promises as fs } from 'fs'; -import { GetStaticProps } from 'next'; -import path from 'path'; -import parse from '../../lib/markdown'; -import DRD from '../../components/DRD'; - -export async function getStaticPaths() { - const contentDir = path.join(process.cwd(), '/content'); - const datasets = await fs.readdir(contentDir); - return { - paths: datasets.map((dataset) => ({ params: { datasetId: dataset } })), - fallback: false, // can also be true or 'blocking' - }; -} - -export const getStaticProps: GetStaticProps = async (context) => { - const { datasetId } = context.params; - const jsonDirectory = path.join( - process.cwd(), - '/content/' + datasetId + '/README.md' - ); - const readme = await fs.readFile(jsonDirectory, 'utf8'); - let { mdxSource, frontMatter, excerpt } = await parse(readme, '.mdx'); - console.log(mdxSource, frontMatter, excerpt) - return { - props: { - mdxSource, - frontMatter, - excerpt, - }, - }; -}; - -export default function DatasetPage({ mdxSource, frontMatter, excerpt }) { - return ( -
-
-
- <> -

{frontMatter.title}

- {frontMatter.author && ( -
-

{frontMatter.author}

-
- )} - {frontMatter.description && ( -

{frontMatter.description}

- )} - -
-
-
- -
-
- ); -} diff --git a/examples/basic-example/pages/index.tsx b/examples/basic-example/pages/index.tsx index cdffa57c..b383fdf8 100644 --- a/examples/basic-example/pages/index.tsx +++ b/examples/basic-example/pages/index.tsx @@ -1,71 +1,48 @@ -import Head from 'next/head' -import Image from 'next/image' -import styles from '../styles/Home.module.css' +import { GetStaticProps } from 'next'; +import { promises as fs } from 'fs'; +import path from 'path'; +import parse from '../lib/markdown'; +import DRD from '../components/DRD'; -export default function Home() { +export const getStaticProps: GetStaticProps = async (context) => { + const contentDir = path.join(process.cwd(), '/content'); + const datasets = await fs.readdir(contentDir); + const datasetReadme = path.join( + process.cwd(), + '/content/' + datasets[0] + '/README.md' + ); + const readme = await fs.readFile(datasetReadme, 'utf8'); + let { mdxSource, frontMatter, excerpt } = await parse(readme, '.mdx'); + return { + props: { + mdxSource, + frontMatter, + excerpt, + }, + }; +}; + +export default function DatasetPage({ mdxSource, frontMatter, excerpt }) { return ( -
- - Create Next App - - - - -
-

- Welcome to Next.js! -

- -

- Get started by editing{' '} - pages/index.tsx -

- -