51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

Hexo插件:hexo-hide-posts 文章隐藏

Hexo插件:hexo-hide-posts 文章隐藏 {#Hexo插件:hexo-hide-posts-文章隐藏}

hexo-hide-posts {#hexo-hide-posts}

简介 {#简介}

hexo-hide-posts 是一款针对 Hexo 博客系统设计的插件,旨在提供文章隐藏功能,使用户能够选择性地隐藏特定的博客文章,以便仅对特定受众可见。

功能特点 {#功能特点}

  • 文章隐藏 : 允许用户对指定的博客文章进行隐藏处理,以限制访问权限。
  • 灵活配置 : 插件提供了灵活的配置选项,使用户能够根据需求定制隐藏设置。

安装和使用 {#安装和使用}

  1. 通过 npm 安装插件:

    npm install hexo-hide-posts --save

  2. 在 Hexo 博客的配置文件中进行相应配置。

  3. 在需要隐藏的文章的 front-matter 中添加相应标识。

  4. 重新生成博客并部署,以应用隐藏设置。

示例 {#示例}

|-----------------------------------------------------------------------------| | ---- title: "隐藏文章示例" date: 2023-12-13 hide: true --- 这是一篇隐藏的示例文章内容。 |

结语 {#结语}

hexo-hide-posts 插件为 Hexo 博客系统提供了文章隐藏功能,使用户能够更好地控制博客内容的访问权限。通过该插件,您可以轻松实现对部分内容的隐藏,确保内容仅对授权用户可见。

下面内容为hexo-hide-posts作者编写的文档
Github仓库: hexo-hide-posts

hexo-hide-posts {#hexo-hide-posts-1}

npm-version
hexo-version

English Documentation

本 Hexo 插件可以在博客中隐藏指定的文章,并使它们仅可通过链接访问。

当一篇文章被设置为「隐藏」时,它不会出现在任何列表中(包括首页、存档、分类页面、标签页面、Feed、站点地图等),也不会被搜索引擎索引(前提是搜索引擎遵守 noindex 标签)。

只有知道文章链接的人才可以访问被隐藏的文章。

安装 {#安装}

|-------------------------------------| | npm install hexo-hide-posts |

使用 {#使用}

在文章的 front-matter 中添加 hidden: true 即可隐藏文章。

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

|---------------------------------------------------------------------------------------------------------------------------------------| | --- title: 'Lorem Ipsum' date: '2019/8/10 11:45:14' hidden: true --- Lorem ipsum dolor sit amet, consectetur adipiscing elit. |

虽然首页上被隐藏了,但你仍然可以通过 https://hexo.test/lorem-ipsum/ 链接访问它。(如果想要完全隐藏一篇文章,可以直接将其设置为 草稿

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

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

配置 {#配置}

在你的站点 _config.yml 中添加如下配置:

|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | hide_posts: # 是否启用 hexo-hide-posts enable: true # 隐藏文章的 front-matter 标识,也可以改成其他你喜欢的名字 filter: hidden # 为隐藏的文章添加 noindex meta 标签,阻止搜索引擎收录 noindex: true # 设置白名单,白名单中的 generator 可以访问隐藏文章 # 常见的 generators 有:index, tag, category, archive, sitemap, feed, etc. # allowlist_generators: [] # 设置黑名单,黑名单中的 generator 不可以访问隐藏文章 # 如果同时设置了黑名单和白名单,白名单的优先级更高 # blocklist_generators: ['*'] |

举个栗子:设置 filter: secret 之后,你就可以在 front-matter 中使用 secret: true 来隐藏文章了。

高级配置 {#高级配置}

在 0.3.0 及以上版本,插件提供了更精细的黑白名单控制。

示例1 :让所有隐藏文章在存档页面和分类页面中可见,其他地方不可见

|---------------------------------------------------------------------------------------------------------------------------------| | hide_posts: enable: true # 功能与 0.2.0 及以前版本的 public_generators 一致,改了个名字 allowlist_generators: [ 'archive' , 'category' ] |

示例2 :仅在首页和 RSS 隐藏部分文章,其他地方可见

|----------------------------------------------------------------------------------------------------------------------------------------------------------------------| | hide_posts: enable: true # 更多黑白名单的高级配置示例,可以在 `lib/isGeneratorAllowed.test.js` 文件中查看 allowlist_generators: [ '*' ] blocklist_generators: [ 'index' , 'feed' ] |

注意 :不是所有插件注册的 generator 名称都与其插件名称相同。比如 hexo-generator-searchdb 插件,其注册的 generator 名称就是 xmljson ,而非 searchdb 。因此,在填写 allowlist_generatorsblocklist_generators 参数时要注意使用插件实际注册的 generator 名称(可以查阅对应插件的源码来获取准确的注册名)。

Tips: 运行 hexo g --debug ,可以在调试日志中查看所有已安装的 generator 的注册名称。

示例3 :使用自定义 JavaScript 函数判断白名单

在博客中添加一个 插件脚本

|-----------------------------------------------------------------------------------------------------------------------------------------------------| | // scripts/allowlist.js (文件名任意) hexo. config . hide_posts . allowlist_function = function ( name ) { return /archive|feed/ . test (name); } |

自定义 ACL 函数 {#自定义-ACL-函数}

如果你需要更细粒度地控制某篇文章应该如何显示或隐藏,可以使用本插件的更高级功能: 自定义 ACL 函数 (需要 0.4.0 及以上版本)。

插件支持传入自定义 JavaScript 函数作为 ACL (Access Control List,访问控制列表)。ACL 函数功能十分强大,可以完全控制某一篇文章是否应该被某一个 generator 渲染。函数接受两个参数:文章对象 post ,以及当前 generator 的注册名称 generatorName 。同时,也可以访问全局变量 hexo

下面是一个较为复杂的例子,实现了以下功能,如有需要可自行修改使用:

  • 在 front-matter 中标记为 acl: no-rss 的文章,博客中正常展示,但在 RSS 和 sitemap 中隐藏
  • 标记为 acl: archive-only 的文章,仅在存档页面中展示,在其他地方隐藏
  • 分类为 news 的文章,在所有地方都展示
  • 发布日期早于 2020 年的文章,在所有地方都隐藏
                
                
              
赞(0)
未经允许不得转载:工具盒子 » Hexo插件:hexo-hide-posts 文章隐藏