如何在redefine中启用iconfont图标库
本文章的处理方法是基于Hexo-redefine-theme
版本2.8.1
修改的。在其他版本中不保证完全生效,请自行测试。
注意事项
- 本文档参考了 Butterfly 文檔(六) 進階教程 | Butterfly ,本博客不清晰的地方可以看这篇教程。
- 本文档参考了 插入自定义代码 | Hexo Theme Redefine Docs 的功能。
- 需要修改主题底层文件,可以按照 Hexo主题启用带API解析全局播放器 这篇文档重构网站,用于在主题更新时保留自己做的改变。
- 可以提前备份主题文件,防止修改出现异常。
操作步骤
获取在线链接
登录后在
资源管理-我的项目
中新建项目
。项目信息随便填,自己清楚就好。
接下来我们在iconfont中搜索想要加入的图标,点击
添加入库
此时右上角的购物车图标会有一个红色的角标非常显眼,点击购物车图标,点击
添加至项目
回到
资源管理-我的项目
中,在项目中即可看到我们刚刚添加的图标。请将类型从Unicode
切换为Font class
然后点击查看在线链接
第一次生成会没有在线链接,我们需要点击
🔄暂无代码,点击生成
到这里我们就能得到一段类似这个格式的样式引用地址
1
//at.alicdn.com/t/c/font_?_?.css
?
为通配符,每个人都不一样
插入自定义代码
打开站点下的
_config.redefine.yml
文件,找到inject
部分。默认是这个样子的:1
2
3
4
5
6
7
8
9
10
11
12
13
14# INJECT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> start
# Docs: https://redefine-docs.ohevan.com/inject
inject:
# Whether to enable inject
enable: false
# Inject custom head html code
head:
-
-
# Inject custom footer html code
footer:
-
-
# INJECT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< end按照要求,我们需要先启用
inject
功能,并将在线链接传入head
部分1
2
3
4
5
6
7
8
9
10
11
12
13
14# INJECT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> start
# Docs: https://redefine-docs.ohevan.com/inject
inject:
# Whether to enable inject
enable: true
# Inject custom head html code
head:
- <link rel="stylesheet" href="//at.alicdn.com/t/c/font_?_?.css">
-
# Inject custom footer html code
footer:
-
-
# INJECT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< end- 不改变类型,将在线链接传到
href
参数中即可。
- 不改变类型,将在线链接传到
修复social.links
的显示异常问题
由于redefine主题中
social.links
是由home-banner.ejs
文件处理的。他和iconfont提供的在线样式有重叠,造成了两个样式同时发挥着作用出现下图的情况:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23/* IconFont在线地址所提供的样式 */
@font-face {
font-family: "iconfont"; /* Project id ? */
src: url('//at.alicdn.com/t/c/font_?_?.woff2?t=?') format('woff2'),
url('//at.alicdn.com/t/c/font_?_?.woff?t=?') format('woff'),
url('//at.alicdn.com/t/c/font_?_?.ttf?t=?') format('truetype');
}
.iconfont {
font-family: "iconfont" ;
font-size: 16px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-finka:before {
content: "\e604";
}
.icon-coolapk:before {
content: "\e7f2";
}所以我们需要在
home-banner.ejs
中添加判断逻辑。
找到处理
social_links
的部分代码,在最后的else
(文件第79行)前添加一条else if
用于判断是否使用了阿里图标库。1
2
3
4
5
6
7<!-- 次格式可能会引起两种嵌套存在,如icon的css中写了content后可能会存在!important,建议修改 -->
else if(key.includes("icon-")) { %>
<a target="_blank" href="<%- theme.home_banner.social_links.links[key] %>">
<span class="social-contact-item <%= key %>">
</span>
</a>
<% }
使用方式
在想要使用iconfont图标的位置使用iconfont iconfont-name
的格式引用图标即可。如以下例子:
- 导航栏中的项目
1 | navbar: |
- 社交链接中的项目
1 | iconfont icon-coolapk: https://www.coolapk.com/u/2949284 |
- 文章中的按钮
1 | {% btn regular::翻咔::https://www.finkapp.cn/user/finka-h-I8-wlxOJs::iconfont icon-finka %} |
夸夸
这个问题是我滴好对象帮我解决的,本人只是简单记录了处理过程,没有谈到更加原理性的内容。大家可以去看看他的博客~ 捏捏太一の小博客
- 标题: 如何在redefine中启用iconfont图标库
- 作者: Ataida · 懒懒
- 创建于 : 2024-11-27 04:07:21
- 更新于 : 2024-11-30 02:38:40
- 链接: https://ataidawa.github.io/posts/10986.html
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。