[basic-example][m] - multiple datasets
This commit is contained in:
3
examples/basic-example/content/index.md
Normal file
3
examples/basic-example/content/index.md
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
# Index
|
||||||
|
|
||||||
|
- [My awesome dataset](http://localhost:3000/datasets/my-dataset)
|
||||||
@@ -2,6 +2,16 @@
|
|||||||
const nextConfig = {
|
const nextConfig = {
|
||||||
reactStrictMode: true,
|
reactStrictMode: true,
|
||||||
swcMinify: true,
|
swcMinify: true,
|
||||||
|
async rewrites() {
|
||||||
|
return {
|
||||||
|
beforeFiles: [
|
||||||
|
{
|
||||||
|
source: '/datasets/:file*.csv',
|
||||||
|
destination: '/:file*.csv',
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = nextConfig
|
module.exports = nextConfig
|
||||||
|
|||||||
56
examples/basic-example/pages/datasets/[datasetId].tsx
Normal file
56
examples/basic-example/pages/datasets/[datasetId].tsx
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
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');
|
||||||
|
return {
|
||||||
|
props: {
|
||||||
|
mdxSource,
|
||||||
|
frontMatter,
|
||||||
|
excerpt,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
export default function DatasetPage({ mdxSource, frontMatter, excerpt }) {
|
||||||
|
return (
|
||||||
|
<div className="prose mx-auto">
|
||||||
|
<header>
|
||||||
|
<div className="mb-6">
|
||||||
|
<>
|
||||||
|
<h1>{frontMatter.title}</h1>
|
||||||
|
{frontMatter.author && (
|
||||||
|
<div className="-mt-6">
|
||||||
|
<p className="opacity-60 pl-1">{frontMatter.author}</p>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
{frontMatter.description && (
|
||||||
|
<p className="description">{frontMatter.description}</p>
|
||||||
|
)}
|
||||||
|
</>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<DRD source={mdxSource} />
|
||||||
|
</main>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -5,13 +5,8 @@ import parse from '../lib/markdown';
|
|||||||
import DRD from '../components/DRD';
|
import DRD from '../components/DRD';
|
||||||
|
|
||||||
export const getStaticProps: GetStaticProps = async (context) => {
|
export const getStaticProps: GetStaticProps = async (context) => {
|
||||||
const contentDir = path.join(process.cwd(), '/content');
|
const indexFile = path.join(process.cwd(), '/content/index.md');
|
||||||
const datasets = await fs.readdir(contentDir);
|
const readme = await fs.readFile(indexFile, 'utf8');
|
||||||
const datasetReadme = path.join(
|
|
||||||
process.cwd(),
|
|
||||||
'/content/' + datasets[0] + '/README.md'
|
|
||||||
);
|
|
||||||
const readme = await fs.readFile(datasetReadme, 'utf8');
|
|
||||||
let { mdxSource, frontMatter } = await parse(readme, '.mdx');
|
let { mdxSource, frontMatter } = await parse(readme, '.mdx');
|
||||||
return {
|
return {
|
||||||
props: {
|
props: {
|
||||||
|
|||||||
22270
package-lock.json
generated
22270
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user