「这是我参与2022首次更文挑战的第5天,活动详情查看:2022首次更文挑战」
前言
博客构建初衷是作为个人知识库整理,构建一个能够及时进行复盘、归纳总结的个人空间,但考虑到部分文章内容是日常学习碎碎念和BUG收录合集概念,希望某些文章内容可以自定义隐藏,参考了许多方式构建,总结如下内容所示(下述内容是基于hexo、butterfly主题进行构建,其余主题配置可相应参考思路获取相应的解决方案)
文章隐藏思路
<1>"草稿箱"概念(将文章移动到草稿箱)
<2>首页文章渲染结合文章front-matter页面属性联动控制
方式1:“草稿箱”概念
针对一些编辑好的文章,则可将其移动到草稿箱目录即可,对应文章目录说明如下。(在创建文章的时候亦可通过指定[layout]从而构建相应的内容)
Hexo 有三种默认布局:post、page 和 draft。在创建者三种不同类型的文件时,它们将会被保存到不同的路径;而自定义的其他布局和 post 相同,都将储存到 source/_posts 文件夹。如果不想文章被处理,可将 Front-Matter 中的layout: 设为 false
| 布局 | 路径 |
|---|---|
post | source/_posts |
page | source |
draft | source/_drafts |
| 自定义布局 | source/_posts:与_posts文件夹相同 |
# 方式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:通过修改主配置文件,强制预览草稿
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的配置
mixin postUI(posts)
each article , index in page.posts.data
if article.isHide !== true
.recent-post-item
页面属性配置
# 在需要隐藏的文章的front-matter处添加指定配置
---
... 文章front-matter属性配置 ....
isHide: true # true 隐藏
---
基于这种方式构建文章隐藏,但只是在首页展示处隐藏文章内容,实际文章还是会通过渲染生成,并且可通过url直接访问(/post/固定链接),基于这种概念可以参考“草稿”的方式为这些需要隐藏的文章构建自定义分类,通过自定义页面配置相应导航进行配置,或者借助其他的配置进行访问限制。