更新记录

更新记录

2021-01-29

文章隐藏:草稿箱、自定义配置

hexo-butterfly-文章隐藏

​ 博客构建初衷是作为个人知识库整理,构建一个能够及时进行复盘、归纳总结的个人空间,但考虑到部分文章内容是日常学习碎碎念和BUG收录合集概念,希望某些文章内容可以自定义隐藏,参考了许多方式构建,总结如下内容所示(下述内容是基于hexo、butterfly主题进行构建,其余主题配置可相应参考思路获取相应的解决方案)

文章隐藏思路

<1>“草稿箱”概念(将文章移动到草稿箱)

<2>首页文章渲染结合文章front-matter页面属性联动控制

方式1:“草稿箱”概念

​ 针对一些编辑好的文章,则可将其移动到草稿箱目录即可,对应文章目录说明如下。(在创建文章的时候亦可通过指定[layout]从而构建相应的内容)

​ Hexo 有三种默认布局:postpagedraft。在创建者三种不同类型的文件时,它们将会被保存到不同的路径;而自定义的其他布局和 post 相同,都将储存到 source/_posts 文件夹。如果不想文章被处理,可将 Front-Matter 中的layout: 设为 false

布局 路径
post source/_posts
page source
draft source/_drafts
自定义布局 source/_posts:与_posts文件夹相同
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 方式1:指令控制-创建指定草稿文件
# 文章生成目录:source/_drafts目录
hexo new draft <filename>

# 文章生成目录:source/_posts目录,文章页面属性front-matter中layout指定为drafts
hexo new drafts <filename>

# 方式2:手动调整
# 思路a.对应source/_drafts目录下存储的是草稿信息,只需将需要隐藏文件移动至指定的文件夹即可
# 思路b.通过front-matter指定layout属性为drafts
front-matter配置文件页面属性layout实现配置
---
layout: drafts
---

预览草稿内容

1
2
3
4
5
# 方式1:通过修改主配置文件,强制预览草稿
render_drafts: false # true 草稿预览配置

# 方式2:通过下述方式启动服务可预览草稿
hexo server --drafts

方式2:自定义属性配置

​ 基于butterfly主题的hexo博客隐藏,此处借助设定页面属性和修改主题插件配置结合调整(不同主题调整的插件配置不同,但原理可以理解为修改post展示的规则,隐藏配置的隐藏文章)

调整步骤

<1>修改主题资源themes/butterfly/layout/includes/mixins/post-ui.pug,过滤指定配置文章内容

<2>在需要隐藏的文章页面中设置页面属性

参考示例

post-ui.pug修改

​ 在开头处.recent-post-item语句前面添加if article.isHide !== true语句,后续所有语句都以tab缩进一格。isHide属性用于标识当文章的isHide属性为true的时候则不渲染文章内容(即不展示在recent-post-item指定的区域),其构建思路类似drafts的配置

1
2
3
4
mixin postUI(posts)
each article , index in page.posts.data
if article.isHide !== true
.recent-post-item
页面属性配置
1
2
3
4
5
# 在需要隐藏的文章的front-matter处添加指定配置
---
... 文章front-matter属性配置 ....
isHide: true # true 隐藏
---

​ 基于这种方式构建文章隐藏,但只是在首页展示处隐藏文章内容,实际文章还是会通过渲染生成,并且可通过url直接访问(/post/固定链接),基于这种概念可以参考“草稿”的方式为这些需要隐藏的文章构建自定义分类,通过自定义页面配置相应导航进行配置,或者借助其他的配置进行访问限制。