前言
2022-08-04 更新文章 butterfly4.3.0 版本已增加 tag 和 category 页面可隐藏 aside,但不能隐藏某个 标签 或 分类 的侧边栏。
本文教程主要针对 Hexo Butterfly 主题博客,当用户进入归档、分类、标签页面时,已经是有目的性地浏览文章,此时可以隐藏侧边栏,避免 归档、分类、标签 信息的重复显示,_config.butterfly.yml 配置文件已经有了 归档页 的设置项了,我们需要加上 分类页 和 标签页 的设置项,修改主题源码。

修改主题配置文件
打开 _config.butterfly.yml 文件,找到 aside 配置项,添加 分类页 和 标签页 是否显示侧栏的设置项。
1 2 3 4 5 6 7 8 9 10 11 12
| aside: enable: true hide: false button: true mobile: true # display on mobile position: right # left or right archives: false # 归档页隐藏侧栏 + categories: false # 分类页隐藏侧栏 + tags: false # 标签页隐藏侧栏 card_author: enable: true description:
|
打开 _config.butterfly.yml 文件,找到 aside 配置项,添加 友链页 是否显示侧栏的设置项。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| aside: enable: true hide: false button: true mobile: true # display on mobile position: right # left or right display: archive: false # 归档页隐藏侧栏 tag: false # 分类页隐藏侧栏 category: false # 标签页隐藏侧栏 + flink: false # 友链页隐藏侧栏 card_author: enable: true description:
|
修改主题源码文件
打开主题源码文件 \themes\butterfly\layout\includes\layout.pug,修改渲染文件。
- is_category:检查当前页面是否为分类归档页面。
- is_tag:检查当前页面是否为标签归档页面。
- page.type 为 index.md 的 type 属性,可以在
\categories\index.md 和 \tags\index.md 目录找到,同理可以 添加 友链页 page.type = 'link' 是否显示侧栏配置项。
butterfly4.3.0 版本已增加 tag 和 category 页面可隐藏 aside,但不能隐藏某个 标签 或 分类 的侧边栏。
可以通过增加 page.type === 'categories' 或 page.type === 'tags' 来实现隐藏某个 标签 或 分类 的侧边栏。
1 2 3 4 5 6 7 8
| - var htmlClassHideAside = theme.aside.enable && theme.aside.hide ? 'hide-aside' : '' - - page.aside = is_archive() ? theme.aside.display.archive: is_category() ? theme.aside.display.category : is_tag() ? theme.aside.display.tag : page.aside + - page.aside = is_archive() ? theme.aside.archives : page.aside // - 归档页隐藏侧栏 + - page.aside = is_category() || page.type === 'categories' ? theme.aside.categories : page.aside // - 分类页隐藏侧栏 + - page.aside = is_tag() || page.type === 'tags' ? theme.aside.tags : page.aside // - 标签页隐藏侧栏 + - page.aside = page.type === 'link' ? theme.aside.display.flink : page.aside // - 友链页隐藏侧栏 - var hideAside = !theme.aside.enable || page.aside - var pageType = is_post() ? 'post' : 'page'
|
另外可以参看 Hexo 自带判断页面类型的函数,详见 条件函数 自行添加其他配置项。
Hexo 三连
执行 Hexo 三连
1
| hexo clean && hexo g && hexo s
|