Artalk 是一个采用 Golang 编写支持多站点的评论系统,可以接入第三方登录,导入其它评论系统数据,前端采用 TypeScript (Vanilla JS),轻量级,无冗余依赖,仅 ~40KB (gzipped)。
Artalk 的功能包括但不限于:
侧边栏: 快速管理、直观浏览
社交登录: 通过社交账号快速登录
邮件通知: 多种发送方式、邮件模板
多元推送: 多种推送方式、通知模版
站内通知: 红点标记、提及列表
验证码: 多种验证类型、频率限制
评论审核: 内容检测、垃圾拦截
图片上传: 自定义上传、支持图床
Markdown: 支持 Markdown 语法
表情包: 兼容 OwO,快速集成
多站点: 站点隔离、集中管理
管理员: 密码验证、徽章标识
页面管理: 快速查看、标题一键跳转
浏览量统计: 轻松统计网页浏览量
层级结构: 嵌套分页列表、滚动加载
评论投票: 赞同或反对评论
评论排序: 多种排序方式,自由选择
评论搜索: 快速搜索评论内容
评论置顶: 重要消息置顶显示
仅看作者: 仅显示作者的评论
评论跳转: 快速跳转到引用的评论
自动保存: 输入内容防丢功能
IP 属地: 用户 IP 属地展示
数据迁移: 自由迁移、快速备份
图片灯箱: 图片灯箱快速集成
图片懒加载: 延迟加载图片,优化体验
Latex: Latex 公式解析集成
夜间模式: 夜间模式切换
扩展插件: 创造更多可能性
多语言: 多国语言切换
命令行: 命令行操作管理能力
API 文档: 提供 OpenAPI 格式文档
程序升级: 版本检测,一键升级
后台搭建
docker-compose.yml 文件:
version: '3.8'
services:
artalk:
container_name: artalk
image: artalk/artalk-go
restart: unless-stopped
ports:
- 23366:23366
volumes:
- ./data:/data
environment:
- TZ=Asia/Shanghai
- ATK_LOCALE=zh-CN
- ATK_SITE_DEFAULT=docker镜像加速站
- ATK_TRUSTED_DOMAINS=https://dockerx.org/
- ATK_ADMIN_USERS_0_NAME=admin
- [email protected]
- ATK_ADMIN_USERS_0_PASSWORD=(md5)e10adc3949ba59abbe56e057f20f883e
- ATK_ADMIN_USERS_0_BADGE_NAME=管理员
- ATK_ADMIN_USERS_0_BADGE_COLOR=#0083FF
- ATK_DB_TYPE=mysql
- ATK_DB_PASSWORD=123456
- ATK_DB_HOST=mysql
- ATK_HTTP_PROXY_HEADER="CF-Connecting-IP"
db:
image: mysql:8.0
restart: always
container_name: 'mysql'
environment:
MYSQL_DATABASE: 'artalk'
MYSQL_ROOT_PASSWORD: '123456'
volumes:
- ./mysql-data/:/var/lib/mysql
command: --binlog_expire_logs_seconds 3600
其中密码的 e10adc3949ba59abbe56e057f20f883e 为 123456 的 md5 值,你可以自己生成一个替代。
ATK_HTTP_PROXY_HEADER 这里如果使用了 cloudflare 就需要配置这个,更多环境变量查看文档 https://artalk.js.org/guide/env.html 。
另外里面的端口根据情况自己修改。
然后docker-compose up -d 就行了,就可以打开网站进入后台,进行一些配置。
使用评论功能
在需要添加评论功能的页面引入相应的js和css
<link href="https://cdnjs.cloudflare.com/ajax/libs/artalk/2.8.7/Artalk.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/artalk/2.8.7/Artalk.js"></script>
在页面需要显示评论的位置加入
<div id="Comments"></div>
使用js调用评论功能
Artalk.init({
el: '#Comments', // 绑定元素的 Selector
pageKey: '/post/1', // 固定链接
pageTitle: 'docker日志自动清理', // 页面标题 (留空自动获取)
server: 'https://artalk.dockerx.org', // 后端地址
site: 'docker镜像加速站', // 你的站点名
})
理论上讲可以给任何web的系统添加评论功能。