个人博客搭建记录

使用github page+hexo搭建,主题为fluid,搭建步骤参照:Github + hexo 实现自己的个人博客、配置主题(超详细)

主题:https://hexo.fluid-dev.com/

ps:刚开始的时候我默认Windows无法弄hexo,故在ubuntu虚拟机中弄的,但每次修改博客内容都要打开vmware,比较麻烦。而后听说Windows也可以部署,故将source目录下的内容搬移过来并对照以下条目进行了相应的修改,不过为了省事最好直接在Windows弄这些东西。

搭建时的问题:

1 Ubuntu apt默认下载的nodejs版本过低,snap安装18.18的node js
2 在source目录下添加CNAME文件指定个人域名
3 在iconfont中搜索所需图标,并通过自定义css导入项目 自定义图标
4 在source目录下添加本地图片以便博客引用
5 通过CsdnSyncHexo将csdn博客导出为markdown格式并移至source/_posts目录下
6 csdn博客迁移后图片显示403, 只需要在每个文章的头部加上这么一句代码就可以 <meta name="referrer" content="no-referrer" />


Hexo 搭建:图片不能正常显示问题(简书图片403)

该语句能生效的原因:
http请求头中有一个referrer字段,用来表示发起http请求的源地址信息
服务器端在拿到这个referrer值后判断请求是否来自本站
若不是则返回403,从而实现图片的防盗链。上面出现403就是因为,请求的是别人服务器上的资源,但把自己的referrer信息带过去了,被对方服务器拦截返回了403
在前端可以通过meta来设置referrer policy(来源策略),referrer设置成no-referrer,发送请求不会带上referrer信息,对方服务器也就无法拦截了

get请求图片出现403 防盗链解决方式 no-referrer

通过vscode替换功能一次性更新所有博客md文件

1
2
3
4
5
6
7
8
9
---

<!--more-->

# 换成

---
<meta name="referrer" content="no-referrer" />
<!--more-->
7 csdn导出的markdown文件toc目录未能正常显示,文章开头没有以下类似的东西,只显示一个TOC字符


但发现侧边栏也有目录,故删去TOC语句

通过vscode正则匹配一次性删去所有TOC行

1
^.*(@[TOC]).*\n

VSCode 批量删除指定匹配的一整行

8 导出的markdown文件分类以空格分割,需手动改成-[]分割
1
2
3
4
5
6
7
8
categories: 踩坑日记 源码剖析 内核驱动开发记录

# 改成

categories:
- [踩坑日记]
- [源码剖析]
- [内核驱动开发记录]

分类和标签

9 代码风格改成atom-one-dark
1
2
3
4
5
6
highlightjs:
# 在链接中挑选 style 填入
# Select a style in the link
# See: https://highlightjs.org/static/demo/
style: "atom-one-dark"
style_dark: "atom-one-dark"

https://highlightjs.org/demo
好像要npm install highlightjs –save

10 添加音乐播放器

在网易云得到外链

1
<iframe frameborder="no" border="0" marginwidth="0" marginheight="0" width=330 height=86 src="//music.163.com/outchain/player?type=2&id=65800&auto=1&height=66"></iframe>

在node_modules/hexo-theme-fluid/layout/about.ejs中加入

1
2
3
<div class="music-player">
<iframe frameborder="no" border="0" marginwidth="0" marginheight="0" width=330 height=86 src="//music.163.com/outchain/player?type=2&id=65800&auto=1&height=66"></iframe>
</div>

可以通过修改node_modules/hexo-theme-fluid/修改页面信息
最终效果:

hexo 第四讲 – 界面中加入音乐

5-9更新:

使用hexo-tag-aplayer插件添加音乐播放器,更加地简洁

相关博客:

Aplayer 插件使用

Hexo主题插入音乐之aplayer音乐播放器

Hexo-Butterfly音乐播放器的添加

11 增加评论功能

主要依据以下这篇博客,注册leancloud账号,将AppID AppKey serverURLs填入valine配置中,不过这博客有点误导人,以为serverURLs是填安全域名呢,实际上应该填REST API 服务器地址
hexo-fluid添加valine评论记录

效果:

12 增加访问数统计

主要依据Hexo-fluid主题设置统计博客阅读量同样在leancloud创建应用,得到AppID AppKey serverURLs,而后修改主题配置,注意填入serverURLs。但这篇博客只使能了博客阅读次数统计,实际上还有总访问次数统计

最终效果:

13 将网站加入各个搜索引擎

参考博客:
hexo博客的高级SEO优化【灰鸿】
如何在Google Search Console里设置网站域名的DNS验证

将网站加入百度,必应,谷歌3个网站,添加sitemap站点地图,优化URL,代码压缩

百度加入网站步骤一大堆,烦死了,真恶心

14 自动摘要


csdn导出的markdown文件都有一行<!--more-->,妨碍了生成自动摘要,全部删除

15 博客封面未能成功显示,返回403,

在node_modules/hexo-theme-fluid/layout/index.ejs文件中加入no-referrer语句 (与加入音乐播放器类似的思路)

目录结构

16 使用hexo-seo-autopush每天自动提交url到百度和谷歌必应

相关步骤:

https://github.com/Lete114/Hexo-SEO-AutoPush

说明:

每天中午 12 点推送一次网站信息到 Baidu 和 Bing,提高爬虫抓取几率

可手动点击star触发 Actions

17 使用阿里云图床+PicGO+typora搭建博客图床 使用“图压”软件压缩图片

之前直接把图片上传到csdn上,然后使用csdn图床的链接,总归有点麻烦,且怕csdn把这种方法屏蔽了,故花钱在用阿里云搭一个图床,而且搭的时候可以与typora一起使用,非常方便,复制粘贴到typora后就直接上传了

CSDN图库

Typora+PicGo+阿里云OSS搭建博客图床(超详细)

注意存储区域只需要写oss-cn-xxx,不需要前面的bucket标识

简单易用的图片压缩软件

18 使用hexo-all-minifier压缩博客资源

参考博客:Hexo折腾系列——博客访问速度优化

之前使用hexo-neat压缩文件,而后看到以上博客,故改用hexo-all-minifier

使用cnpm安装hexo-all-minifier成功

19 增加看板娘功能

live2d-widget-model-z16

hexo-helper-live2d