给博客新增文章主页隐藏功能 hideFromHome
521 字
3 分钟
给博客新增文章主页隐藏功能 hideFromHome
博客里写了一些 AI 生成的内容或者记录向的文章,数量多了之后主页会很难看,低质量东西,但是又想记录一下。
如果直接设置成 draft: true,虽然主页没了,但是会彻底隐藏,分类页和归档页也完全找不到了。想要的效果是:主页和 RSS 订阅里不显示,但是在点击分类(例如 AIGC)或者归档里筛选时依然可以看到。
加了个 hideFromHome 属性。
一、 修改 Content Schema
在 src/content.config.ts 的 postsCollection 里面加上这个新字段:
const postsCollection = defineCollection({ ... schema: z.object({ ... comment: z.boolean().optional().default(true), password: z.string().optional().default(""), hideFromHome: z.boolean().optional().default(false), // 新增此项 }),});默认设为 false,这样不加这个字段的老文章不会受任何影响。
二、 首页与 RSS 过滤
接下来只需要在主页分页和 RSS 处把带有 hideFromHome: true 的文章过滤掉即可。
1. 主页分页 (src/pages/[...page].astro)
export const getStaticPaths = (async ({ paginate }) => { const allBlogPosts = (await getSortedPosts()).filter( (post) => !post.data.hideFromHome, ); const pageSize = siteConfig.pagination.postsPerPage; return paginate(allBlogPosts, { pageSize });}) satisfies GetStaticPaths;2. RSS 订阅 (src/pages/rss.xml.ts 与 src/pages/rss.astro)
const blog = (await getSortedPosts()).filter( (post) => !post.data.hideFromHome,);三、 归档页与分类联动
归档页(src/components/controls/ArchivePanel.astro)的情况稍微特殊一点:
- 默认无筛选状态下:希望隐藏这些文章,同时不计入年份统计数(如果某一年全部是隐藏文章,默认将整年折叠块隐藏)。
- 选中分类或标签时:比如点击
AIGC分类进入/archive/?category=AIGC时,客户端脚本会自动取消hidden属性,把隐藏的文章展示出来并重新计算数量。
修改 HTML 渲染部分:
<a href={getPostUrlBySlug(post.id)} class="archive-post ..." data-tags={JSON.stringify(post.data.tags || [])} data-category={post.data.category || ""} data-hide-from-home={post.data.hideFromHome ? "true" : "false"} hidden={post.data.hideFromHome}>这样原本没选分类时它默认带有 hidden 属性,一旦点击分类,原本的 JS 筛选逻辑就会动态把符合条件的文章解除隐藏,不需要写额外的复杂逻辑。
使用方法
以后如果有不想在首页展示的文章,直接在 Markdown 的 Frontmatter 里加上一行:
---title: "唱跳rap篮球"category: "AIGC"hideFromHome: true---支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!
给博客新增文章主页隐藏功能 hideFromHome
https://hodaru.com/posts/firefly/2026-07-21-hide-from-home-feature/相关文章智能推荐
1
折腾Firefly的经历
Firefly记录折腾CuteLeaf/Firefly的经历
2
TV动画《我心里危险的东西》官网开屏动画复刻
Web深入解析并复刻 TV 动画《我心里危险的东西》(bokuyaba-anime.com)官网标志性的分层组装开屏动画,涵盖 9 图层形变归位、贝塞尔曲线缓动、加载圈动画与两阶段状态机控制。
3
周边效果交互预览: 3D光栅卡与透光藏图卡
ACGN3D实体光栅卡及物理透光藏图卡的物理光影效果交互预览
4
一些周边定制以及价格等
Goods想定制一些周边,一些想法以及价格等等
随机文章随机推荐




















































































