环境:hexo + butterfly主题

相关文章:hexo——隐藏文章不在首页显示

这种方式会导致主页显示文章分页数量混乱

hexo-hide-posts插件

用来隐藏不想要展示的文章,也不会被搜索引擎发现

hexo-hide-posts

这种方式导致需要隐藏的文章中侧边栏不能有series标签
修复,在使用groupPosts函数时,将参数改为this.site.all_posts

20241117@[THEME FIX HIDE && SERIES IB38S3] · fe8a72a · 杯酒炼心/butterfly-theme - Gitee.com

基本使用

安装

1
npm install hexo-hide-posts --save

配置

注意这里修改的是_config.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# hexo-hide-posts
hide_posts:
# 是否启用 hexo-hide-posts
enable: true
# 可以改成其他你喜欢的名字,如果文章的front_matter对应的filter[这里是hidden]被设置为了true,那么这个文章将会被隐藏
filter: hidden
# 指定你想要传递隐藏文章的位置,比如让所有隐藏文章在存档页面可见
# 常见的位置有:index, tag, category, archive, sitemap, feed, etc.
# 留空则默认全部隐藏
# allowlist_generators: ['404','asset','post','archive','category','index','live2d','tag']
allowlist_generators: []
# 如果同时设置了黑名单和白名单,白名单的优先级更高
# blocklist_generators: ['*']
noindex: false # 隐藏文章的 sitemap.xml 索引

TIPS

  • hexo的debug模式

    hexo s –debug

修改适配

隐藏文章原理

流程图

image-20241110120530683

核心就是在generate之前将不需要显示的文章删除

问题:

默认场景【没有用生成器的场景】是不显示相关文章的,导致侧边栏的文章统计出现问题

代码解释

node_modules\hexo-hide-posts

  • prepareHiddenPosts

    获取所有文章,并分类,修改适配locals变量

  • injectGenerators

    对不同的生成器进行不同的处理

修改方向

  • 默认显示所有文章

    看了看代码,没看懂怎么改,这个方向g了

    好像插件的原理是如果允许显示隐藏文章直接使用数据库中的数据,

    这我怎么会啊

    gg

    image-20241110121059245

    所有生成器默认隐藏相关内容,只有被标记为allow才会使用ALL POST

  • 文章链表更新
    hide-posts插件把所有被标记为隐藏的文章的上下文章删除,个人不喜欢,这里修改为以category链接。

    太菜了,搞不定

    还是搞定了,嘎嘎嘎

    hexo-hide-posts插件,隐藏文章按照分类链接 · Issue IB39NZ · 杯酒炼心

  • 侧边栏显示的文章总数为首页显示的文章总数
    这里修改为文章总数始终和archive归档页面的文章总数相同

    原理是判断config中的allow_generator有没有archive

    有的话,就是全部文章,

    没有的话,就是隐藏之后的文章。

适配新布局修改

链接逻辑

之前修改hide-posts中对于隐藏文章的链接方式

改为了按照分类进行链接,当前进行修改,按照时间->布局->分类->系列的方式进行链接。

流程图如下:

备注:category是数组,取第一个,我默认应该也是只写一个分类的

image-20241201111113617

代码修改