WWWeeds' blog

Back

无代码博客#

由 Vercel + Notion + NotionNext 构建#

前言#

有一位不会写代码的朋友也想搭一个博客,ta 甚至没有使用过 git,嗯,那我们的方案就有了下列需求:

  1. 可以在线编写与发布。
  2. 不需要修订前端代码。
  3. 最好全部都是可视化操作

经过一番寻找,大致确定下列三种方案:

  1. WordPress + 云服务器
  2. Notion + NotionNext + Vercel
  3. 云服务器 + Halo + 服务器可视化操作

方案一需要在云服务器里进行终端操作,甚至要接触 docker 之类的玩意,我感觉认知成本太高了。方案三确实全局可视化了,但是博客数据全部存在云服务器的 DB 内,怎么导出是一件麻烦的事情,对于想要长期写博客的朋友来说,很可能有需要迁移数据的场景,这就需要博客数据仍然是可下载的文件形式而不是存在 DB 里的。

所以我们选择方案二,把数据存在 Notion 中,用 Vercel 去部署 NotionNext 项目,再用 NotionNext 获取 Notion 中的数据,去渲染网站。

DB : DataBase,数据库,原谅我替这些还不懂的朋友解释一下 :p

docker : 一种容器技术,用于在一台电脑内部署多个不同的应用

好啦,让我们开始吧!

前置准备#

  1. 一个梯子。
  2. 一个 github 账号。
  3. 一个 Notion 账号以及 Notion 的桌面端应用。
  4. 一个 google 账号(gmail 账号)

关于梯子

有些朋友可能还没有梯子,这里以我随便找的一个梯子为例,做一个配置教程。

首先下载安装一个 Clash Verge

软件打开后如下所示:

image-20250706225539158

打开青云梯,注册登录之后买最便宜的套餐:

这是我随便找的一个梯子,其实很多梯子都支持 Clash Verge,比如说更便宜的有 Sakuracat,但是那个比较不稳定。

image-20250706224632350

付款之后打开首页,复制订阅链接:

image-20250706230255512

然后打开 Clash Verge 输入订阅链接导入:

image-20250706230345948

最后打开系统代理:

image-20250706230439576

系统代理打开之后,电脑内任何应用的网络请求都会经过 Clash Verge 转发,从而完成翻墙。

配置完成,可以到代理内找一个你看的顺眼节点开始翻墙了。后面的步骤将默认在开梯子的情况下进行,如果你网页打不开,就尝试换换节点。

image-20250706230536419

你也可以到此为止,去刷 youtube、twitter 和 quora 了。

关于 Notion

注册后点此下载桌面端应用:

image-20250706224501415

虽然网页也完全可用,但是我喜欢 desktop app~

搭建博客#

初始化#

首先打开 NotionNext 提供的 Notion模板

image-20250706231305195

点击右上角将模板拷贝到自己的 Notion 应用中。

image-20250706231337915

我这里改了一些东西,忽略它们。

然后点击分享 - 发布。

image-20250706231451070

拿到分享出的网络链接。

image-20250706231537957

譬如我的链接就是:

https://shimmering-guppy-a59.notion.site/22839ed0f5b580659320f60896532de3?v=22839ed0f5b581bd85c7000c37d1f677&source=copy_link
bash

拿到中间这段序列号:22839ed0f5b580659320f60896532de3,即在 “site/” 之后,在 “?v=” 之前的这一段。记为页面 ID

打开这个页面,进行 Fork 项目,然后我们就也有了一个 NotionNext 代码仓库: image-20250706231914146

此时打开 Vervel,使用 Github 账号登录,把我们刚刚创建的项目 Import 进来。

image-20250706232011956

添加一个环境变量 NOTION_PAGE_ID,就是我们刚才拿到的那个序列号。

image-20250706232204582

然后点击 deploy 即可。然后点击 Continue to dashboard,我们就到达了这个页面:

image-20250706232309809

此时点击 Visit(注意要挂梯子哦),就能看到部署的网站啦,我们完成了初始化操作。但是此时网站还是默认的内容,我们要修整它。

修订配置#

切换作者名、网站名等

打开 Notion:下图处就是网站名、作者头像、网站描述的配置处。

image-20250706232500160

切换主题

首先打开配置中心:

image-20250706232604150

按住 ctrl 再点打开,可以新开一个页面。找到 THEME 这一行设置,打钩并替换为 fukasawa。

image-20250706232646906

替换之后,可以到 Vercel 里面重新部署一下,或者多刷新几次自己的网站。

image-20250706232809532

image-20250706232832302

这两张图即为 Vercel 重新部署示例。

然后就能看到网站的新主题啦:

image-20250706232936329

切换浏览器 icon

就是标签页展示的这个小图标:

image-20250706232950169

这里可以先用这个图标生成工具,把 png 图片转换成 32 * 32 的。

然后在这里上传获得链接:image 上传工具

image-20250706233127698

把链接复制到刚才的配置空间里:

image-20250706233215504

其他的配置可以自行探索啦!或者去参考NotionNext 帮助手册

清理默认信息

网站原有的文章和边栏信息不是我们想要的,我们可以删除它们。介绍一下该主题对应的元素:

image-20250706233518483

image-20250706233759351

image-20250706233839938

  1. Menu
  2. Post(就是你写的文章)
  3. Notice(公告)
  4. SubMenu
  5. Page(单页)
  6. tags(文章标签)
  7. category(文章分类)

那么一到五就是 Notion 数据库内对应的数据行,你删去它就没了(记得多刷新几遍,但说实话它这个缓存做的有点太难受了,每次都要重新刷新很多次,建议修订页面结构之后直接 Vercel 重新部署一下)。

image-20250706234038737

比如我们把公告删了,它就消失了。

image-20250706234146490

而 category 和 tags 其实就是我们数据行的部分属性,如下图。

image-20250706234612676

第一篇文章#

我们可以写一篇文章试试了:

image-20250706234749539

配置一些属性:

image-20250706235058013

  1. status 选为 draft,就不会显示到网站上
  2. slug 是子路径,会显示到浏览器该文章的 url 内
  3. summary 是文章概述,会显示在封面上
  4. password 是设置文章的访问密码
  5. 文章的封面也会同步到网站上

然后就可以编辑内容了。这里你需要了解 Markdown 语法,参考notion 编辑手册

如果你想要插入图片,那么你直接截图复制,或者/插入。

image-20250706235258052

去网站上看看:显示出来了

image-20250706235333377

点进去之后,可以看到浏览器的路径栏的最后一个词显示的就是我们填入的 slug。

增加一个单页#

步骤一样,就是增加一个 Page 文章,然后再加一个菜单项,注意 slug 保持一致,不要和已经有的 slug 重复。

image-20250706235627058

效果如下:

image-20250706235740094

将博客域名更换为自定义域名#

首先我们要买一个域名,打开 namesile,建议直接用谷歌账号登录。搜索框里搜索自己想要的域名,然后它就会给你推荐类似的域名,挑选一个价格合适的购买就好。

image-20250707064106895

购买完成后就可以看到 Active Domains 变成 1 了。

image-20250707064327511

image-20250707064423734

点击 Manage,选中刚才购买的域名,点击 Change Nameservers:

image-20250707064454015 记住这个页面,后面还会用到,你的 NameServer 应该是默认的 ns1.dnsowl.com 之类的,不要管它。

image-20250707064524885

打开 CloudFlare,用 qq 邮箱注册即可,套餐选择免费套餐。

把刚才的购买的域名输入进去,一路 Continue。

image-20250707065020581

点击 Configure DNS:

image-20250707065342913

往下拉直到看到 Cloudflare Nameservers:

image-20250707065416088

把这两条替换到刚才的页面中(我也不知道你的和我的一不一样,总之照你的来就好):

image-20250707064524885

同时记住这个页面,后面也要用到,你的下方应该是空的没有任何记录:

image-20250707065823222

然后我们打开 Vercel,找到你刚才部署的应用:

image-20250707065905318

点开域名管理页面,Add Domain,输入你刚才购买的域名,我的原始域名已经被使用了,所以我这里就用一个子域名。

a.ww-weeds.xyz 就是 ww-weeds.xyz 的子域名,你可以简单理解为在前面加了一段。

image-20250707065933922

刚出来是红色的,点击 learn more:

image-20250707070149932 可以看到这有一条记录,记下它:

image-20250707070221687

回到 CloudFlare 的 configureDNS 页面,添加这条记录:

image-20250707070401856

回到 Vercel 刷新,发现配置完毕: image-20250707070420652

耐心等待一会(大概 5 分钟)之后,就可以访问你的新域名啦。

添加评论系统#

Cusdis

这个配置比较简单,功能也会少一些。打开 Cusdis 主页,用 github 登录就好,然后写你的网站的名字。

点击 Embeded code,拿到 data-app-id:

image-20250707072116226

回到 Vercel,添加环境变量 NEXT_PUBLIC_COMMENT_CUSDIS_APP_ID,save 之后重新部署(save 之后右下角会自动弹窗,直接点 reDeploy 就好了)。

image-20250707072434711

可以看到页面最下方就有了 Cusdis 的评论了:

image-20250707073115255

Cusdis 麻烦的点就是要去后台手动通过评论的审核:

image-20250707073211092

然后页面就展示出来了:

image-20250707073224418

更方便的 Twikoo 配置也会更复杂,稍微等等吧~

Twikoo

好啦,既然做了就做完吧!参考 Twikoo Vercel 部署教程

我们首先到 MongoDB 主页,用 Google 账号登录就好。要你填表直接拖到最下面 skip 掉,选择免费套餐。

image-20250707074025592

会自动弹窗给你,记下用户名和密码,或者你自定义密码也可以,点击 create database user。

image-20250707074125186

连接方式选择 Drivers: image-20250707074455373

点击 Show Password,复制下方的字符串保存,后续要用。

image-20250707074534723

点开 Network Access,ADD IP ADDRESS,增加一条 0.0.0.0/0(允许所有 ip 访问):

image-20250707074741498

你的序列串还可以通过这种方式获取:

image-20250707074907144

仍然选择 Drivers,此时需要你手动把 “<db_password>” 替换为你记录下的密码:

image-20250707074947559

点开这个网址,随便起个名字之后,点击 create。

image-20250707075125317

然后增加环境变量 MONGODB_URI,值就是你保存的 MongoDB 序列号。

image-20250707075405702

然后打开 Deployment Protection,disable 掉 Vercel Authentication,然后重新部署。

image-20250707075522469

点击 visit 之后就可以看到云函数运行正常了:

image-20250707075809344

把浏览器地址栏里的地址记下来,这里就是:https://twikoo-4lec7ydh6-wwweedss-projects.vercel.app/,你也可以替换成子域名。

然后到 NotionNext 项目中,继续添加环境变量 NEXT_PUBLIC_COMMENT_ENV_ID,重新部署。

image-20250707080024130

成功!看来跨域问题已经被 NotionNext 的开发者解决了,给他们点赞! image-20250707080449092

image-20250707080509757

点击小齿轮,可以配置评论管理者账号,并进一步设置,我也不知道是不是第一个注册的就是管理者账号,所以朋友们部署好了 Twikoo 就尽快完成配置哦。

image-20250707081554810

写在最后#

这都是些不重要的东西啦,写博客最重要的当然是内容啦。今天把想说的话写下来,等很多年之后回看的时候一定会有许多感触。

参考链接#

  1. NotionNext 帮助手册
  2. 青云梯
  3. notion 编辑手册
  4. image 上传工具
  5. namesilo 主页
  6. cloudflare 主页
  7. Twikoo 部署文档
Comment seems to stuck. Try to refresh?✨