L
O
A
D
I
N
G

hexo 隐藏文章


如果你希望在 Hexo 博客中隐藏某一篇特定的文章,可以试试hexo-hide-posts 插件。这款插件可以帮你直接在 front-matter 中标记文章为隐藏。被隐藏的文章不会出现在首页、归档、分类、标签、Feed、站点地图等任何公开列表中,并且会自动添加 noindex 元标签以防被搜索引擎收录,但知道直接链接的人仍可访问。

安装与配置

npm install hexo-hide-posts --save

在站点文件 _config.yml 中根据需要进行额外配置,例如更改默认的过滤标识符或控制文章在特定生成器中的行为。

# hexo-hide-posts
hide_posts:
  # 是否启用 hexo-hide-posts
  enable: true

  # 隐藏文章的 front-matter 标识,也可以改成其他你喜欢的名字,例如 'secret'
  filter: hidden

  # 为隐藏的文章添加 noindex meta 标签,阻止搜索引擎收录
  noindex: true

  # 设置白名单,白名单中的 generator 可以访问隐藏文章
  # 常见的 generators 有:index, tag, category, archive, sitemap, feed, etc.
  # allowlist_generators: []

  # 设置黑名单,黑名单中的 generator 不可以访问隐藏文章
  # 如果同时设置了黑名单和白名单,白名单的优先级更高
  # blocklist_generators: ['*']
  • filter:默认使用 hidden: true 来隐藏文章。如果你修改了 filter(例如改为 secret),后续就需要使用 secret: true 来隐藏文章。

使用

在想要隐藏文章的 front-matter 中添加 hidden: true 即可隐藏文章。(如果使用了自定义 filter,则对应修改)。

比如我们隐藏了 source/_posts/test-hide.md 这篇文章:

---
title: test-hide
date: '2024-02-05 09:44:02'
hidden: true # 添加此行以隐藏文章
---

虽然首页上被隐藏了,但你仍然可以通过 https://xxx/test-hide/ 链接访问它。

你可以在命令行运行 hexo hidden:list 来查看所有已隐藏的文章列表。

验证:清理并重新启动本地服务器,在浏览器中检查首页、归档页等,确认文章已隐藏。然后通过直接访问文章链接,确认其仍可被打开。

插件也在 Local Variables 中添加了 all_postshidden_posts 变量,供自定义主题使用。

注意

  • 关注插件的更新和兼容性。
  • 更多高级配置,如黑白名单控制自定义 ACL 函数,详见[官方文档](hexo-hide-posts/README_ZH.md at master · prinsss/hexo-hide-posts)
  • 如果想要完全隐藏一篇文章,可以将其设置为草稿(Draft)。将文章移动到 source/_drafts 目录下,它们就不会被发布。但严格来说,这并非“隐藏”,而是“未发布”,其他人无法通过任何方式访问。

总结

对于大多数用户,首推使用 hexo-hide-posts 插件来隐藏博客中的文章:

  1. 安装插件:在博客根目录运行 npm install hexo-hide-posts --save
  2. 标记文章:在需要隐藏的文章的 front-matter 里加上 hidden: true
  3. 生成部署:照常运行 hexo clean && hexo g -d

文章作者: loyeh
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 loyeh !
评论
  目录