Blog配置杂谈及git
怎么样获得貌美Blog ? 🤔🤔
来配个随机图
随机图配置的思考
我的博客用的是hexo+butterfly主题,官方文档很详细,所以基础配置教程没必要写。
这里记一下配置文章随机图的小折腾。
随机图片API:
1 | https://www.loliapi.com/acg/ |
理想状态下是在主题的配置文件_config.butterfly.yml里面修改default_top_img和default_cover的值为上述API就行了,
但是实际上,因为浏览器缓存等原因的存在,会导致浏览器第一次访问该URL获得返回图之后,就会默认用该图替换掉所有访问这个URL的图片位置,导致出现多篇博客文章的封面cover图和top_img图都是一样的,虽然刷新之后每次显示的图是随机的,但所有文章的图却是完全一样,这样的博客还不够貌美且体验非常不好,并不能实现预期,所以我们要做的工作还有很多。
- 配置
_config.buttrefly.yml如上文介绍; - 编写随机图脚本文件
random-img.js; - 给出在 Pug 模板中注入全局变量并引入脚本的代码片段;
通过在layout布局中注入js脚本,使浏览器每次访问该url都会在它之后加上随机值,从而获得随机美图。
更优雅的
不知道为什么butterfly的官方文档里找不到了,翻了翻其他大佬的博客才看到的:
在default_cover: 这行配置前面加上suffix: 1,
1 | suffix: 1 |
然后在themes/butterfly/scripts目录下新建一个random_img.js脚本,写入以下内容:
1 |
|
这样浏览器请求时就可以在你给定的api后面加上随机值,从而避免浏览器缓存,实现显示随机图片。
建个新分支放文章叭
hexo做了什么?
先了解一下hexo的部署机制,
第一步:生成静态文件
执行
hexo generate(简写hexo g)时,Hexo 会根据source目录中的 Markdown 文章、主题模板(themes目录)、配置文件(_config.yml)等,编译生成可直接在浏览器运行的静态 HTML、CSS、JS 等文件,默认输出到public目录。这一步是部署的前提,所有部署的内容均来自public目录。第二步:部署静态文件
执行
hexo deploy(简写hexo d)时,Hexo 会调用配置的部署工具,将public目录中的静态文件上传到指定的远程平台(如 Git 仓库、云服务器等)。部署方式由_config.yml中的deploy配置决定,支持多种部署策略。显然看我的博客url就知道我是部署在github上的git仓库里的,_config.yaml里配置的是main分支。
文章放哪?
因为hexo是静态生成.html文件之后再部署的,这就导致没法在仓库里找到.md的博客文章,且GitHub默认不会对.html文件渲染,导致在仓库中看到的博客文章体验非常不好(没有网页渲染,只显示Raw源代码),
所以我在main分支外创建了一个posts分支,该分支中存放能被GitHub渲染的.md博客文章。
但是main分支里的文章都已经在hexo部署的时候生成静态页面了,所以简单的分支split并不能实现,于是需要checkout -b重新创建并切换一条分支。步骤如下:
步骤
git init 和 .gitignore
在myblogs文件夹打开git bash,输入git init,这会生成一个.git文件夹;在相同目录下新建一个.gitignore文件(因为我们只想要推送source/_posts目录下的文章,所以需要配置一下.gitignore的信息)
此时文件结构应该是这样:

然后编辑一下.gitignore的内容:
1 | # 忽略仓库根下的所有(包括文件和目录) |
git remote
1 | git remote add test xxx(github仓库地址.git) |
建立远程连接,连接到远程GitHub仓库,并在本地给这个仓库连接取别名为test; 别名一般都是用origin
1 | git remote add origin https://github.com/futurefe414/futurefe414.github.io.git |
不过如果你已经更改过hexo的_config.yml文件且已经 hexo g -d部署过的话好像已经有默认的了,不用单独连过,它会自动识别到这个仓库连接。
可以通过git remote -v查看远程仓库连接.
git checkout
在该仓库下新建并切换posts分支:
1 | git checkout -b posts |
git push
由于hexo部署有推送到GitHub仓库的历史,所以建议在add前先清除一下跟踪:
1 | git rm -r --cached . |
再推送到远程仓库:
1 | git add . |
关于git push,git push origin posts就是把本地的posts分支推送到origin指代的仓库里的posts分支下(如果没有就新建一个posts分支)
这样你访问futurefe414/futurefe414.github.io这个仓库切换到posts分支下就能看到.md渲染的博客文章了。

