惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
B
Blog RSS Feed
宝玉的分享
宝玉的分享
腾讯CDC
博客园_首页
T
Tailwind CSS Blog
月光博客
月光博客
博客园 - 司徒正美
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
M
MIT News - Artificial intelligence
A
About on SuperTechFans
云风的 BLOG
云风的 BLOG
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
有赞技术团队
有赞技术团队
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
大猫的无限游戏
大猫的无限游戏
MongoDB | Blog
MongoDB | Blog
博客园 - 聂微东
V
Visual Studio Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
SecWiki News
SecWiki News
美团技术团队
P
Privacy International News Feed
H
Help Net Security
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Microsoft Security Blog
Microsoft Security Blog
Know Your Adversary
Know Your Adversary
Y
Y Combinator Blog
D
DataBreaches.Net
Project Zero
Project Zero
T
The Blog of Author Tim Ferriss
Cyberwarzone
Cyberwarzone
C
Cybersecurity and Infrastructure Security Agency CISA
C
Cisco Blogs
S
Schneier on Security
G
GRAHAM CLULEY
博客园 - 三生石上(FineUI控件)
Cisco Talos Blog
Cisco Talos Blog
小众软件
小众软件
Forbes - Security
Forbes - Security
D
Docker
T
Tenable Blog
S
Secure Thoughts
雷峰网
雷峰网
S
Security @ Cisco Blogs
T
The Exploit Database - CXSecurity.com
The Cloudflare Blog
博客园 - 【当耐特】
Spread Privacy
Spread Privacy
阮一峰的网络日志
阮一峰的网络日志

晓雨杂记

为 PCL CE 添加 Sentry 集成 【转载】舞萌 DX 报错 8103 / 8106 以及 0949 问题原因分析和解决方案 【转载】舞萌国服 1.53 补丁更新内容速览 站点之间,是生活的片段 EdgeOne 免费版,Yes! 2025 年,把一加 6T 作为主力机是什么体验?(上) 2024 年终总结 国行 iPhone 12 强开 Apple 智能 通过自定义主题重写我的博客 窗边浅谈:形同陌路的“朋友” 没有衡水命,一身衡水病——盲目复制衡水模式的意义何在? 窗边浅谈:序章 【转载】关于 HiPer 的安全性讨论,以及对于近期一些小事的简单介绍 2023 年终回顾 期中前半学期回顾 用起来还不错——国区 Apple Music 浅谈 万物皆可美化之 VSCode 博客二周年——我对博客的想法 我过不去的坎——数学 将 Waline 从 LeanCloud 迁移到 MongoDB Cloud 初入舞萌 DX 记一次重装 Windows 记一次被 DDoS 中考成绩! OMORI 初体验 中考之后 谈人际交往 我的音乐品味 自建 jsDelivr 镜像 渺软公益 CDN 2023 中考宣言 晓雨和林小雨的奇妙日常 为了纯粹的快——来看看我对我的博客做了什么 Valaxy 与 Cloudflare 的邂逅——将 Valaxy 博客部署到 Cloudflare Pages Minecraft 国际版玩家对近期事件的回应 对网易与 Minecraft 国际版的担忧 再见,Notepad++ 你的下一个启动器,何必是启动器 诈尸?—— 第三方网易云音乐客户端 LyricEase Valaxy —— 快到没边的全新静态博客框架 见证历史了——谷歌取消大陆地区翻译服务 在 iOS 桌面查看你的原神账号信息——原神披萨小助手 中秋节快乐!以及一些碎碎念 与朋友联机游玩 Minecraft 优化站点速度之见解 搭建 Hypixel 加速 IP 部署 VuePress v1 文档到 Vercel Hello World! 白嫖党福利——Backblaze B2 免费 10GB 对象存储 打开 Windows 传递优化,利人利己! 优化 Windows Search 搜索,加快搜索速度! 搭建一个属于你自己的 Minecraft 服务器 如何诊断 Minecraft Java 版客户端中的错误 手把手教你如何搭建属于自己的 Hexo 博客 关于我讲了节物理课这件事 我的 Minecraft 服务器 —— CakeMC Cake Launcher 开发日志 神级内存清理软件———Mem Reduct
在 Valaxy 中使用 Artalk 作为评论系统
Big_Cake · 2024-02-01 · via 晓雨杂记

废了老半天劲,终于摆脱了 Waline 苦海,投入了 Artalk 的怀抱。

前言 ​

Restent 在使用 VitePress 作为框架驱动博客后便抛弃了 Waline,使用 Artalk 作为评论系统,还写了一篇文章 迁移评论系统至 Artalk 记录。此前他也向我发出邀约并称还能将他的 Artalk 实例开一个站给我,当时我选择考虑一下。

后来他更换了自己的邮箱地址,但由于 Waline 的后端过于简单而无法修改自己注册账号的邮箱,迫不得已麻烦我改数据库。

同时,Waline 基于无服务器函数也带来了一系列弊端:评论速度过于缓慢、Vercel 限制、图床找不到合适解决方案等等。

自此,我便决定更换评论系统。在网上搜索以后才发现这简直是前无古人后无来者——根本没有现成的为 Valaxy 更换 Artalk 评论系统的资料。我决定做这个第一人。

那么,怎么做? ​

部署 Artalk 后端 ​

Artalk 的后端大家都知道是 Go,所以需要一个服务器了。我这里使用的是我朋友 XieXiLin 购买的云服务器。

Restent 自己的文章里使用的是 Docker 部署,但我玩不来 Docker(指会被 Docker 搞高血压),于是选择了直接部署。

首先,打开 Artalk 的 GitHub 仓库,在 Releases 找到最新版本,选择对应操作系统和架构的后端程序复制链接。

1706758841310.webp

接下来,登录服务器的 SSH,找一个地方,用 wget 下载文件:

bash

wget https://github.com/ArtalkJS/Artalk/releases/download/v2.8.0/artalk_v2.8.0_linux_amd64.tar.gz

注意

鉴于 GitHub 在国内的连通性,如果你想在国内服务器上部署,则可能需要配置代理或者使用镜像。

下载完成并解压,先对 artalk.yml 进行编辑,配置 Artalk,然后执行 ./artalk admin 创建管理员账号。创建完成后,执行 ./artalk server 启动后端。

公网访问 ​

尽管这台服务器有公网 IP,但是我打算使用 Cloudflare Tunnels 将它直接连接到 Cloudflare 网络,这样不仅能够在公网上访问,也能体验到一系列 Cloudflare 的服务。

具体方式请查看 Cloudflare 的文档或者互联网上的资料,这里不再赘述。

插入到 Valaxy 博客 ​

现在才是重头戏:插入到 Valaxy 博客。

我使用的主题是 Yun,一般来讲不同主题大同小异(虽然 Valaxy 也没多少主题吧)。

首先我们需要安装一下 Artalk 的 npm 包(我自己用的是 yarn)。

安装好之后,在 components 目录下新建一个 YunComment.vue 文件,写入如下内容:

vue

<script lang="ts" setup>
import { onMounted, onUnmounted, watch } from "vue";
import { useRoute } from "vue-router";
import "artalk/dist/Artalk.css";
import Artalk from "artalk";
import { isDark } from 'valaxy'

let artalk: Artalk;

const route = useRoute();

onMounted(() => {
  watch(isDark, (newVal) => {
    if (artalk) {
      artalk.setDarkMode(newVal);
    }
  });

  artalk = Artalk.init({
    el: ".comment",
    pageKey: route.path,
    pageTitle: `${document.title}`,
    server: "https://artalk.example.com",
    site: "示例站点",
    useBackendConf: true,
    locale: "auto",
    darkMode: isDark.value, // Set initial dark mode based on isDark value
  });
});

onUnmounted(() => {
  artalk.destroy();
});
</script>

<template>
  <YunCard w="full" p="4" class="comment yun-comment sm:p-6 lg:px-12 xl:px-16">
    <ClientOnly>
      <div ref="el"></div>
    </ClientOnly>
  </YunCard>
</template>

<style lang="scss">
.comment {
  .atk-list,
  .atk-main-editor {
    width: 100%;
  }

  h1 {
    font-size: 2rem;
    font-weight: 600;
    margin-bottom: 1rem;
  }

  h2 {
    font-size: 1.75rem;
    font-weight: 600;
    margin-bottom: 1rem;
  }

  h3 {
    font-size: 1.5rem;
    font-weight: 600;
    margin-bottom: 1rem;
  }

  h4 {
    font-size: 1.2rem;
    font-weight: 600;
    margin-bottom: 1rem;
  }

  h5 {
    font-size: 1rem;
    font-weight: 600;
    margin-bottom: 1rem;
  }

  h6 {
    font-size: 0.875rem;
    font-weight: 600;
    margin-bottom: 1rem;
  }

  ul {
    list-style: disc;
    margin-left: 1rem;
    margin-bottom: 1rem;
  }

  ol {
    list-style: decimal;
    margin-left: 1rem;
    margin-bottom: 1rem;
  }
}
</style>

注意

这样做会直接覆盖 Yun 主题的同名组件,实现细致的调整。但日后如果你想换回 Waline 或者 Twikoo,则需要删除这个组件。

除此以外,我们还需要在 styles 文件夹中新建一个 css-vars.scss 文件写入样式,从而让 Artalk 适配 Yun 自动生成的主题色:

css

:root {
  .artalk {
    --at-color-main: var(--va-c-primary);
  }
}

:root.dark {
  .artalk {
    --at-color-main: var(--va-c-primary);
  }
}

做完这一切之后,我们就可以部署到线上了。现在打开你的站点,开始体验 Artalk 的极致速度吧!