跳过导航
返回
2410 月
2026 年星期六

给日记站接上 Artalk 评论

篇幅 588 字 · 约 2 分钟 编辑这一则

为什么选 Artalk

Artalk 是前后端分离的轻量评论系统:后端一个服务负责存数据,前端一个脚本负责渲染。比第三方托管干净、比从零自建省事,数据还握在自己手里。本站「蓝色的海角」用的就是这套。

整体方案

本站后端地址 https://artalk.likeit.dev,站点名 蓝色的海角。

后端配置

后端(artalk-server)关键配置:

# artalk 配置(节选)
host: 0.0.0.0
port: 8080
db:
  type: sqlite          # 或 mysql / postgres
  file: /data/artalk.db
site_name: 蓝色的海角    # 必须和前端 site 完全一致
admin_users:
  - name: admin
    password: xxxxxx

之后用 nginx 把 / 反代到 127.0.0.1:8080,再套一层 TLS 即可。

前端接入

1. 站点配置

在 src/config.ts 里加一段:

artalk: {
  enabled: true,                       // 是否启用评论
  server: "https://artalk.likeit.dev",  // 后端地址
  site: "蓝色的海角",                   // 站点名,必须与后端 site_name 一致
},

2. 评论组件

src/components/Comments.astro 负责渲染:

window.Artalk.init({
  el: "#artalk-comments",
  server: artalk.server,
  site: artalk.site || location.hostname,
  pageKey: pageKey,     // 默认 Astro.url.pathname,每篇日记独立
  pageTitle: pageTitle, // 默认站点标题
  darkMode: isDark(),   // 跟随站点明暗
});

3. 在日记页挂载

日记正文模板里引入组件即可,不需要每篇单独配置。

几个关键坑

  1. site 名称必须和后端一致:前后端的 site / site_name 对不上,评论会写到别的站点或拉不到。本站两端都是「蓝色的海角」。
  2. pageKey 要唯一且稳定:默认用路径 Astro.url.pathname,所以 slug 一旦发布就别乱改,否则老评论会失联。
  3. 明暗主题同步:用 MutationObserver 监听 documentElement 的 data-theme 变化,调 atk.setDarkMode(...),否则切主题时评论区不跟着变。
  4. 开关留好:SITE.artalk.enabled 可以一键关评论,迁移或维护时很方便。

小结

前后端分离的好处是:换前端框架不影响评论数据,一个后端还能给多个站点共用。本站这套接法跑了一阵子,稳定。


分享到:

评论

后一则
2026年10月24日 · Windows PDF 批量 OCR 环境配置备忘