867 字
4 分钟
为你的 Fuwari 添加 Artalk 评论系统
Tip
本喂饭级教程用的是 1Panel 使用 Docker Compose 部署 Artalk 。
有一说一,1Panel 真香。
用 Fuwari 的小伙伴可以火速来前来围观,为你的博客添加 Artalk 评论系统。
Waiting for api.github.com...
Q :为什么选择使用 Artalk 作为我的评论系统?
来自 Artalk :
Artalk 是一款简单易用但功能丰富的评论系统,你可以开箱即用地部署并置入任何博客、网站、Web 应用。
- 🍃 前端 ~40KB,纯天然 Vanilla JS
- 🍱 后端 Golang,高效轻量跨平台
- 🐳 通过 Docker 一键部署,方便快捷
- 🌈 开源程序,自托管,隐私至上
Artalk 功能完善,轻量高效,同时还支持缓存,并且不用登录游客也能发表评论。
萌樱觉得,确实是一个很不错的评论系统。(虽然没用过别的
安装 Artalk
- 打开 1Panel ➡️ 容器 ➡️ 编排 ➡️ 创建编排
- 来源:
编辑,文件夹填Artalk,然后在下方输入docker-compose.yml的内容,保存即可
version: "3.8" services: artalk: container_name: artalk image: artalk/artalk-go restart: unless-stopped build: context: ./ dockerfile: Dockerfile ports: - 23366:23366 # 端口号可以自定义,这里映射原来的端口 volumes: - ./data:/data environment: - TZ=Asia/Shanghai - ATK_LOCALE=zh-CN - ATK_SITE_DEFAULT=你的博客名称 # 记得改 - ATK_SITE_URL=你的博客地址 # 记得改 networks: - 1panel-network
networks: 1panel-network: external: true等进度条跑完,Artalk 就安装成功了。
配置 Artalk
安装完成后,点击操作里面的终端连接到容器内部配置管理员账户。
artalk admin根据提示输入你的信息即可。
配置反代
- 网站 ➡️ 创建网站 ➡️ 选择反向代理
- 域名:填入你的 Artalk 域名
- 代理地址:
http://127.0.0.1:23366
保存后就能访问你的 Artalk 域名进行登录操作了。
需要配置 HTTPS 的话请自行配置,这里就不在赘述了。
Warning
登录之后千万不要手滑把账号删了,不然会登录进不去,别问我是怎么知道的。( ̄へ ̄)
接入 Artalk
特性
- 全局/独立页面评论开关
- 公共 CDN 加载资源
- 适配 Fuwari 主题色
Warning
本地开发环境会出现 Artalk Error
创建 Artalk 组件
---import { commentConfig, siteConfig } from "@/config";
interface Props { path: string;}
const isEnabled = commentConfig.enable;
const config = isEnabled ? { server: commentConfig.server, el: "#artalk", site: siteConfig.title, pageKey: Astro.props.path, darkMode: "auto", pageTitle: "", } : null;---{isEnabled && config && ( <!-- Artalk --><div class="relative w-full"> <!-- 挂载点 --> <div id="artalk" style="--at-color-main: var(--primary); --at-color-bg: var(--card-bg); --at-color-border: var(--line-divider);"></div> <!-- 引入 Artalk 样式 --> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/artalk/dist/Artalk.css"/>
<!-- 脚本逻辑 --> <script type="module" is:inline define:vars={{config}}> import Artalk from 'https://cdn.jsdelivr.net/npm/artalk/dist/Artalk.mjs';
// 初始化 Artalk const artalk = Artalk.init(config);
// 深色模式 function updateTheme() { const isDark = document.documentElement.classList.contains('dark'); artalk.setDarkMode(isDark); }
updateTheme();
const observer = new MutationObserver((_mutations) => { updateTheme(); });
observer.observe(document.documentElement, { attributes: true, attributeFilter: ['class'], }); </script></div>)}修改配置文件
export type ExpressiveCodeConfig = { theme: string;};
export type CommentConfig = { enable: boolean; server: string;};import type { CommentConfig, ExpressiveCodeConfig, LicenseConfig, NavBarConfig, ProfileConfig,
// 其他代码
theme: "github-dark",};
export const commentConfig: CommentConfig = { enable: true, server: "https://artalk.example.com", // 填写你的 Artalk 后端地址};修改文章属性字段
tags: z.array(z.string()).optional().default([]), category: z.string().optional().nullable().default(""), lang: z.string().optional().default(""), comment: z.boolean().optional().default(true),修改布局
---import path from "node:path";import Artalk from "@components/comment/Artalk.astro";import License from "@components/misc/License.astro";import Markdown from "@components/misc/Markdown.astro";import I18nKey from "@i18n/i18nKey";import { i18n } from "@i18n/translation";
// 其他代码
</div>} </a> </div>
<!-- 评论区 --> {entry.data.comment && <Artalk path={getPostUrlBySlug(entry.slug)} />}
</MainGridLayout>至此,打包发布你的博客就呢在文章中看到评论区啦!🎉
食用方法
如果需要全局关闭评论,把 commentConfig.enable 改为 false 。
如果只是某篇文章或者页面单独关闭评论,那么在文章属性字段中添加 comment: false 即可。
最后,希望大家食用愉快~
为你的 Fuwari 添加 Artalk 评论系统
https://bytemoe.com/posts/fuwari-add-artalk-comment-system/