封面图:https://www.pixiv.net/artworks/150379690
前言:
其实简介里写了,就是Gisucs不好用,而且因为一些奇妙的问题最近网页加载评论也总是出错,那就换一个评论系统吧。
与静态页面不同,评论系统是必定要数据库的。排除了家里云幻梦要上哪搞一个容量充足的廉价数据库呢?传统的手法是 MongoDB Atlas,他提供了500MiB的数据库,也是 Twikoo 在以往推荐的方案。那么有没有更大的呢?有的,有的。Edgeone Makers(以前叫Pages)提供了1GB 的 Blob 存储和1GB的 KV存储(这次 KV存储用不上)。需要注意,这个评论加载是需要用到 Edgeone Functions 的,而幻梦之前已经部署了一个随机图API,虽然说 Edgeone Functions 请求数一个月有 300W次,但是幻梦还是果断用了Edgeone的海外账号(反正空着也是空着)
第一步:部署 Twikoo 到 Edgeone
其实官方文档已经写的很详细了,https://twikoo.js.org/backend.html#edgeone-makers-%E9%83%A8%E7%BD%B2。
我们只需要下载https://github.com/twikoojs/twikoo/raw/main/templates/edgeone-makers/twikoo-edgeone-makers.zip

直接把 ZIP 上传到 Edgeone Makers上完成部署。并在设置里对node.js 的版本进行调整和新增环境变量TWIKOO_SMTP_BRIDGE_TOKEN,值可以是一个任意复杂的字符串。

并且绑定一个域名,由于幻梦可以用中国区的加速,所以这里的CNAME可以不管他。

如果你也是这样的情况,那么我们通过 CDN 的方式进行代理即可。

源站这里填写前面 CNAME 的值即可,回源的 host 头就是我们之前填写绑定的域名。之后的访问就是使用成功加速的域名。

这样能够访问就成功了
第二步:部署到 Fuwari 前端
由于官方没有提供 Astro 的方法所以我们需要自行解决一下,这里幻梦以Fuwari为例。
首先,我们新增一个Twikoo.astro。我们后面的大部分修改该都在这里进行,这样不会严重影响到博客本身。文件路径可以参考这个src\components\Twikoo.astro。
<div id="comments-container" class="flex card-base z-10 px-6 md:px-9 pt-6 pb-4 relative w-full mt-4"></div>
<script is:inline src="https://fastly.jsdelivr.net/npm/twikoo@2.0.12/dist/twikoo.min.js"></script>
<script is:inline> function initTwikoo() { const container = document.getElementById("comments-container");
if (!container || typeof twikoo === "undefined") return;
if (container.dataset.twikooInitialized === "true") return;
container.dataset.twikooInitialized = "true";
twikoo.init({ envId: "https://这里填写如你刚刚绑定的", el: "#comments-container", lang: "zh-CN", }); }
// 首次完整加载 initTwikoo();
// Astro 客户端导航 document.addEventListener("astro:page-load", initTwikoo);</script>然后我们在src\layouts\MainGridLayout.astro中通过import Twikoo from "@components/Twikoo.astro";引入文件,并在以下位置插入评论
<mainid="swup-container"class="transition-swup-fade col-span-2 lg:col-span-1 overflow-hidden"><div id="content-wrapper" class="onload-animation"><!-- the overflow-hidden here prevent long text break the layout--><!-- make id different from windows.swup global property --><slot />
{showComments && <Twikoo />} //这里就是我们放评论的位置
<divclass="footer col-span-2 onload-animation hidden lg:block"><Footer /></div></div></main>这样我们就在文章页内加入了Twikoo评论功能。
第三步:获取管理员权限并设置 Twikoo
当首次打开 Twikoo 评论时需要及时设置管理员密码,管理员入口在评论框右下角设置按钮。

设置密码并登录,我们进行以下设置


填写我们的邮箱地址,当我们收到回复时可以及时发现。

这里差别不大,拿 itdog 跑一下看看延迟最低的那个选择就好了

这里很重要,我们设置一个口令。当我们输入这个口令后,右下角的设置图标才会出现,建议单独设置口令

在官方文档里有介绍,Edgeone makers 是无法使用反垃圾功能的,但是可以先准备好,也许哪次更新后就可以用了,也可以在我的评论区里试试,到底有没有用(别发真的广告)


最后是设置一个邮箱用于通知大家收到的回复,邮箱系统我们之前介绍过,以前的动态博客时幻梦就有准备,可以看往期内容,这里不过多介绍。【白嫖】使用Lark建立邮箱服务
需要注意,如果使用支持 ssl 协议的 stmp 端口,请在STMP_SECURE中写上true
一定,一定要记得点击保存
一定要记得点击保存
一定要记得点击保存
最后再我们进行发件测试

到此我们的 Twikoo 基本上就部署好了,Twikoo 还有官方文档介绍了API调用的方式,不过这里就不过多写了https://twikoo.js.org/api.html#on-twikoo-loaded
希望大家玩得愉快
