使用 Next.js 来构建博客
使用本地 markdown 文件和 static export
在 Next.js 13.3 中,增加了 static export↗ 的功能,我们可以直接部署打包好的静态文件。
默认情况下,本博客使用本地 markdown 文件来构建页面,博客文章都在 posts
目录下。
要创建一个新的文章,需要在文件中使用 frontmatter 来设置文章元信息。
使用 Notion Database
与其它方案对比
和常规的前后端程序相比
- 搭建成本低,一键即可部署到 Vercel
- 专注于界面和功能,内容管理的部分交由 Notion 来完成
和 Hexo 或者 Hugo 等静态站点生成器相比
- 不用在项目 git 仓库中编写文章
- 不用每次内容变化时重新构建新的站点
Next.js 加上 Notion 的优势
- 具备动态获取文章内容能力的同时,性能足够好
- Notion 的开放 API 体验极其友好,文章内容格式的丰富程度比 markdown 高
如何使用 Notion
准备好 Notion 数据库
- 首先准备用于存放博客文章的空数据库,获取到
NOTION_DATABASE_ID
- 创建 Integrations↗,获取
NOTION_TOKEN
,并连接到创建的数据库
开始设置
- 从我的代码 fork 或者从模板创建项目
- 按照你的信息修改
config/site.config.ts
中的内容 - 在 Vercel 中以此仓库创建新的项目
- 在环境变量中填入
NOTION_TOKEN
,NOTION_DATABASE_ID
修改 config/site.config.ts
中 source 的部分为 notion
,
删除 next.config.js
如下部分来关闭 static export。
const nextConfig = {
// 删除配置里对应的部分,取消其他部分的注释
output: "export",
images: {
unoptimized: true,
},
}
module.exports = nextConfig
const nextConfig = {
// 删除配置里对应的部分,取消其他部分的注释
output: "export",
images: {
unoptimized: true,
},
}
module.exports = nextConfig
推荐的写作模式
在任意其它的页面进行写作,等到完成后,复制或者移动到创建的数据库。