静态页面引入Waline评论
前言
butterfly主题支持多种评论,但是由于笔者不想开评论。所以考虑单独做个留言页面,单独引入Waline,跟Valine比起来,功能丰富,参考的文档要齐全很多。
正文
Waline
Waline文档地址https://waline.js.org/
虽然很多教程都是推荐LeanCloud国际版做数据库,但是LeanCloud免费的开发版,每天只能运行18个小时,需要唤醒(太麻烦了?)。
服务端
服务端一一试了过去。
1.Vercel,部署完毕,问题出在设置这里,界面是灰色的,没有对应的按钮,网上相关情况资料没找到。
2.百度云函数,按流程部署完毕后,调用失败,问题未知(emmm)。
3.Railway,部署成功,但是免费版时间只有500小时/月了。
4.腾讯云函数参考文档比较多,但云数据库和云函数都没有减免部分了。
5.deta,最后选择了deta,因为deta是自带数据库的(文档中有提到),只要你部署的时候,不填LeanCloud的信息,空在那里,会默认使用deta的数据库。(这不比LeanCloud方便?)
Deta部署
关于deta,部署过程比较简单,主要是更改环境变量问题。
参考文档:https://docs.deta.sh/docs/home/
,https://waline.js.org/guide/deploy/deta.html
1.这里的话,要用到PowerShell
(官网下一个),按照文档先安装deta命令行工具,然后deta login
先登录(会弹出网页,在网页登录即可)。
1 | # Mac or Linux |
2.然后在设置处,找到地址下载。比如图中的deta clone --name waline --project default
(这个是你部署了Waline的项目地址,必须先登录才能下载)。
3.然后下载完后,请注意查看是否已经有本地文件夹,如果有的话,请在PowerShell
继续用cd
该文件夹名称,进入该文件夹,也可以直接右键属性找到本地位置地址,一步到位。(这一步很重要,不要忘了)
4.然后根据https://waline.js.org/guide/deploy/deta.html
来进行操作即可,比如用deta deploy
更新部署。
5.更改环境变量,请参考文档:
1 | 修改换进变量同样需要使用 CLI 进行操作。 |
关键是在本地文件夹中新建.env
文件。环境变量参考这篇文档:https://waline.js.org/reference/server/env.html
到这里为止deta是部署好了。这里建议开始评论审核,以及安全域名,IP频率限制。
举个例子.env
的内容(这边是用了QQ消息接收,但是免费版的机器人容易扑街)。用deta update -e .env
完成环境变量更新。
1 | COMMENT_AUDIT=true |
客户端
因为笔者是引入单独的页面,直接插入代码比较简单。参考HTML 引入 (客户端)
1 | <head> |
自定义css请自行参考文档,因为网站使用了butterfly模板,原先的index.css影响了图片,所以出现了小小的问题。先放代码,这是修改后的代码(因为还在本地调试,所以css/js的地址为本地):
1 | <head> |
这里的话,开启表情功能后,表情位置会居中,且一个表情一行,表情与文字的位置不合理。修改了article-container img
的display
为unset
,表情问题解决。但是没想到的是会影响头像的绿标位置(大哥,真有你的)。采用的方案(`1.单独写css。2.在waline.css
中的.wl-cards .wl-user .verified-icon{position:absolute;
(太长后面我懒得复制,自己查找一下就有),做一个小小的改动。改动后.wl-cards .wl-user .verified-icon{display:none;position:absolute;
,是的,没有解决绿标位置问题,把绿标给解决了。∠( ᐛ 」∠)_)
尾文
至此,就多了一个留言页,但是也是需要人工审核才能显示。
后续
想不到吧,还有后续,后续就是上面的统统作废。本地测试没有问题,但是上服务端就有问题。加上没有时间,所以重新看了waline的文档,同时参考了valine的文档。开启butterfly评论解决。但是。绿标问题还是没有解决(所以还是采用了上面的方法)。
页面的设置,在 ...\themes\butterfly\layout\includes\third-party\comments\waline.pug
处设置,跟单页一样,只不过从简了。
然后利用comments: false/true
关闭/开启评论,在文章或者页面的头部写上即可。
另外如果用云存储的话,开启防盗链会影响访问。可以将deta.dev
的泛域名添加到白名单。