前言
将使用的套件:
- next Next.js 框架
- next-mdx-remote 处理和载入 MDX 内容
- gray-matter 解析 Markdown 的前置资料
本教学的源代码库:
https://github.com/nelsonlaidev/nextjs-mdx-blog
示例
如何建立博客
首先,我们使用以下指令建立 Next.js 项目:
接着,建立以下档案:
components/layout.jsx- 将所有组件包装在容器中(可选,用于样式)data/blog/*.mdx- 博客文章lib/format-date.js- 将日期格式化为MM DD, YYYYpages/blog/[slug].jsx- 文章页面,使用 动态路由
Tree View
components
layout.jsx
data
blog
markdown.mdx
nextjs.mdx
react.mdx
lib
format-date.js
mdx.js
pages
blog
[slug].jsx
如何处理 Markdown 档案
首先建立变数 const root,其值为根目录,process.cwd() 方法返回当前 Node.js 进程的工作目录。
接着定义变数 POSTS_PATH,用于储存文章档案的路径。
使用 fs 读取该目录下的内容,即 data/blog 下的所有档案名。
然后撰写一个函数移除档案后缀名,稍后会用到。
接着根据 slug 获取文章内容。
接下来可以获取所有文章,以显示在首页。
格式化日期
首页
文章页面
这样,一个简单的博客就完成了。
