Hexo+Next指定文章隐藏侧栏

2018年6月4日 · 569 字 · 2 分钟 · #好玩系列

坑里呆了3小时

缘由

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

hexo new page "mubu"

中间省略其余相关步骤。

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

第一步

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

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

第二步

找原因。

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

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中找到下一列信息。

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

将其修改为:

{% 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即可。