Hexo+Butterfly主题bangumis页面font-matter中top_img无法生效解决方案
前言
在使用 Hexo 配合 Butterfly 主题,并安装 hexo-bilibili-bangumi 插件生成 bangumis 页面时,我遇到了一个问题:
我在页面 front-matter 中设置了
top_img,但是本地预览时,bangumis 页面顶部封面依然显示默认图片,无法生效。
下面分享整个排查和解决过程,希望对同样遇到问题的人有帮助。
问题分析
- 插件生成页面覆盖 front-matter
hexo-bilibili-bangumi插件在生成 bangumis 页面时,会使用自己的模板生成页面,进而导致文章 front-matter 的top_img失效。 - Butterfly 主题渲染机制
主题在渲染页面顶部封面时,会读取header#page-header的style="background-image: ...",而不是<img>标签,所以直接使用.top-imgJS 替换<img>无效。
解决方案:使用JS动态替换
由于 bangumis 页面顶部是 CSS 背景图,可以用 JS 动态替换:
- 在
themes/butterfly/source/js/下新建custom.js(如果没有)。 - 写入以下代码:
1 | /** |
- 在
_config.butterfly.yml中引入:
1 | inject: |
- 执行:
1 | hexo clean |
刷新浏览器,就会看到自定义的封面图生效。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 点风尘の博客!
评论







