import matter from 'gray-matter' import Layout from '../components/Layout' import BlogList from '../components/BlogList' const Index = props => { return (
) } export default Index export async function getStaticProps() { // getting the website config const siteConfig = await import(`../data/config.json`) const webpackContext = require.context('../posts', true, /\.md$/) // the list of file names contained // inside the "posts" directory const keys = webpackContext.keys() const values = keys.map(webpackContext) // getting the post data from the files contained // in the "posts" folder const posts = keys.map((key, index) => { // dynamically creating the post slug // from file name const slug = key .replace(/^.*[\\\/]/, '') .split('.') .slice(0, -1) .join('.') // getting the .md file value associated // with the current file name const value = values[index] // parsing the YAML metadata and markdown body // contained in the .md file const document = matter(value.default) return { frontmatter: document.data, markdownBody: document.content, slug, } }) return { props: { allBlogs: posts, title: siteConfig.default.title, description: siteConfig.default.description, }, } }