一、写在前面

我一度很困惑,我的网站的上的各种 icon 是怎么来的。例如导航栏,目前是这样配置的:

1
2
3
4
5
6
menu:
首页: / || fas fa-home
标签: /tags/ || fas fa-tags
分类: /categories/ || fas fa-folder-open
相册: /gallery/ || fas fa-images
关于: /about/ || fas fa-heart

其中类似 fas fa-home 应该就是图片的配置。但是这是啥啊,为啥这么写?直到我看了 Butterfly 主题的 文档 才开始理解。

二、fontawesome

文档是这么描述的:

Butterfly主题内置了 Font Awesome V5 图标,目前已更新到 5.13.0,总共有 1,588 个免费图标。

那么在 fas fa-home 中

  • fas 是 fontawesome 的缩写,表示使用 fontawesome 的图标;
  • fa-home 是图标的名称。

这个书写规则是 Butterfly 定义的,取决于 Butterfly 内部对 fontawesome 的引用逻辑。
而图标名称前面带 fa- 是 fontawesome 要求的

也就是说,我们需要在 fontawesome 中 搜索 对应的图标,然后获取图标的名称,加上 fa- 前缀即可。
这里替换菜单栏的 关于 的图标举例,原先是

1
关于: /about/ || fas fa-heart

找到要使用的图标,得到图标名为 fa-user

替换:

1
关于: /about/ || fas fa-user

重新生成并部署

1
hexo cl && hexo s -g

可以看到生效了:

但是,是我想当然了。其实并不是所有的图标都是 fas fa-xxx 的格式,例如对于 bilibili 的图标来说,使用图标时应该用这个 fa-brands fa-bilibili。具体需要点击该图标进行查看:

Butterfly 主题使用 Font Awesome 版本是 6.5.1,而 Font Awesome 最新版本是 6.5.2。所以应该是 Butterfly文档 没有及时更新?而 6.5.1 版本的图标个数应该也不止 1588 个。

三、iconfont

文档中还提到:

由于是国外的图标网站,对于国内的一些网站 Icon 并不支持。如有需要,你可以引入其它的图标服务商。
国内最出名的莫过于 iconfont ,功能很强大且图标内容很丰富的矢量图标库。很多 Font Awesome 不支持的图标都可以在这里找到。同时,iconfont 支持选择需要的图标生成css链接,减少不必要的CSS加载。

下面我就跟着 Butterfly 主题的 文档 来使用一下 iconfont。

1、登录 iconfont

登录 iconfont

2、添加图标入库

找到想要使用的图标,添加入库。把鼠标移到图标上,会显示三个图标,依次是 入库、收藏 和 下载。

3、图标添加到项目

点击购物车,将图标添加到项目中

如果没有项目,则新建一个

4、生成css链接

添加项目之后,会跳转到项目的详情界面。点击 Font class,再点击 查看在线链接,最后点击 暂无代码,点击生成。

网站会生成 css 链接,我们复制链接即可。

5、添加链接到主题配置文件

打开主题配置文件 _config.butterfly.yml,找到 inject 配置,按要求将连接填入:

6、使用图标

在我们需要的地方填入 icon,图片格式为:iconfont icon-名字

重新部署后,可以看到图标已经生效了

不过似乎大小有点问题,比 fontawesome 的图标略小一些。

四、相关链接