Hexo中隐藏指定文章
前面用heo方案隐藏文章试了下,如洪哥所言会首页隐藏了,但任然会计数,首页隐藏位置会一片空白。这样的话比较影响页面内容的展示和美观,所以最后还是换插件了。
我的需求并不高,只要首页不显示隐藏的文章,并且不影响布局就可以。我用的插件是 hexo-hide-posts,可以在博客中隐藏指定文章,并只能通过文章的链接来访问,也可以让所有隐藏的文章在特定页面可见。
当一篇文章设置为隐藏时,不会出现在任何列表中(包括首页、存档、分类页面、标签页面、Feed、站点地图等),也不会被搜索引擎索引(前提是搜索引擎遵守 noindex 标签)。
安装
1 | $ npm install hexo-hide-posts --save |
使用
在文章的 front-matter 中添加 hidden: true
即可隐藏文章。比如隐藏了source/_posts/lorem-ipsum.md
这篇文章:
1 | --- |
完成设置后即可发现首页和其他分类上文章都被隐藏了,但可以通过https://hexo.test/lorem-ipsum/
链接访问它。(如果想要完全隐藏一篇文章,可以直接将其设置为草稿)
可以在命令行运行 hexo hidden:list
来获取当前所有的已隐藏文章列表。插件也在 Local Variables 中添加了 all_posts
和 hidden_posts
变量,供自定义主题使用。
配置
在站点 _config.yml
中添加如下配置:
1 | # hexo-hide-posts |
比如:设置 filter: secret
之后,你就可以在 front-matter 中使用 secret: true
来隐藏文章了。
注意:不是所有插件注册的 generator 名称都与其插件名称相同。比如 hexo-generator-searchdb 插件,其注册的 generator 名称就是 xml
和 json
,而非 searchdb
。因此,在填写 public_generators
参数时要注意使用插件实际注册的 generator 名称(可以查阅对应插件的源码来获取准确的注册名)。