为什么迁移?
之前,我以 HUGO + Github 静态托管的博客存在如下问题:
- 每篇记录需经过:md文档 → 预览 → 调整格式 → 重新生成静态文件 → 提交发布,背离专注写作的初衷;
- md 文档存在结构单一,需要注重语法,图片插入麻烦等问题;
- 缺少内容管理系统(CMS),对内容的增删改查等管理操作复杂;
- 无法被搜索引擎搜索…
偶然间我通过 FKY&JYQ 的博客了解到,用 Travis Fischer 大大的项目 nextjs-notion-starter-kit 、以 Notion + Next.js + Vercel 的形式部署可以一劳永逸的解决以上问题 👇!
nextjs-notion-starter-kit
transitive-bullshit • Updated Nov 8, 2024
步骤
1. 本地
git clone
→ npm install
→ npm run dev
访问 localhost:3000 查看默认效果,然后查看文档修改配置文件,将博客页面指定为自己新建的 Notion 页面,记得将页面公开,顺便配置一些自定义的东西
2. 部署
将本地调试好的模板同步到建好 Github 仓库,访问 Vercel,然后只管跟着引导走
只要登录后按要求一步步走即可完成部署,部署需要点时间,等部署完根据引导访问即可,可以设置域名
3. 写作
- 打开 Notion ( 建议在你之前指定好的页面上添加 Gallery view 作为数据库管理博客
- 博客会访问你指定的 Notion 页面,所以请随意添加 page,专注写作即可
搜索问题
一切都很正常,直到我尝试搜索功能无效👇
查看源码发现在搜索时发送的请求返回了405
一篇博客解答了问题,原因是Notion的搜索接口有更改👇
the search API params was changed by Notion
按照提供的解决方法可以在本地完美解决,但在部署时无法成功构建
查看日志,发现卡在
Invalid value type in /vercel/path0/yarn.lock
我在本地用 npm 安装,但在 vercel 是使用的是 yarn 的方式
于是按照网络方法尝试删除 yarn.lock 并重新执行
yarn add patch-package
,提交后自动部署,搜索请求可用。最后附上成果图 🌈