import Layout from "components/Layout"; import Util from 'lib/utils' import FolderTree from "components/FolderTree"; import MDContent from "components/MDContent"; interface HomeProps { content: string tree: Record flattenNodes: unknown[] backLinks: unknown[] } // This trick is to dynamically load component that interact with window object (browser only) export default function Home({ content, tree, flattenNodes, backLinks }: HomeProps) { return (
); } export function getStaticProps() { const { nodes, edges }: { nodes: unknown[], edges: unknown[] } = Util.constructGraphData() const tree = Util.convertObject(Util.getDirectoryData()); const contentData = Util.getSinglePost("index"); const flattenNodes = Util.getFlattenArray(tree) const listOfEdges = edges .filter((anEdge) => ( anEdge as { target: string }).target === "index" ) const internalLinks = listOfEdges.map( anEdge => nodes .find( aNode => ( aNode as { slug: string }).slug === (anEdge as { source: string }).source)) .filter( element => element !== undefined) const backLinks = [...new Set(internalLinks)] return { props: { content: contentData.data, tree: tree, flattenNodes: flattenNodes, backLinks: backLinks }, }; }