基于hexo的个人技术博客搭建 —— Part 3 matery主题下的Hexo博客优化.md


hexo本身只是提供了一个博客的框架,博客网站的美化和优化还是需要靠自己配置主题。本文讲解如何利用Matery主题对Hexo搭建的博客进行深度优化

最终效果展示图

基于Hexo的个人技术博客搭建 —— Part 3 matery主题下的Hexo博客优化

在前面的一章中,我们已经通过hexo在本地搭建出了一个博客。但是目前,这个博客还存在一些问题

  1. 目前博客网站运行在本地,所以只有我们自己能看到
  2. Hexo默认的博客不够美观、功能不够多

针对上面两个我们,本章和下一章就将进行解决。本章首先解决第二个问题,即优化Hexo博客。

1. 为什么使用其他的Hexo主题?

在前面一章中我们讲过,Hexo主题的工作原理其实就是Hexo的主题里面写的JavaScriptCSS覆盖掉了hexoJavaScriptCSS。而CSS决定了Hexo博客的外观,因此是否美观实际上取决于主题里的CSS。同样JavaScript决定了网页和我们的交互,因此网页的功能如何实际上也取决与我们的主题。因此,一个优秀的主题是有一个完美的Hexo博客的先决条件。有了一个优秀的主题,我们的博客不仅更加美观,功能也会更加强大。

因此我们对Hexo博客进行优化,实际上就是使用其他主题,并对这些主题进行配置、

后面,就将以Hexomatery主题为例,进行优化

2. 基于Matery主题的Hexo博客优化

Matery主题是由国内的闪烁之狐(blinkfox)制作的一款美观的主题,包括我在写这篇博客时候我的博客所用的主题就是Matery

之所以使用Matery主题,美观只是一个方面,更重要的是Matery以插件的形式提供了非常多优秀的程序,通过这些程序使得我们能够极大地优化我们的网站。

访问闪烁之狐的Hexo博客和他的Matery主题的Github查看更多的信息

闪烁之狐的Matery主题示例

接下来我们就将基于Matery主题来对我们的Hexo博客进行优化

注意,下面的很多教程在MateryGithub上已经有介绍了,因此下面的介绍更多的是关注Matery Github上没有讲到的点

1. 安装Matery

MateryGithub中的中文说明已经讲过了,在Hexo博客文件夹下的theme文件夹cloneMatery项目即可

(base) jack@jack-Alienware-m15-R3:~/project/blog-test$ cd themes/
(base) jack@jack-Alienware-m15-R3:~/project/blog-test/themes$ git clone https://github.com/blinkfox/hexo-theme-matery.git

安装完成之后,我们hexo博客看看效果

(base) jack@jack-Alienware-m15-R3:~/project/blog-test/themes$ cd ..
(base) jack@jack-Alienware-m15-R3:~/project/blog-test$ hexo s

发现和之前的博客并没有任何变化,这是因为我们需要在Hexo的配置文件中指定使用Matery主题

博客没有任何变化

2. 切换Matery主题

vim修改hexo博客根目录下的_config.yml,将theme的值改为 hexo-theme-matery,这样就启用了Matery主题

修改之后的值

接下来运行一下博客,就能够看到效果了

(base) jack@jack-Alienware-m15-R3:~/project/blog-test$ hexo s

可以看到,默认配置就已经非常漂亮了

Matery主题的首页

Matery主题的底部

但是这个默认的主题也有一些小问题,需要我们去修改,比如说网站的左上角的logo,中间浮动打印的语句,中间的github链接需要修改成我们自己的,我的梦想栏的语句需要修改成自己的,右下角的联系方式需要改成我们自己的……

除了这些个人信息配置以外,还有最关键的一点就是右上角选项卡除了首页以外,其他的点击都会直接没有对应的界面显示。这是因为Matery默认没有这些界面,需要我们自己配置

点击后显示错误

3. 添加缺失的页面

在前面的一章中,我们讲到hexo中一篇博客的源文件是一个.md文件,通过使用hexo generta命令,hexo自动的为我们的博文生成一个网页以及对应的资源文件。而其实在hexo,中一个页面对应的也是一个.md文件,同样我们稍后使用hexo generta来生成新的页面。只不过页面对应的.md文件会和博客的.md存在一些不同

下面就将以添加关于界面为例,讲解Hexo的页面工作原理的同时带领读者配置Matery的页面

A. 添加关于About页面

我们首先在根目录下使用hexo new page xxx命令来生成一个新的页面。同样为了后续的讲解,我们首先保存下现在的目录结构

(base) jack@jack-Alienware-m15-R3:~/project/blog-test$ touch before_about.txt
(base) jack@jack-Alienware-m15-R3:~/project/blog-test$ touch after_about.txt
(base) jack@jack-Alienware-m15-R3:~/project/blog-test$ tree >> before_about.txt 
(base) jack@jack-Alienware-m15-R3:~/project/blog-test$ hexo new page "about"

接下来我们需要修改刚刚新生成的.md来说明这个是一个页面而非博客,这样稍后生成博客的时候就会生成出来一个新的页面

(base) jack@jack-Alienware-m15-R3:~/project/blog-test$ vim source/about/index.md

index.md修改为如下内容,当然日期可以按照你自己的来

---
title: about
date: 2021-11-15 01:37:51
type: "about"
layout: "about"
---

修改后的index.md

接下来我们生成一下添加后的博客,别忘了生成之前clean一下,清除掉之前的博客。同时下面由于要讲解原理,因此生成后我们输出一下生成之后的目录结构

(base) jack@jack-Alienware-m15-R3:~/project/blog-test$ hexo clean
(base) jack@jack-Alienware-m15-R3:~/project/blog-test$ hexo gen
(base) jack@jack-Alienware-m15-R3:~/project/blog-test$ tree >> after_about.txt

然后我们运行下博客看看效果

可以看到,此时点击关于就可以正常显示处页面了,底部则显示出我们的制作的项目

正常显示的关于页面

关于页面的底部

当然,这些信息都是默认的信息,我们稍后是肯定需要修改成我们自己的。不过在这之前,先别着急,我们先了解一下hexo是怎么样新生成一个页面的

B. Hexo是怎么样生成新的页面的?

我们利用上面两次输出的目录结构,来看看添加、生成页面之后博客目录结构的变化

(base) jack@jack-Alienware-m15-R3:~/project/blog-test$ vim -d before_about.txt after_about.txt

首先是发布的博客的public文件夹下多了非常多的东西。除了我们之前添加的第一篇博客外,还多出了aboutcssjs等一些文件夹

Public文件夹的变化

此外,我们的源代码文件夹中也多了about文件夹和在其下面的index.md

source文件夹下的不同

实际上到这里你应该能够猜出来了,hexomatery生成新的页面的工作原理就是:

  • 首先hexo认为source文件夹下的一个文件夹就是一个页面,这个页面必须要有一个index.md来说明这个页面的信息,例如上面指定生成页面使用的模板
  • 其次,matery在生成项目的时候,会在public下生成新的网站的配置文件来修改默认的页面。因此我们的确可以修改这个public下面的matery生成的资源文件。但是并不推荐这样做,因为所有的修改在后续generate之后就会丢失。与此相比,下面会介绍更好的修改、配置matery主题的方式

最后,我们依照Matery Github链接)中的README的指引,如法炮制添加剩下的所有页面。

完成了之后,你可以尽情的探索一下新得到的页面。

4. 配置Matery主题

上面我们通过简单的Matery主题的配置得到了一些界面,下面我们就将进一步配置Matery主题。

授人以鱼不如授人以渔,因此下面我会首先讲解Matery主题的配置是如何工作的而非单纯的罗列,在讲解完原理之后会留下我参考过的不错的链接,读者可以去里面根据自己的需求配置。

下面将以安装文章字数插件为例进行讲解。

A. 文章字数统计

细心地读者已经发现,在我们上面的博客底部其实是没有文章字数统计的,而闪烁之狐的实例网页中却具有文章字数统计。

我们的界面

闪烁之狐的网站

实际上,这个功能是依靠第三方插件+Matery配置完成的。我们首先下载这个插件,不过注意,我们在前面安装了cnpm,因此使用cnpm安装即可

(base) jack@jack-Alienware-m15-R3:~/project/blog-test$ cnpm i --save hexo-wordcount

安装完成之后,我们还要修改theme文件夹下Matery主题的配置文件来激活插件,注意是Matey主题的配置文件。因为页面的样式信息都是Matery负责的。

(base) jack@jack-Alienware-m15-R3:~/project/blog-test$ vim themes/hexo-theme-matery/_config.yml

修改为

postInfo:
  date: true
  update: false
  wordCount: true # 设置文章字数统计为 true.
  totalCount: true # 设置站点文章总字数统计为 true.
  min2read: true # 阅读时长.
  readCount: true # 阅读次数.

修改后的_config.yml

然后我们同样clean之后generate看看效果

可以看到,已经出现统计信息了

底部具有了统计信息

B. Matery的配置是如何工作的?

事实上,Matery主题依靠其主题文件夹下的_config.yml来进行配置。这个文件中提供了诸如:网站上方选项卡的选项、个人信息、头像、logo等资源文件位置这类的配置,还有是否激活xx插件、xx效果等配置。因此我们通过Matery_config.yml来进行配置。

在我们配置完了之后,在generate的过程中,matery就会根据我们的配置来生成对应的文件。可以说是非常方便。

例如我们修改在关于页面中显示的个人信息

修改个人信息

同样,我们修改之后clean、gen、server来看看效果

可以看到,相关信息已经被修改了,不过由于我没有改头像,因此头像没有变

修改后的效果

此外,由于闪烁之狐大佬良好的代码风格,因此在Matery的配置文件夹下,几乎可以看到所有的配置以及修改方式~。大家可以多试试

此外,推荐一个我参考过的博客,他也是基于Matery进行了配置和优化,并且自己改了一些JavaScript,以实现更好的效果,零下三度的极寒的博客

最后,本章到了这里就结束了。在本章我们首先讲解了为什么要使用第三方的Hexo主题,以及为什么使用Matery主题。接下来我们结合两个案例讲解了如何对Matery主题进行配置并解释了Matery配置的工作原理,在明白工作原理之后,大家去修改自己的博客网站就会得心应手很多。最后我们提供了其他的参考链接来帮助大家配置自己的博客网站。

在下一章中,我们将讲解如何低成本的把自己的博客部署到公网上去,使得所有人都能够访问你的博客。

码字不易,3100字,欢迎打赏~,一起推动开源事业~


文章作者: Jack Wang
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Jack Wang !
 上一篇
ROS杂篇 ROS中使用Kinect V2 Part1:安装+使用 ROS杂篇 ROS中使用Kinect V2 Part1:安装+使用
Kinect是非常流行的获取深度、彩色、点云的相机。本文介绍了Kinect相机的具体性能,以及如何在ROS调用Kinect相机。
2021-11-18
下一篇 
基于Hexo的个人技术博客搭建 —— Part 2 Hexo快速建站以网站基础信息配置 基于Hexo的个人技术博客搭建 —— Part 2 Hexo快速建站以网站基础信息配置
本文首先讲解如何使用Hexo快速搭建出一个博客网站,接下来对`Hexo`搭建的博客网站进行介绍,最后对Hexo搭建的博客网站进行网站基础信息的设置。
  目录