Hugo

Hugo 集成 Twikoo 评论系统

警告
本文最后更新于 2026-01-27,文中内容可能已过时。

Twikoo 是一款轻量开源评论系统,FixIt 主题已内置其前端支持,启用评论功能需提供后端地址,其后端可部署在 Netlify Functions、Vercel Functions、Cloudflare Workers 等云函数平台。

集成 Twikoo 系统
集成 Twikoo 系统

下面介绍具体部署步骤,使用 Netlify Functions 运行 Twikoo 后端,搭配 MongoDB Atlas 存储评论数据,并将函数地址配置到 FixIt 主题。1

准备 MongoDB

打开 MongoDB Atlas,点击 Create,选择 Free 计划,创建 Clusters 集群:

  • Name:如 Twikoo
  • 其余保持默认 → 点击 Create Deployment

弹出 Connect to Twikoo 窗口,进行 连接安全设置

  • Add a connection IP address:添加 0.0.0.0/0,以允许云函数访问。
  • Create a database user:Username 和 Password 将用于生成连接字符串,请务必复制并保存。

完成后点击 Choose a connection method > Drivers,获取和复制 连接字符串 。形式如下:

Plaintext
1
mongodb+srv://<db_username>:<db_password>@twikoo.XXXXXXX.mongodb.net/?appName=Twikoo

如果不小心关闭页面,点击 Connect > Drivers,复制并替换 <db_password> 为前面设置的密码。

部署到 Netlify

打开 twikoojs/twikoo-netlify,点击 fork 将仓库 fork 到仓库。

打开 Netlify ,点击 Add new project > Import an existing project,连接刚刚 fork 的仓库:

  • Project name:如 hugo-twikoo
  • Environment variables:MONGODB_URI = MongoDB 连接字符串。
  • 其余保持默认 → 点击 Deploy

完成后点击 *.netlify.app 链接,如果看到 Twikoo 云函数运行正常 的提示,说明环境配置正确。

该页面显示的地址即为 云函数地址envId),如 https://*.netlify.app/.netlify/functions/twikoo

如果需要自定义域名,点击项目的 Domain management > Add a domain,添加自定义域名或子域名,如 twikoo.example.com,并在域名服务商处进行 DNS 解析。

启用 Twikoo

修改主题配置文件,启用 Twikoo 评论系统:

TOMLconfig/_default/hugo.toml
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
[params.page.comment]
enable = true
[params.page.comment.twikoo]
enable = true
envId = "https://*.netlify.app/.netlify/functions/twikoo"
region = ""
path = ""
visitor = true
commentCount = true
lightgallery = false
katex = false

保存配置后,将更改提交并推送到远程仓库,触发 Hugo 重新构建并部署站点。

管理评论系统

运行以下命令,启用评论预览:

Bash
1
hugo server -D -e production --disableFastRender

Twikoo 评论系统
Twikoo 评论系统

执行后,打开任意一篇文章,点击评论区右下角的 齿轮图标,设置管理密码后即可打开管理面板。

更新 Twikoo

打开 GitHub 仓库(twikoo-netlify),将 package.json 中的 "twikoo-netlify": "latest" 修改为最新版本号(如 1.7.9),完成后点击 Commit changes

修改主题配置文件,更新前端 CDN 版本:

TOMLconfig/_default/hugo.toml
1
2
[params.page.library.js]
twikoo = "https://cdn.jsdelivr.net/npm/twikoo@1.7.9/dist/twikoo.all.min.js"

保存后,提交并推送至远程仓库即可。

留言交流