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的系统添加评论功能。