背景
随着生活不断发生变故,有着想把自己私密隐私写成文字记录下来的想法,这些文字将会包含我最真实丑陋的一面,绝对不想让除了我之外的人看到。
但是Hexo以及Indigo主题并不支持隐藏文章的功能,所以花了几小时查阅资料实现了这个功能。
现记录实现细节如下。
隐藏文章
首先要隐藏指定的文章,通过阅读与实践,最终采用了 为 Hexo 博客添加隐藏文章 / 限定公开功能 这个方案。
与该文作者不同的是,由于我是自用,并不需要做成插件的方式,所以直接修改了plugins.js
文件。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
hexo.extend.filter.register('before_generate', function () { const all_posts = this.locals.get('posts'); const hide_posts = this.locals.get('posts').find({ 'hide': true }); const normal_posts = this.locals.get('posts').filter(post => !post['hide']);
this._bindLocals();
this.locals.set('all_posts', all_posts); this.locals.set('sage_posts', sage_posts); this.locals.set('posts', normal_posts); })
const original_post_generator = hexo.extend.generator.get('post');
hexo.extend.generator.register('post', function (locals) { return original_post_generator.bind(this)({ posts: new locals.posts.constructor( locals.posts.data.concat(locals.sage_posts.data) ) }); });
|
接着只要设置页面的属性hide:true
,就能够保证网站中找不到任何该页面的蛛丝马迹,但是可以直接访问链接(https://vanchchen.github.io/p/7587.html)查阅。
导航页面
文章确实找不到了,虽然能够通过记录下每一个网址链接的方式访问,但是始终不够优雅,能不能像分类一样有一个导航页面呢?
Hexo页面的渲染需要使用模板,直接使用 page category tag
这些模板无法定制化成需要的数据,所以建立一个新的layout模版。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
<%- partial('_partial/header', { title: '里世界', hdClass: 'page-header' }) %>
<div class="container body-wrap fade"> <!-->仿照分类页面的设计,去除了分类头<--> <div class="waterfall"> <!-->获取了之前脚本中设置的隐藏文章表<--> <% site.hide_posts.each(function(post){ %> <%- partial('_partial/archive', {post: post, date_format: config.date_format}) %> <% })%> </div> <%- partial('_partial/paginator') %> </div>
|
接着设置一个新的index页面作为入口。
1 2 3 4
|
layout: hide title: 里世界
|
文章设置是这样的。
1 2 3 4 5 6 7
| --- title: 如何优雅的隐藏 Hexo 博客文章 categories: Hexo abbrlink: '7587' tags: hide: true ---
|
隐藏导航
Indigo主题默认会在帖子页的底部,展示上一个下一个贴的导航。
这会暴露我们隐藏的帖子链接,所以必须要去除。
1 2 3 4
|
# 帖子页面是否展示上一个下一个导航栏 showNav: false
|
1 2 3 4 5 6
|
<% if (theme.showNav == true) { %> <%- partial('post/nav') %> <% } %>
|
总结
通过这两个改动,就可以很方便的隐藏文章,并且通过访问hide路由进入隐藏文章列表页面,从而优雅的解决需求。
最后更新时间:
本文版权归
Vanch所有,欢迎转载,但未经作者同意必须保留此段声明,否则保留追究法律责任的权利。