一、添加评论
1. 注册leancloud
在 leancloud 上注册账号,新建应用,选择开发版,应用名称随意。
打开应用,在 存储
的 结构化数据
点击 创建Class
。
输入名字为 Comment
再创建一个名字为 Counter
Class(后面做文章阅读量统计用)
点击设置-安全中心,找到 Web安全域名
,添加自己的博客地址。
点击 应用Keys
,复制其中的 appid
和 appkey
备用。
2. 添加到博客
打开主题配置文件,查找 valine
,将内容替换为以下内容,其中 appid
和 appkey
填入自己的。
master为自己的邮箱地址的md5值,点击这里在线获取md5
(部分配置目前不生效,在后续的修改中会逐渐生效)
1 | # Valine. |
3. 修改评论区样式
打开 ./themes/next/source/css/_custom/custom.styl
文件,在末尾添加以下内容
1 | //评论区卡片样式 |
4. 添加背景图
仍然是 custom.styl
文件,在末尾添加
1 | #veditor { |
获取焦点时背景图消失:
添加
1 | #veditor:focus{ |
5. 添加博主、小伙伴和浏览器标识
这个功能需要修改原生的js文件,使用魔改的js。与原生的js相比,增加以下功能
- 添加博主,小伙伴,访客标签
- 添加浏览器和操作系统图标,需引入
fontawesome v5.0+
的 CSS 样式 - 邮箱检测更严格
- 增加 QQ 邮箱识别(原版只能通过昵称栏输入 QQ 号识别)
- meta placeholder 可自定义
点击 魔改的valine.min.js 将其保存在 ./themes/next/source/js/src
文件夹下。
打开 ./themes/next/layout/_third-party/comments/valine.swig
文件,修改其中的
1 | <script src="//unpkg.com/valine/dist/Valine.min.js"></script> |
为
1 | <script src="/js/src/Valine.min.js"></script> |
将其中的 new Valine
(一整段)修改为
1 | new Valine({ |
打开 ./themes/next/layout/_layout.swg
文件,
在 head
标签内添加
1 | <link href="https://cdn.bootcdn.net/ajax/libs/font-awesome/5.13.0/css/all.min.css" rel="stylesheet"> |
6. 添加自定义表情
打开前面下载的 Valine.min.js
文件,
查找 //img.t.sinajs.cn/t4/appstyle/expression/ext/normal/
,将其剪贴到粘贴板。
查找 smile
(由于默认表情第一个是smile),找到 function(e,t){e.exports={smile:
,
在每个链接的前面添加刚刚剪贴的内容
(较多,可以使用正则替换):
:"(.*?)"
->"//img.t.sinajs.cn/t4/appstyle/expression/ext/normal/$1"
在 smile
前面添加自己的表情。
格式:<名字>:”<图片地址>”,例如:
1 | smile:"https://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/e3/2018new_weixioa02_org.png", |
这里有别人整理的一些表情包,我将其整理为可用的json格式:
原仓库地址:https://github.com/blogimg/emotion
我的仓库地址:https://github.com/Roc136/emotion
可以从我的仓库的README中复制喜欢的表情的地址,也可以将仓库克隆到自己的github里,将链接中的Roc136换成自己的名字。
这里没有使用CDN,不建议放入过多的自定义表情,因为会让表情的加载变得很慢。
效果图:
7. 添加评论邮件通知
在 leancloud 控制台,点击云引擎-部署-部署项目
点击 Git部署,输入地址:https://github.com/zhaojun1998/Valine-Admin
点击手动部署-部署,等待部署完成。
点击设置,添加环境变量如下
变量 | 值 |
---|---|
ADMIN_URL | # 你的评论管理地址 |
SENDER_NAME | # 名字 |
SITE_NAME | # 站点名字 |
SITE_URL | # 站点url |
SMTP_HOST | # 邮箱服务器 例如QQ邮箱填 smtp.qq.com |
SMTP_PASS | # 邮箱密码,不是登陆邮箱使用的密码,在邮箱的smtp设置中查找 |
SMTP_PORT | # 端口 |
SMTP_SERVICE | # 邮箱服务商 |
SMTP_USER | # 发送邮箱,用于发送通知邮件,包括评论通知和回复通知 |
TEMPLATE_NAME | # 主题,目前有rainbow和default两种 |
TO_EMAIL | # 主人邮箱,用于接收评论通知 |
如下
详见 http://www.zhaojun.im/hexo-valine-admin/
二、变化的背景
(包括修改背景随时间变化,标题栏字体、背景颜色随背景变化,页面底部信息随背景变化)
打开 ./themes/next/source/css/_custom/custom.styl
文件,在 body
前面添加
1 | :root { |
(这里需要做过前面的美化教程中的添加背景图和修改标题颜色背景的工作,见Hexo+Next+GitHub博客搭建超详细教程–美化篇(1))
将 body
中的 background
的链接修改为 var(--bgurl)
将 .site-meta
中的 background
的链接修改为 var(--site-meta-color)
将 brand
中的 color
修改为 var(--brand-color)
打开 ./theme/snext/css/_common/components/footer/footer.styl
文件
在最前面添加
1 | :root { |
将 footer
中的 color
改为 var(--footer-color)
在 ./themes/next/source/js/src/
文件夹下新建文件 color.js
,在其中添加以下内容
1 | var bg_num=31,time=600000,bg_id=(Math.ceil(new Date().getTime() / time) % bg_num + 1).toString(); |
其中第一行的 bg_num
是背景图的数量,time
是切换时间,以毫秒为单位,可以根据自己的需求修改。
打开 ./themes/next/layout/_layout.swig
文件,在head标签内添加
1 | <!--根据背景切换footer颜色--> |
接下来将背景图存放到 ./themes/next/source/images/background/
文件夹下,并依次重命名为 bj+编号.jpg
(如 bj1.jpg
、bj2.jpg
)即可。