Node.js (nodejs.org),打开官网我们可以找到两个版本进行安装,一个是14.17.5 LTS
,另外一个版本则是16.6.2 Current
,虽然 Node 14 默认使用 npm@v6,但还是建议安装 LTS 版本,毕竟稳定才是王道。由于 Waline 需要用到 npm@v7 版本,所以如果安装14.17.5 LTS
,我们还需要更新一下 npm 的版本。
npm i -g npm
拉取项目:
git clone https://github.com/walinejs/waline.git
安装依赖:
// 进入项目目录
cd waline
// 安装项目依赖
npm i
// 进入Client目录
cd ./packages/client/
// 用VSCode打开该目录
code .
打开\src\components\CommentBox.vue
,搜索// check nick
;
// check nick
if (
(requiredMeta.indexOf('nick') > -1 || comment.nick) &&
comment.nick.length < 3
) {
inputRefs.value.nick?.focus();
return alert(locale.value.nickError);
}
将comment.nick.length < 3
修改成comment.nick.length < 2
,保存;
运行npm run build
,这样 Waline 的客户端就完成构建了。
方法很简单,将生成目录dist
里的文件 git push 到 Github 上,套上 Jsdelivr 就可以直接引用了。
// hugo-theme-stack 默认的引入代码
<script src='//cdn.jsdelivr.net/npm/@waline/client/dist/Waline.min.js'></script>
<div id="waline" class="waline-container"></div>
<style>
.waline-container {
background-color: var(--card-background);
border-radius: var(--card-border-radius);
box-shadow: var(--shadow-l1);
padding: var(--card-padding);
}
.waline-container .vcount {
color: var(--card-text-color-main);
}
</style>
{{- with .Site.Params.comments.waline -}}
{{- $config := dict "el" "#waline" "dark" `html[data-scheme="dark"]` -}}
{{- $replaceKeys := dict "serverurl" "serverURL" "requiredmeta" "requiredMeta" "wordlimit" "wordLimit" "pagesize" "pageSize" "avatarcdn" "avatarCDN" "avatarforce" "avatarForce" -}}
{{- range $key, $val := . -}}
{{- if $val -}}
{{- $replaceKey := index $replaceKeys $key -}}
{{- $k := default $key $replaceKey -}}
{{- $config = merge $config (dict $k $val) -}}
{{- end -}}
{{- end -}}
<script>
/// Waline client configuration see: https://waline.js.org/en/reference/client.html
new Waline({{ $config | jsonify | safeJS }});
</script>
{{- end -}}
将第一行修改为<script src='//cdn.jsdelivr.net/gh/skybbx/img/waline/Waline.min.js'></script>
即可,更多引用方法可以参考官方文档:引入客户端 | Waline。
如果你跟我一样只需修改这个昵称字符判定,可以直接引用我修改后的客户端。
CDN 地址为:https://cdn.jsdelivr.net/gh/skybbx/img/waline/
Gravatar 由于被 qiang 的关系,一直以来我都是使用极客 CDN 的代理,表现很稳定,可最近这两天却发现开始出问题了,经常出现加载不了的情况。好在这种代理有很多大佬在做,既然不稳定就换一个吧。这次看中的是老庞做的代理。传送门:自建 Gravatar 国内+全球镜像加速服务 | 城南旧事 (loli.top)
因为 Waline 上 Gravatar 头像默认的 CDN 就是极客的,修改方法很简单,查看官方文档——前端配置 | Waline,定义一个配置avatarCDN
即可。案例:
<script src="//cdn.jsdelivr.net/gh/skybbx/img/waline/Waline.min.js"></script>
<div id="waline"></div>
<script>
new Waline({
el: '#waline',
serverURL: '客户端地址',
copyright: true,
requiredMeta: ['nick', 'mail'],
avatarCDN: 'https://gravatar.loli.top/avatar/',
});
</script>
另:可以用{ $config | jsonify | safeJS }
将前端的配置集成到 Config 里。
将下面代理添加到主题的 functions.php 即可。
// gravatar使用 CDN
function replace_gravatar($avatar) {
$avatar = str_replace(array("//gravatar.com/", "//secure.gravatar.com/", "//www.gravatar.com/", "//0.gravatar.com/",
"//1.gravatar.com/", "//2.gravatar.com/", "//cn.gravatar.com/"), "//gravatar.loli.top/", $avatar);
return $avatar;}
add_filter( 'get_avatar', 'replace_gravatar' );