Hexo+Next指定文章隐藏侧栏

坑里呆了3小时

缘由

近期在幕布的活动比较多,想新增一个幕布的作品集页面,所以就依葫芦画瓢,新建一个幕布作品集的页面。

1
hexo new page "mubu"

中间省略其余相关步骤。

提交至线上发现右边我设置的隐藏栏就自动弹出来了,好奇的是为什么分类、标签等不自动弹出来呢?

第一步

各种Google找资料,next主题的官网等都没找到解决办法,最好慢慢在妥协,要不全部都不显示了?

作为一个追求相对完美的人,肯定不愿意放弃!

第二步

找原因。

为什么不行呢?为什么会显示呢?查看next主题的配置文件。其中display: post,这句话的意思只有文章才自动显示。所以我的幕布作品集被当作了文章处理。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
sidebar:
# Sidebar Position, available value: left | right (only for Pisces | Gemini).
#position: left
position: right

# Sidebar Display, available value (only for Muse | Mist):
# - post expand on posts automatically. Default.
# - always expand for all pages automatically
# - hide expand only when click on the sidebar toggle icon.
# - remove Totally remove sidebar including sidebar toggle.
display: post
#display: always
#display: hide
#display: remove

# Sidebar offset from top menubar in pixels (only for Pisces | Gemini).
offset: 12

# Back to top in sidebar (only for Pisces | Gemini).
b2t: false

# Scroll percent label in b2t button.
scrollpercent: true

# Enable sidebar on narrow view (only for Muse | Mist).
onmobile: false

继续探寻,最后在issues/943找到了解决办法的初步思路。

第三步

根据issues-943找到了my-project/themes/next/layout/_marcro/sidebar.swig中找到下一列信息。

1
{% set display_toc = is_post and theme.toc.enable or is_page and theme.toc.enable %}

将其修改为:

1
{% set display_toc = is_post and theme.toc.enable and !page.no_toc or is_page and theme.toc.enable and !page.no_toc %}

然后只需要在你不想显示目录的文章头部加一行:no_toc: true即可。

一分支持,也是鼓励!
0%