手把手搭建个人博客系列教程-六
前言
手把手搭建个人博客系列教程-六: 本节主要介绍如何搭建PicGo图床,如何搭建Live2D,留言板,Valine评论区,一图流,页脚美化,首页磁吸分类,首页文章轮播图,首页文章双栏显示等板块
参考文档:
环境与工具
- 操作系统:Windows 10
- VSCode编辑器
- Github
- VSCode的PicGo插件或PicGo客户端
PicGo图床
Github + VSCode的PicGo插件 实现图床.
每次写博客文章可能都有插入图片的需求,如果你不想通过外链的方式在博客中引用,你可以将要插入的图片放在source目录下,通过相对路径的方式来引用.
例如:在source目录下创建img文件夹,在其中放入要插入的图片 1.jpg
,在要使用的配置文件中通过相对路径 /img/1.jpg
来引用
注意默认的绝对路径根目录是source目录
但是插入的图片都保存在本地博客文件中会造成部署时项目文件庞大,维护不容易管理,加载耗时较长的问题,由此就需要引入图床这个工具了
图床是一种托管图片的方式,通过将本地图片上传至图床管理网站,通过外链访问原始图片地址,例如将本地的图片上传后,在项目代码中就可以用http形式的网络地址来插入图片
图床托管网站有多个,常用的有:七牛云、网易NOS、腾讯COS、Github等
本教程采用免费的Github为例介绍如何搭建和使用图床
创建仓库
在Github中创建图床仓库,注意仓库权限必须为 public
,图床仓库才能生效
设置token
- 在个人设置中选择
Settings
->Developer settings
->Personal access tokens
->Generate new token
- Expiration选项为token的有效期,设置为
no expiration
无期限 - 勾选
repo
选项 - 创建token,创建成功后将生成的token复制并保存在本地
注意token最好在本地备份,并注意起名字区分,因为页面刷新后此token内容会被隐藏,以后使用时不能再在GitHub上查看
VSCode中配置PicGo
- VSCode安装插件PicGo
PicGo插件
->设置
->Extension Settings
,在配置项中找到以下配置项并配置:配置项 值 Current github
Branch main
Custom Url https://cdn.jsdelivr.net/gh/github的账户名/图床仓库名
Path 图床仓库里图片存储的文件夹名称,例如: img/
Repo github用户名/图床仓库名
Token 之前保存的token
其中 https://cdn.jsdelivr.net/gh/
部分就是采用jsdelivr工具对访问github进行CDN加速的格式,设置后就启动了cdn加速
使用PicGo客户端的配置和PicGo插件配置基本相同
使用PicGo插件
配置好PicGo插件后,在VSCode中编辑文件时,将要插入的图片复制,然后用快捷键 Ctrl+Alt+U
就能将剪切板中的图片上传到Github图床仓库中去,PicGo插件会自动将引用的cdn加速外链放在剪切板,直接粘贴在文章中使用
使用VSCode的PicGo插件和使用PicGo客户端差别就是PicGo客户端可以查看图片,这两个都不能实现图片的管理,在本地修改删除后远端仓库中的图片并不会相对应的修改和删除
当你在使用PicGo时如果要更改已经上传的图片,需要在Github端和PicGo端都进行删除更改操作(如果使用的是PicGo软件就在PicGo软件清理,用的VSCode就重启VSCode),同时清理使用的浏览器的缓存数据,这样才能保证旧链接失效,新链接启用
Live2D
安装插件
安装Live2D必要插件
1
npm install --save hexo-helper-live2d
安装看板娘模块
live2d-widget-model-wanko
是默认的一款看板娘,使用时需要先安装此模块1
npm install --save live2d-widget-model-wanko
设置全局配置文件
修改全局配置文件 _config.yml
,如果第一次用live2d就直接在_config.yml
文件结尾加上此配置内容
1 | # Live2D |
这些配置里只需要关注 use
项配置为使用的插件看板娘名称,display
部分负责看板娘显示的位置,看板娘名称可以在作者Github查看
在查看效果前记得使用 hexo clean
清理缓存
更换看板娘模块
想要使用别的看板娘,还是通过npm来下载看板娘模块,例如要使用的看板娘模块名字为 live2d-widget-model-koharu
,则先在博客根目录使用命令
1 | npm install --save live2d-widget-model-koharu |
然后修改 _config.yml
中live2d部分的use配置项为新的模型名字,例: use: live2d-widget-model-koharu
卸载看板娘模块和看板娘插件
1 | 卸载看板娘插件 |
卸载后记得将 _config.yml
中的live2d部分注释掉或者删除
Valine评论区
valine操作简单,可自行配置页面美化,虽简单但功能比较强大,而且快速安全,不要后端
hexo本身支持valine,不用另外使用npm安装valine模块
配置主题配置文件
配置 _config.butterfly.yml
文件中comments部分
1 | comments: |
创建Valine应用
更多有关Valine的介绍请访问Valine官网
- 在Valine官网注册个账号,选择中国大陆或者国际版
我测试时两种版本都试用过,国际版在评论时通过浏览器控制台看到
403 forbidden error
,说明comment请求正常发出,但被服务端拒绝了,我尝试过设置服务器地址
、添加web安全域名
等解决办法均不行,以后有时间再探究,大陆版本没问题 - 创建Valine应用,在应用页面,创建一个应用,选择开发版就行,需求量大的可以选择商用版(收费)
- 点击
对应应用
->设置
->应用凭证
,复制AppID
和AppKey
和服务器地址
,在主题配置文件_config.butterfly.yml
中添加Valine的配置1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18# valine
# https://valine.js.org
valine:
appId: Your AppId
appKey: Your AppKey
# 查询下面的网站,选择评论的适合出现的图像 https://valine.js.org/#/avatar
avatar: monsterid # gravatar style
# 你的对应的服务器的地址,就在appid那一页的下面
serverURLs: Your server URL # 这项配置适合国内自定义域名用户,海外版本会自动检测(无需手动填写)
# 评论系统的背景
bg: # valine background
# 是否允许游客评论
visitor: false
# 评论区显示的文字
placeholder: 留下你的想法. ( •̀ ω •́ )✧
# 每一页最大的评论数量
pageSize: 15
option: - 在Valine的设置里
安全中心
->web安全域名
处将自己博客网站的地址加进去,为方便调试localhost是默认不被阻拦的
测试评论功能
- 打开博客的评论区,按键盘
F12
打开浏览器控制台,切换到Network
栏监控数据流,刷新页面 - 输入昵称和邮箱后书写内容点击提交
- 查看Name为
Comment
的请求是否发生错误,发生错误字体会报红,右上角出现错误数量,没有的话说明正常,看评论界面出现刚提交的消息说明功能正常
注意在浏览器控制台中,如果是第一次提交评论,会发现有两个以 Comment?where=
开头的请求报出 404 not found
的错误,这是正常的,因为第一次评论时评论区服务器端还是没有数据返回给客户端,在提交过评论后这两个请求就会正常
violet留言板
注意violet留言板要和评论功能搭配使用,单独留言板是不能进行留言的,violet留言板就相当于建立了一个可以留言的页面,留言还是要靠评论模块
安装留言板插件
1 | npm install hexo-butterfly-envelope --save |
设置全局配置文件
在全局配置文件 _config.yml
或者主题配置文件 _config.butterfly.yml
中添加留言板模块的相关配置信息
1 | # envelope_comment |
一图流
一图流实现了博客的整个背景呈现出来是一张完整的图片,hexo默认是将页面分为top_img、background、footer三个部分,三个部分需要各自配置,如此三个部分的图片就是分离的
之前搭建博客的过程中为了美观,我将主页的top_img、footer同background设置为同一个图片,而别的页面直接禁用top_img,实现了一个 伪一图流(🤣)
这部分介绍如何通过css文件添加样式将顶部图和页脚设置透明,达到一图流的效果
创建css样式
创建 custom.css
样式文件在 source/css/
路径下,在其中书写透明化顶部图和页脚的css样式
1 | /* 页脚与头图透明 */ |
注入css样式
修改主题配置文件 _config.butterfly.yml
,在配置项 inject
处配置head项,注入custom.css:
1 | inject: |
取消加载项
因为上面配置后将顶部和底部图片都进行了透明化设置,因此修改主题配置文件 _config.butterfly.yml
中的 index_img
和 footer_bg
配置项取消顶部图与页脚图的加载项避免冗余加载
1 | # The banner image of home page |
页脚美化
安装页脚美化插件
在终端安装页脚美化插件
1 | npm install hexo-butterfly-footer-beautify --save |
修改配置文件
在全局配置文件 _config.yml
或主题配置文件 _config.butterfly.yml
中添加以下配置
1 | # footer_beautify |
runtime.css
是计时模块的样式配置文件,runtime.js
是计时模块的脚本文件
首页磁吸分类
安装插件
在终端通过npm安装插件
1 | npm install hexo-butterfly-categories-card --save |
修改配置文件
在全局配置文件 _config.yml
或者主题配置文件 _config.butterfly.yml
中添加以下代码,并根据描述排序改为你自己对应的分类名字:
1 | # hexo-butterfly-categories-card |
- 注意在本地测试时即使使用
--draft
后缀草稿文章也不会包含在主页磁吸分类统计里 custom_css
配置项所示的链接css文件可下载到本地放在css文件夹中采用相对地址的方式引入,在其中可以魔改自己的样式
首页文章轮播图
安装插件
在终端使用npm安装插件
1 | npm install hexo-butterfly-swiper --save |
修改配置文件
在全局配置文件 _config.yml
或主题配置文件 _config.butterfly.yml
中添加以下配置:
1 | # hexo-butterfly-swiper |
同样可以将css和js文件下载下来放在本地css文件夹和js文件夹中魔改自己的样式
设置轮播顺序
在文章front-matter部分添加优先级设置,值越大显示越靠前
1 | swiper_index: 1 #置顶轮播图顺序,非负整数,数字越大越靠前 |
首页文章双栏显示
安装插件
在终端使用npm工具安装插件
1 | npm i hexo-butterfly-article-double-row --save |
修改配置文件
- 在全局配置文件
_config.yml
中增加配置项1
2butterfly_article_double_row:
enable: true - 在
custom.css
样式文件中添加下面配置来解决最后一页文章数为奇数时不美观的bug1
2
3
4
5/* 翻页按钮居中 */
#pagination {
width: 100%;
margin: auto;
}