给博客加个说说模块——Artitalk 配置方法

很显然,并非所有博主想记录与分享的东西都适合单独写成文章。大量琐碎短小的“文章”很容易拉低整个站给人的印象,但写一篇完整的文章,于我而言,时间精力压力比较大。而且有很多情绪与想法,并非适合写成长文。

当然,WP、Typecho 等实现这种功能实在是方便得很,但静态网站不能这么方便╥﹏╥…

Artitalk.js

在经过对比之后,我选择使用 Artitalk.js 作为说说模块。至于其他的,后续可能会视情况而尝试或更换。

貌似不方便搞“私密说说”,但有得用就很好了、~。

LeanCloud 的相关准备

如果需要将 Artitalk 与 Valine 在同一个页面使用,可将 Artitalk 与 valine 存放在同一个应用中,有效避免同一个页面使用两个 Leancloud 应用所产生的冲突。【Waline 与 Valine 数据结构比较像,因此前者配置共存方法应该同理,至少我是这么做的】

建议使用国际版的 LeanCloud,因为相较于国内版,它不需要配置 serverurl,速度没有区别。2022 年 8 月 1 日起国际版域名不对中国大陆提供服务,可自行绑定域名以解决。之后填写 serverURL/REST API 的地方替换为你在 LeanCloud 项目控制台中绑定的域名即可(绑定成功会刷新为你设置的域名。Cloudflare 记得关代理,即“仅 DNS”。)

创建 Class

前往 LeanCloud 国际版,注册账号并配置。绑定完成之后点击创建应用,选择开发版足矣,应用名称随意。

进入该应用,选择左侧数据存储->结构化数据,点击上方创建 class,命名为shuoshuo。再点击创建 class新建atComment,权限什么的暂时保持默认。

请严格按照官方文档中的要求创建与命名,此处命名最好不要改成其他,以免与 Artitalk 中保留项冲突

在你新建的应用中找到结构化数据下的用户。点击添加用户,输入想用的用户名及密码(现在 LeanCloud 好像没有用户这一项了,创建用户需要手动设置)。在结构化数据->_User中点击上方添加行创建用户,用户名和密码填完后请牢记,其他暂时保持默认。

【可选】在结构化数据->_User添加列,列名称为 img,默认值填上你这个账号想要用的发布说说的头像url。这一项不进行配置,说说头像会显示为默认头像(Artitalk 的 logo)。

设置权限

回到结构化数据中,在 Class 访问权限中将shuoshuoadd_fieldscreate权限设置为指定用户,输入刚才在_User中创建的用户名会自动匹配。为了安全起见,将deleteupdate也设置为跟它们一样的权限。

最后将_User中的权限全部调为指定用户,或者数据创建者,为了保证不被篡改用户数据以达到强制发布说说。

在最菜单栏中找到设置->应用凭证,记下来AppIDAppKeyREST API 服务器地址。国际版由于域名访问问题,需在设置->域名绑定中自行设置API 访问域名,等待生效后复制设置->应用凭证中更新后的REST API 服务器地址备用。(注:在 DNS 服务商那添加解析可能需要注意下代理或仅 DNS 的问题,例如 Cloudflare 设置解析时需要将代理状态设置为仅 DNS

开始使用

单页使用

单页中配置:

1
2
3
4
5
6
7
8
9
10
<!-- 引用 artitalk -->
<script type="text/javascript" src="https://unpkg.com/artitalk"></script>
<!-- 存放说说的容器 -->
<div id="artitalk_main"></div>
<script>
new Artitalk({
appId: '', // LeanCloud appId
appKey: '' // LeanCloud appKey
})
</script>

Hexo 使用

由于大家的 Hexo 主题五花八门,故无法在此一一提及。这里以 Butterfly 为例

在【Blogroot】目录下打开终端,输入:

1
npm install hexo-butterfly-artitalk

_config.yml_config.butterfly.yml中添加:

1
2
3
4
5
6
7
8
9
10
11
12
# Artitalk
# see https://artitalk.js.org/
artitalk:
enable: true # 是否启用
appId: # LeanCloud AppId
appKey: # LeanCloud appkey
path: # 【选】Artitalk 路径,默认为 artitalk,生成的页面为 artitalk/index.html
js: # 【选】Artitalk CDN,默认为 https://cdn.jsdelivr.net/npm/artitalk
option: # 【选】額外配置。官方插件文档中暂无详细说明,故此项展示为推测
# serverURL: # LeanCloud REST API
# lang: #语言
front_matter: # Artitalk 页面的 front_matter 设置

若添加至导航,可编辑_config.butterfly.yml中:

1
2
3
4
5
6
7
8
9
10
# Menu 目錄
menu:
主页:/ || fas fa-home
归档:/archives/ || fas fa-archive
标签:/tags/ || fas fa-tags
分类:/categories/ || fas fa-folder-open
清单||fas fa-list:
Music: /music/ || fas fa-music
Movie: /movies/ || fas fa-video
+ 说说:/artitalk/ || fas fa-pen # 示例

Hexo 三连刷新生效。

使用

进入 Artitalk 所在页面,在右下方点击登录,之后可以发表说说。点击已发布说说右侧的叉号可以删除。

注:如果忘记密码了,可以尝试在 LeanCloud 应用中进入结构化数据->_User中找到前面创建的那个用户所在行,找到password一项,选中并点击编辑单元格,输入新密码后点击框外,等待刷新,以重置密码。