如何自定义侧边栏

详见

在hexo博客目录中的/source/_data创建一个名为widget.yml的文件,如果没有_data文件夹,自己创建一个。widget.yml文件内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
top: #创建的 widget 会出现在非 sticky 区域(即所有页面都会显示)
- class_name: #所创建的 widget 父类 class 名 (可选)
id_name: #所创建的 widget 父类 id 名(可选)
name: #所创建的 widget 标题
icon: #所创建的 widget 图标
html: #所创建的 widget 相关代码

bottom: #创建的 widget 会出现在 sticky 区域(除了文章页都会显示)
- class_name:
id_name:
name:
icon:
order: #所创建的 widget 排序 (可选),如果不配置,则默认为 0。数字越小,排序越靠前。非自定义侧边栏的排序在主题配置文件(_config.butterfly.yml)sort_order处设置
html:

hexo会根据widget.yml内容自动生成代码。

1
2
3
4
5
6
7
8
9
10
<div class="card-widget 所写的 class_name" id="所写的 id_name" style="order: 所写的 order">
<div class="item-headline">
<i class="所写的 icon"></i>
<span>所写的 name</span>
</div>
<div class="item-content">
所写的 html
</div>
</div>

如何添加自定义css、js、img文件

在本地博客根目录的source文件夹里创建css``js``img文件夹(/source/css /source/js /source/img),里面即可存放.css .js img文件。

随后,在主题配置文件_config.butterfly.yml里面的inject处引入刚才编写的css js文件。

至于img文件,直接就在需要插入图片的地方引入/img/***.png即可,但一般建议使用图床。

一般而言,css文件在head引入,js文件在bottom里引入,有的js要求在head引入,不然无法生效。

1
2
3
4
5
6
7
8
9
10
11
12
inject:
head:
# 自定义css
- <link rel="stylesheet" href="/css/style.css?v1">
# 静态文件后面加个 ?任意内容 可以在每次更新之后用户自动重新请求.
# 例如添加 ?1 ,在修改此文件后改成 ?2 ,用户访问你的网站时,不会使用本地的缓存,而是请求新的内容。没修改的话就不用动。
bottom:
# 自定义js
- <script src="/js/script.js?v1"></script>
# 引入多个文件就直接往下复制一行改一下文件名即可,如下:
- <script src="/js/script1.js?v1"></script>
- <script src="/js/script2.js?v1"></script>