import Head from 'next/head'; import { useRouter } from 'next/router'; import DRD from '../../../../components/drd/DRD'; import parse from '../../../../lib/markdown'; import Project from '../../../../lib/project'; import { NextSeo } from 'next-seo'; import MDLayout from 'examples/simple-example/components/MDLayout'; import { promises as fs } from 'fs'; import path from 'path'; function CollectionsLayout({ children, ...frontMatter }) { const { title, date, description } = frontMatter; return (
{date && (

)} {title &&

{title}

} {description &&

{description}

}
{children}
); } export default function ProjectPage({ mdxSource, frontMatter, excerpt, project, }) { const router = useRouter(); return ( <> {/* On index files, add trailling slash to the base path see notes: https://github.com/datopian/datahub-next/issues/69 */}
); } // Generates `/posts/1` and `/posts/2` export async function getStaticPaths() { const jsonDirectory = path.join(process.cwd(), '/examples/simple-example/datasets.json'); const repos = await fs.readFile(jsonDirectory, 'utf8'); return { paths: JSON.parse(repos).map(repo => ({ params: { org: repo.owner, project: repo.repo}})), fallback: false, // can also be true or 'blocking' } } export async function getStaticProps({ params }) { const { org: orgName, project: projectName } = params; const project = await Project.getFromGitHub(orgName, projectName); // Defaults to README let content = project.readme; if (content === null) { return { notFound: true, }; } let { mdxSource, frontMatter, excerpt } = await parse(content, '.mdx'); if (project.metadata?.resources) { frontMatter.layout = 'datapackage'; } return { props: { mdxSource, frontMatter, excerpt, project: project.serialize(), }, }; }