mirror of
https://github.com/r-freeman/portfolio.git
synced 2024-09-22 19:06:16 +00:00
24 lines
621 B
JavaScript
24 lines
621 B
JavaScript
|
import glob from 'fast-glob'
|
||
|
import * as path from 'path'
|
||
|
|
||
|
async function importArticle(articleFilename) {
|
||
|
let { meta, default: component } = await import(
|
||
|
`../pages/writing/${articleFilename}`
|
||
|
)
|
||
|
return {
|
||
|
slug: articleFilename.replace(/(\/index)?\.mdx$/, ''),
|
||
|
...meta,
|
||
|
component,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
export async function getAllArticles() {
|
||
|
let articleFilenames = await glob(['*.mdx', '*/index.mdx'], {
|
||
|
cwd: path.join(process.cwd(), 'src/pages/writing'),
|
||
|
})
|
||
|
|
||
|
let articles = await Promise.all(articleFilenames.map(importArticle))
|
||
|
|
||
|
return articles.sort((a, z) => new Date(z.date) - new Date(a.date))
|
||
|
}
|