Hexo博客文章隐藏
如需要文章隐藏功能,请装插件 hexo-generator-indexed 或者 hexo-hide-posts
hexo-hide-posts
本 Hexo 插件可以在博客中隐藏指定的文章,并使它们仅可通过链接访问。
当一篇文章被设置为「隐藏」时,它不会出现在任何列表中(包括首页、存档、分类页面、标签页面、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 名称(可以查阅对应插件的源码来获取准确的注册名)。
hexo-blog-encrypt
butterfly主题目录有bug。
安装
npm install --save hexo-blog-encrypt
- 或
yarn add hexo-blog-encrypt
(需要) Yarn)
快速使用
- 将 “password” 字段添加到您文章信息头就像这样.
1 | --- |
- 再使用
hexo clean && hexo g && hexo s
在本地预览加密的文章.
设置优先级
文章信息头 > 按标签加密
高级设置
文章信息头
1 | --- |
_config.yml
示例
1 | # Security |
对博文禁用 Tag 加密
只需要将博文头部的 password
设置为 ""
即可取消 Tag 加密.
Example:
1 | --- |
配置优先级
文章信息头 > _config.yml
(站点根目录下的) > 默认配置
关于 Callback 函数
在部分博客中, 解密后部分元素可能无法正常显示或者表现, 这属于已知问题. 目前的解决办法是通过自行查阅自己的博客中的代码, 了解到在 onload 事件发生时调用了哪些函数, 并将这些函数挑选后写入到博客内容中. 如:
1 | --- |
例子在: Callback 例子.
对 TOC 进行加密
如果你有一篇文章使用了 TOC,你需要修改模板的部分代码。这里用 landscape 作为例子:
- 你可以在 hexo/themes/landscape/layout/_partial/article.ejs 找到 article.ejs。
- 然后找到 <% post.content %> 这段代码,通常在30行左右。
- 使用如下的代码来替代它:
1 | <% if(post.toc == true){ %> |
禁用 Log
If you want to disable the logging, you can add a silent property in _config.yml
and set it to true. 如果你想要禁止使用 Log, 你可以在 _config.yml
中增加一个 silent 属性, 并将其设置为 true.
1 | # Security |
这样就会禁止如 INFO hexo-blog-encrypt: encrypting "{Blog Name}" based on Tag: "EncryptedTag".
的日志.
加密主题
之前, 我们尝试使用 template
关键字来让用户能修改自己的主题. 后来发现真不是一个好主意. 所以我们现在引入了主题: theme
关键字.
你可以简单的使用 theme
在 _config.yml
里或者文章头, 如下:
文章信息头
1 | --- |
在 _config.yml
示例
1 | # Security |