date
slug
status
tags
summary
type
几个月之前托管docker的服务器RAM告急,于是我把博客搬迁到了8G的树莓派4B上,通过Cloudflare Tunnel打洞。但是上个星期搬家之后我发现树莓派的SSH密码忘了,重置密码又需要接显示器,虽然也有不用显示器的方法但是又不想弄,另外之前用的Typecho博客系统实在是年久失修,相比wordpress一堆炫酷的插件可玩性实在是差,并且动态网页速度太慢,早该换换了,于是就有了这篇文章。
为什么选择Notion作为文章托管平台呢?很多人可能会问为什么不是GitHub+Hexo的方案,原因是相比较其他的方案而言Notion更能专注于写作本身,除去以网页格式分享这种功能以外它本身就是很优秀的笔记软件,我已经适应了一段时间用它记录、分享内容,而且Notion AI可以加速写作,非常方便。
Notion本身就可以以网页格式分享,但是如果要使用自定义域名需要额外10$/月的订阅费用,不过网上已经有很多反代的项目了。我查找了基于Notion的博客项目,近期仍然保持在更新的就是tangly1024开发的NotionNext了。
NotionNext
tangly1024 • Updated Nov 5, 2024
Notion篇:复制模版
我在NotionNext的文档中没有找到Notion的样例文档,但是看了一下NotionNext和Nobelium的格式完全一致,可以使用Nobelium的模版。
点击链接,将模版保存到自己的工作区即可。
需要给模版设置cover、icon,cover对应的是博客的主页图片以及OG图片,icon对应的是博客的头像。
每篇文章的几种属性如下:
- title: 文章的标题
- slug: 文章的URL,如果不会写可以问AI:根据标题xxx,写一个英文的slug
- date: 文章发布日期
- summary: 文章的摘要,在博客主页中可以看到,可以在属性设置里Auto-fill改为summary,这样子可以自动让NotionAI写摘要
- tags: 文章的tag,可以自己加
- status: 只有Published的文章是会被展示的,其他的几种属性可以去看NotionNext文档。
- type: Post是文章,Page是页面(会展示在顶栏)
需要注意的是,免费版的Notion限制了1000个block,超出需要开通Plus,一个节省的方法是绑定教育邮箱,订阅页会出现教育版选项,无需付费。目前国内大部分本科学校的邮箱都有支持。之前买ac[.]cn域名的方法似乎已经失效了。
部署
根据NotionNext的文档,一共有四种部署方式,前两种是使用Vercel和Zeabur这种serverless平台的方案,第三种是使用Cloudflare Pages托管渲染后的静态页面,最后一种是自建docker的方案。
我个人认为Cloudflare Pages的方案是最好的,Cloudflare有全球加速的Anycast节点,并且静态页面的性能远高于动态页面。
创建
需要先fork NotionNext的repo,然后登陆Pages:
创建项目→连接到Git→选择NotionNext
构建命令填写
yarn export
构建输出目录填写
/out
环境变量
点击
编辑变量
变量名 | 值 |
NODE_VERSION | 18 |
NODE_PAGE_ID | 写你的page id |
VERCEL_ENV | production |
其中,page id可以在Notion的URL中找到,就是
notion.so/
到?
中间的一串字符,直接分享也可以看到。完成后部署即可,大约需要5min
降级构建环境
目前Cloudflare目前默认使用v2构建,需要降级回v1。
缺点
这个方案需要每次页面变动都要手动到
Pages→部署
中重新部署。也就是每次发布新文章都要重新部署一次。编辑配置文件
前往你GitHub上fork的NotionNext仓库,可以直接在网页上编辑或者自己clone到本地。
其中
blog.config.js
是博客的配置文件,主要需要修改这里。此外,我不建议填入敏感的key,因为fork的repo没法转private,所有的提交的敏感数据都可查。除非clone到本地后重新上传到新的repo,或者用docker自部署。
更多
请阅读NotionNext的文档:
- 作者:Steven Lynn
- 链接:https://blog.stv.lol/article/notionnext
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章