什么是主题?

我们都知道,一个正常的静态网站的基本组成部分有三部分:html文件群,css资源群和javascript文件群。html组成网站的骨架,css规定页面的样式风格,javascript构建页面的各种交互效果与逻辑。他们就像三个兄弟,桃园三结义,方能成就一番大业,此为恒常。

而我们的博客,你的国,也属于网站。但是我们写的文章都是markdown格式的文件,仅仅只是国中的老百姓,本身没什么战斗力,必须要在一个安逸的环境下才能安居乐业。所以没有三兄弟的国是完全招架不住的,更经不起群雄以及他国使者的挑剔眼光。毕竟谁心底里都有一颗壮志雄心,对吧。

于是,三兄弟,构成了主题。

如何使用 or 更换主题

在hexo的官网上,有一个专门的主题页,hexo theme,里面的主题不可谓不琳琅满目。大家可以根据自己的爱好,选择一个对味的。

下面就以个人制作的本主题mellow为例。

安装步骤

  1. 复制主题的仓库地址。进入它的github仓库页mellow,复制https://github.com/codefine/hexo-theme-mellow.git
  2. 下载主题到本地博客目录。在命令行中,进入本地博客目录,然后下载主题。 git clone https://github.com/codefine/hexo-theme-mellow.git themes/mellow 。这条命令的尾部的 themes/mellow 表示主题文件存放的目录。成功之后,在下图中的位置就能找到下载的主题了。
    location

    location

  3. 更换使用的主题。目前我们使用的还是默认的landscape主题,要换成新下载的mellow主题。打开站点配置文件 blog/_config.yml ,找到 theme: landscape ,把landscape换成mellow
  4. 安装依赖。npm install --save hexo-generator-search hexo-generator-topindex hexo-helper-qrcode hexo-renderer-less
  5. 至此,更换主题基本结束。然后运行 hexo clean -> hexo g -> hexo s 就可以预览主题了。

可能会出现的坑

Q : 运行命令的时候报错,或者不报错,但是打开主题后没有样式文件?
A : 出现这个问题大部分情况是因为缺少该主题必要的依赖。这个依赖囊括各种css预处理器以及主题内部某些功能需要的组件,不同主题开发者由于开发习惯以及理念的不同,可能会衍生出各种五花八门的依赖。所以这就需要我们仔细阅读主题文档,把这些依赖都安装好,还有可能需要设置一些东西,才能正常使用。

Q : 主题能正常显示,但是里面的某些功能失效或者报错?
A : 这些主题都是开发者从零开始一点一点写出来的代码集合,出现某些bug再正常不过了,可能开发者并没有发现,这就需要我们使用者来主动联系开发者,帮助完善主题功能,让更多的人更安心的使用。所以遇到这种问题,不要慌,尽情的打小报告就行,哈哈哈。

Q : 主题好是好,但是某些功能我觉得不需要,某些功能我觉得很有必要但是没有?
A : 关于现有功能的增删问题,一般一个结构良好的主题都会在主题配置文件 themes/主题文件包/_config.yml 中留有相应的功能接口,我们只需要改变相应接口的布尔值就能实现功能开启与关闭了,一般true表示开启,而false表示关闭。但是如果咱们需要的功能现有主题并没有,或者主题并没有留下功能开启关闭的接口,这就需要咱们自己看着办了。动手能力强的,可以直接修改源文件,不想自己亲自上阵的那就只能联系开发者了。

Q : 换了主题之后,在部署的时候粗现了Error: ENOENT的错误,并且博客仓库中的主题目录为空,没有部署上去?
A : 这是因为这个主题是从github上直接clone下来的,在主题文件内会默认带有一个 .git 的隐藏目录,这个目录和deploy插件冲突。解决方法也很简单,就是删掉 .git 。用 cd themes/cafe 进入cafe主题中,然后用 rm -rf .git 删除,再用 cd .. 返回到博客目录,重新生成并部署。这样做之后的缺点就是断开了与主题仓库之间的链接,无法使用 git pull 来更新主题,需要手动更新。出现这个错误多半是因为目录中有 .git,全部找到并且删除就行了。

主题推荐

折腾主题的这个阶段几乎是每个人都要经历的,所以上述的很多主题我也都试过,不乏一些空有颜值内在空虚的,要么就是bug层出不穷影响使用了,要么就是作者afk联系不上了。真是没想到你们竟然是这样的主题?!

经过本人海量实践,在此只推荐两个主题:

  1. NexT
    • 优点:从作者专门为文档开发了一整套网站来看,可以说是功能非常健全的主题了,几乎能满足任何hexo使用者的所有需求。
    • 缺点:有点笨重。也不利于二次开发几边缘开发。
  2. Mellow
    • 优点:作者是博主本人!
    • 缺点:过于完美主题还很年轻,还有很长的路要走。

本人制作的主题已经被官方收录,正在完善文档中,也会持续更新,欢迎大家使用,如果能在使用过程中提出一些宝贵的意见那绝对是极好的。如果觉得这小伙子做的主题还不错,请在仓库右上角star一下,以示鼓励。