构建简单的博客架构
本示例中的博客文章将以本地 Markdown 文件的形式存储在应用目录中(而非从外部数据源获取),因此我们需要从文件系统中读取数据。
本节将逐步指导您创建一个从文件系统读取 Markdown 数据的博客。
创建 Markdown 文件
首先,在项目根目录下新建一个名为 posts
的顶级目录(注意不同于 pages/posts
)。在 posts
目录中创建两个文件:pre-rendering.md
和 ssg-ssr.md
。
将以下代码复制到 posts/pre-rendering.md
中:
然后将以下代码复制到 posts/ssg-ssr.md
:
您可能已经注意到,每个 Markdown 文件顶部都有一个包含
title
和date
的元数据区域。这称为 YAML Front Matter,可以使用 gray-matter 库进行解析。
安装 gray-matter
首先安装 gray-matter,该库可帮助我们解析每个 Markdown 文件中的元数据。
创建读取文件系统的工具函数
接下来,我们将创建一个用于从文件系统解析数据的工具函数。通过此函数,我们希望实现:
- 解析每个 Markdown 文件,获取
title
、date
和文件名(将用作文章 URL 的id
)。 - 在首页按日期排序列出数据。
在根目录下创建一个名为 lib
的顶级目录。然后在 lib
中创建 posts.js
文件,并复制以下代码:
注意:
学习 Next.js 无需理解上述代码的具体实现,该函数仅用于使博客示例正常运行。但如果您想深入了解:
获取博客数据
现在博客数据已解析完成,我们需要将其添加到首页(pages/index.js
)。可以通过 Next.js 的数据获取方法 getStaticProps()
实现。下一节我们将学习如何实现 getStaticProps()
。
让我们进入下一页继续学习!