hexo博客搭建基础概念

hexo博客搭建基础概念

Aron Lv3

之所以搭建这个博客,起初当然是因为写一些技术文章,方便自己以后查阅。这个博客从搭建到现在已经快10年了,很多文章的字里行间其实能看出来当时的稚气,但无论如何,那是我人生的一部分,也是我的成长史。
很多事情,很多技术,自己钻研过,后面用不到了慢慢就淡忘了。总结成文字,省得以后自己再在同样的事情上浪费时间。

hexo博客基础概念

首先,hexo是个静态博客,部署后你能看到的所有东西基本都是由source文件夹内的markdown文件生成的。没有什么魔法,所谓所见即所得。

术语解释

页面(page)

它是你这个博客网站的一个子级域名。
你可以通过hexo new page xxx得到一个叫做xxx的页面,则此时你的网站多了个/xxx的子域名。/xxx/index.md是这个页面的入口文件,相当于index.html。此时你也可以在该目录下创建多个子页面,比如/xxx/xxx.md
所以说其实hexo不只是能用来做博客,凡是静态网站,只要你能找到合适的模板,它都能胜任。

草稿(draft)

source/_draft/目录下的所有文件都是草稿。
你可以通过hexo new draft xxx得到一篇草稿文件。草稿文件不会被发布到网站上,写完了之后,你可以通过hexo publish xxx将草稿文件发布到网站上。

文章(post)

source/_posts/目录下的所有文件都是你博客的文章。
你可以通过hexo new post xxx得到一篇文章文件。文章文件会被发布到网站上。

Front-matter

Front-matter是文章的头部信息,可以用YAML或者JSON来编写。就这个博客来说,Front-matter就是每个文章顶部的---之间的内容。
它用一堆字段描述了文章的基本信息,比如标题、作者、时间、标签、分类等等。具体可以看Front-matter的官方文档介绍
一般来说它长这个样子:

1
2
3
4
---
title: 博客或者页面标题
date: 2013/7/13 20:46:25
---

一些主题往往也需要在Front-matter中添加一些字段,比如你新建了一个分类页面,你需要在Front-matter中告诉hexo和主题,这个页面是一个分类页面,我需要把主题中的分类页面,使用当前markdown文件渲染出来,简单来说,就是建立一个关联性。比如你有source/categories/index.md长这样:

1
template: categories

这段Front-matter告诉hexo,这是一个分类页面,hexo渲染这个页面的时候,会使用主题中的分类页面的样式来渲染。

目录结构

1
2
3
4
5
6
7
8
9
10
- _config.yml # 网站配置文件,这个是hexo的核心配置文件,里面配置了很多网站的基本信息,比如网站的标题、作者、语言、时间格式等等。
- package.json # 项目配置文件,一般来说你安装了字数统计,或者网站搜索,CDN加速等插件的时候需要用到它。
- source # 源文件目录,这里面存放的全是博客的数据来源,包括图片、页面、文章等等。
- _data # 数据目录,这里面存放的主题所需要的资源文件,比如友情链接,相册数据等等。
- _drafts # 草稿目录,没写完的文章放到这里,不会被发布到网站上。
- _posts # 文章目录,这里面存放的是所有的博客文章。
- categories
- links
- tags
- about # 以上这几个目录都是「页面」。是通过`hexo new page xxx`创建的。每个都对应着一个子域名。

主题

hexo博客离不开主题,以前我用matery主题用来好久,可是它现在不维护了,时间长了也看腻了,所以我选择了这个Redefine主题。
理论上来说,hexo本身负责基本博客架构,负责基本的写作,所有的页面渲染部分由对应的主题来完成。
themes/目录下的所有文件夹都是主题。下载了主题后,你在_config.yml中添加theme: 主题名字即可使用该主题。从设计上来说是可以达到无缝切换主题的,然而,请往下看:

不同的主题之间并不完全兼容!具体怎么个事,继续往下看

matery主题配置友情链接的方式是在_data目录下创建friends.json,而Redefine,也就是本博客(截至2025年)目前的主题,是在_data目录下创建links.yml
前者给page页面指定模板的方式是在Front-matter使用layout字段,后者是用template字段。
前者配置文章简介的Front-matter的字段是description,而后者沿用了hexo官方的方案,excerpt字段。
前者支持在Front-matter里面添加keywords字段,用于SEO优化,后者不支持。

不过Redefine主题解决了matery主题的一个问题,就是它把主题的配置文件放在了博客的根目录,叫做_config.redefine.yml,这样的话避免了每次更新主题的时候产生冲突,可以很方便的更新主题。

总结

博客的实现方式有很多种,不过静态博客还需要什么骚操作吗?hexo不就挺好的吗?省下来时间都用来其他事情上不香吗?
大概就是这么些知识点,想到什么再写什么吧,拜拜👋🏻。

  • 标题: hexo博客搭建基础概念
  • 作者: Aron
  • 创建于 : 2025-03-07 16:12:28
  • 更新于 : 2025-10-14 09:29:25
  • 链接: https://likeso.github.io/2025/03/07/hexo-blog-explain/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论