1、期望目标

  • 实现部分文件在首页隐藏,但是通过链接能访问
  • 实现多国语言首页

2、计划思考

首先是通过搜索引擎去查找,看看有什么方案,目前看起来都比较难,没有现成的方案,官方文档很少。下面记录几个主要步骤

3、操作步骤

3.1、什么是静态博客

简单来说,一般认为,数据存在数据库中,展示可以很丰富,这在企业领域,在各大系统中都是很常见的,为什么后来发展出静态博客,很有可能是因为传统的模式,需要数据库,需要服务器,需要各类信息。但是对于个人博客,数据量没有那么大,完全可以把 html 内容都生成好,到时候对服务器的依赖就小了很多,这也就是静态博客的由来,html 是生成后的,也就是静态的,访问的时候就直接访问了。

显然它也有自己的局限性,各类服务都很难加了,类似计数,评论之类的,都有赖于其他的方式来处理。

静态博客有很多实现思路,有很多技术栈,也就有了很多静态博客的解决方案,比如 jekyll,hexo,hugo 等等。这里介绍Hexo

3.2、Hexo 和 butterfly 什么关系

Hexo 是基于 Nodejs 的一个静态博客方案,提供了丰富的插件功能,是非常开放的平台,我们知道,博客的门面,也就是展示效果是很重要,也很个性化的,基于此,它在很多环节提供了入口。这里就要提到 theme,也就是主题风格的概念,每个人有自己的想法和审美。它们在 hexo 生成 html 页面的过程中深度参与进来。

butterfly 是其中的佼佼者。也是本博客采用的方案。

3.3、Hexo 的工作原理和 butterfly 什么时候介入

hexo 简单来说,就是把一对 md 文件,转换成 html 文件,中间有超链接对应,为了便于理解,下面是梳理的一个对应关系,我们来看一下

从这里我们可以了解到,hexo 有一个固定的流程,处理文件,转换,渲染等待,在每个环节都能介入进来。

3.4、哪些组件是有用的

多语言会自动引用 butterfly 目录下的 languages,有多国语言的处理模板,因为它还是从 butterflay 来的,

hexo 启动的时候,会先去扫描插件,其中有一个目录是 scripts,它会自动去扫描所有的文件,在合适的时机加载。

关于 Hexo 的官方文档很少,从 api 文档里面看,大概有这样几个环节,比如控制台,捕鼠器,过滤器,生成器,辅助函数,住如期,处理器,渲染引擎和标签等等。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
if (gconfig) {

if (!Array.isArray(gconfig)) {

gconfig = [gconfig];

}

config.generator = gconfig;



gconfig.forEach(function(item) {

hexo.extend.generator.register(`${item}_generator`, generator[`${item}_generator`]);

});

}

4、总结

我们调整的时候,尽量通过插件来做,不去修改原始的文件内容

Hexo. Extend. Filter

5、异常记录

如果有兴趣深入了解,留言继续完善