教程:基于Butterfly主题的分类磁贴2.0版
当前教程已暂停维护
最新教程,请参考最新教程akilar- 基于 Butterfly 主题的分类磁贴
序言:效果展示
灵感来源于原生主题的 gallery 以及在其他主题见到过的分类列表。
考虑到部分小伙伴的 tag 比较多,因此用 categories 为标准进行分类。
这里用到了 hexo 主题自带的帮助函数 list_categories()。帮助函数的作用在于能够自动帮你生成一些信息。
笔者对于函数及 function 进行了深入研究,利用 vue 实现了磁贴的自动获取和部分样式配置。
资源包地址:https://github.com/Zfour/Butterfly-magnet
废话不多说了,开始教学。
步骤 1:修改 pug 代码
在开始一切工作之前,先确保你有至少 4 篇不同 categories 的文章。如果没有的话需要新建示例文章。
分类为自动获取的主分类。
下载资源包
增加、替换代码
前往”根目录\themes\butterfly\layout”文件夹,将资源包中的”catalogMagnet.pug”复制到文件夹中。
将”index.pug”复制并重命名为”index-re.pug”作为备份。
将资源包中的”index.pug”覆盖进行替换。
或者打开”index.pug”按照以下代码进行修改。修改的起始点为”#recent-posts.recent-posts”。
ps:如果分类前有 gitcalendar 等块级元素的话在”photo-tag(style=’”后加”margin-top: 20px”来增加块之间的间隔。
1 | extends includes/layout.pug |
这里部分新手在使用时会出现 bug
磁贴和文章间会空出很大一行,
这时请使用备用兼容的 pug
.recent-post-item(style=’height:0px;clear:both;margin-top: 0px;’)的目的是重置换行
步骤 2:添加引入 js、css 代码
放置资源包
将下载包中的 magnet 文件夹放入根目录的”source”文件夹下。
向 styl 里添加代码
因为在调试过程中出现了 bug,且尚未解决,所以需要将以下代码加入到 style 里。
前往”博客根目录\themes\butterfly\source\css_layout”打开”third-party.styl”
提示:这里最好不要备份,备份的话不要放在 css 目录下(你可以复制一份到桌面)。
在末尾处填写以下代码:
1 | .color-card |
引入 js 和 css
打开”\themes\butterfly"路径下的”_config.yml”
搜索到”inject:”设置处
添加以下代码:
若已有 vue 引入,请确保 vue 的版本为 2.6 以上。
你也可使用“https://cdn.jsdelivr.net/npm/vue@2.6.11”进行cdn引入。
bottom:
-
1 |
|
磁贴描述信息
按照从左到右,从上到下的顺序填写,可增加任意数量数组元素。
1 | //这里是磁贴描述信息 |
磁贴样式配置
你可以通过此项修改磁贴的文字颜色,图片遮罩、阴影等效果。
1 | //这里是磁贴的文字颜色 |
定制展示配置
通过增加以下 js 代码可隐藏不需要展示的分类。
1 | $(".color-card").eq(0).css({ display: "none" }); |
如果以上方法不成功请尝试 css 方法。(来自 zero)
1 | figure.gallery-group.color-card:nth-child(1) { |
总结
在添加新分类后,分类排序可能出现变化,请对应修改配置项。
若有问题请与我邮件联系499984532@qq.com。