upstream #1
18
lib/mdx.js
18
lib/mdx.js
@ -85,17 +85,15 @@ export async function getFileBySlug(type, slug) {
|
|||||||
export async function getAllFilesFrontMatter(type) {
|
export async function getAllFilesFrontMatter(type) {
|
||||||
const files = fs.readdirSync(path.join(root, 'data', type))
|
const files = fs.readdirSync(path.join(root, 'data', type))
|
||||||
|
|
||||||
const allFrontMatter = files.reduce((allPosts, postSlug) => {
|
const allFrontMatter = []
|
||||||
const source = fs.readFileSync(path.join(root, 'data', type, postSlug), 'utf8')
|
|
||||||
|
files.forEach((file) => {
|
||||||
|
const source = fs.readFileSync(path.join(root, 'data', type, file), 'utf8')
|
||||||
const { data } = matter(source)
|
const { data } = matter(source)
|
||||||
return [
|
if (data.draft !== true) {
|
||||||
{
|
allFrontMatter.push({ ...data, slug: file.replace(/\.(mdx|md)/, '') })
|
||||||
...data,
|
}
|
||||||
slug: postSlug.replace(/\.(mdx|md)/, ''),
|
})
|
||||||
},
|
|
||||||
...allPosts,
|
|
||||||
]
|
|
||||||
}, [])
|
|
||||||
|
|
||||||
return allFrontMatter.sort((a, b) => dateSortDesc(a.date, b.date))
|
return allFrontMatter.sort((a, b) => dateSortDesc(a.date, b.date))
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@ import hydrate from 'next-mdx-remote/hydrate'
|
|||||||
import { getFiles, getFileBySlug, getAllFilesFrontMatter } from '@/lib/mdx'
|
import { getFiles, getFileBySlug, getAllFilesFrontMatter } from '@/lib/mdx'
|
||||||
import PostLayout from '@/layouts/PostLayout'
|
import PostLayout from '@/layouts/PostLayout'
|
||||||
import MDXComponents from '@/components/MDXComponents'
|
import MDXComponents from '@/components/MDXComponents'
|
||||||
|
import PageTitle from '@/components/PageTitle'
|
||||||
import generateRss from '@/lib/generate-rss'
|
import generateRss from '@/lib/generate-rss'
|
||||||
|
|
||||||
export async function getStaticPaths() {
|
export async function getStaticPaths() {
|
||||||
@ -40,10 +41,19 @@ export default function Blog({ post, prev, next }) {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
{frontMatter.draft !== true && (
|
{frontMatter.draft !== true ? (
|
||||||
<PostLayout frontMatter={frontMatter} prev={prev} next={next}>
|
<PostLayout frontMatter={frontMatter} prev={prev} next={next}>
|
||||||
{content}
|
{content}
|
||||||
</PostLayout>
|
</PostLayout>
|
||||||
|
) : (
|
||||||
|
<div className="mt-24 text-center">
|
||||||
|
<PageTitle>
|
||||||
|
Under Construction{' '}
|
||||||
|
<span role="img" aria-label="roadwork sign">
|
||||||
|
🚧
|
||||||
|
</span>
|
||||||
|
</PageTitle>
|
||||||
|
</div>
|
||||||
)}
|
)}
|
||||||
</>
|
</>
|
||||||
)
|
)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user