2024-08-13-Hexo的瓶瓶罐罐
1. 基础介绍
1.1 目录介绍
1 |
|
_config.fluid.yml
: 这是一个配置文件,用于配置Hexo的插件、主题等。_config.yml
: 这是一个配置文件,用于配置Hexo的插件、主题等。db.json
: 这是一个数据库文件,用于存储Hexo的博客数据。package.json
: 这是一个配置文件,存储应用程序的信息。 EJS, Stylus 和 Markdown 渲染引擎 已默认安装,您可以自由移除。 如果您想,可以稍后卸载它们。scaffolds
: 模版 文件夹。 当您新建文章时,Hexo 会根据 scaffold 来创建文件。source
: 资源文件夹。 是存放用户资源的地方。 除 _posts 文件夹之外,开头命名为 _ (下划线)的文件 / 文件夹和隐藏的文件将会被忽略。 Markdown 和 HTML 文件会被解析并放到 public 文件夹,而其他文件会被拷贝过去themes
: 主题文件夹。 Hexo 会根据主题来生成静态页面。
1.2 配置文件
您可以在_config.yml
中修改大部分的配置。
1.3 资源文件夹
1.3.1 全局资源文件夹
资源(Asset)代表source
文件夹中除了文章以外的所有文件,例如图片、CSS、JS 文件等。 比方说,如果你的Hexo项目中只有少量图片,那最简单的方法就是将它们放在 source/images 文件夹中。 然后通过类似于
的方法访问它们。
1.3.2 文章资源文件夹
对于那些想要更有规律地提供图片和其他资源以及想要将他们的资源分布在各个文章上的人来说,Hexo也提供了更组织化的方式来管理资源。 这个稍微有些复杂但是管理资源非常方便的功能可以通过将config.yml
文件中的post_asset_folder
选项设为true
来打开。
1 |
|
当资源文件管理功能打开后,Hexo将会在你每一次通过hexo new [layout] <title>
命令创建新文章时自动创建一个文件夹。 这个资源文件夹将会有与这个文章文件一样的名字。 将所有与你的文章有关的资源放在这个关联文件夹中之后,你可以通过相对路径来引用它们,这样你就得到了一个更简单而且方便得多的工作流。
使用vscode时,为了适配hexo,需要做一些小的配置 参考与vscode的集成
1.3.3 使用 Markdown 嵌入图片
hexo-renderer-marked3.1.0引入了一个新的选项,其允许你无需使用 asset_img 标签插件就可以在 markdown 中嵌入图片
如需启用:
1 |
|
启用后,资源图片将会被自动解析为其对应文章的路径。 例如:image.jpg
位置为/2020/01/02/foo/image.jpg
,这表示它是/2020/01/02/foo/
文章的一张资源图片,
将会被解析为<img src="/2020/01/02/foo/image.jpg">
1.4 数据文件夹
有时,您可能需要在模板中使用一些无法直接在帖子中使用的数据,或者您想在其他地方重复使用这些数据。 对于这种情况,Hexo 3 引入了新的数据文件。 此功能会加载source/_data
内的 YAML 或 JSON 文件,如此一来您便能在网站中复用这些文件了。
举例来说,在source/_data
文件夹中新建menu.yml
文件:
1 |
|
您就能在模板中使用这些数据:
1 |
|
render like this :
1 |
|
1.5 Front-matter
Front-matter 是文件开头的 YAML 或 JSON 代码块,用于配置写作设置。 以 YAML 格式书写时,Front-matter 以三个破折号结束;以 JSON 格式书写时,Front-matter 以三个分号结束。
YAML
1 |
|
JSON
1 |
|
设置 & 默认值
1 |
|
2. 常用功能
2.1 写作
你可以执行下列命令来创建一篇新文章或者新的页面。
1 |
|
post
是默认的布局,但你也可以提供自己的布局。 您可以通过编辑_config.yml
中的default_layout
设置来更改默认布局。
2.1.1 布局(Layout)
Hexo 有三种默认布局:post
、page
和 draft
。通过主题创建的文件保存在不同路径。新创建的文章(posts)会被保存到source/_posts
文件夹中。
2.1.2 草稿
draft
布局用于保存草稿, Drafts 是未发布的文章, Drafts 会被保存到source/_drafts
文件夹中。可以用publish
命令发布草稿到_posts
文件夹中。publish
类似于hexo new
命令,但会自动将草稿移动到_posts
文件夹中。
1 |
|
2.1.3 Scaffold
在新建文章时,Hexo 会根据scaffolds
文件夹内相对应的文件来建立文件。 例如
1 |
|
在执行这行指令时,Hexo 会尝试在scaffolds
文件夹中寻找tech.md
,并根据其内容建立文章。
2.2 与Vscode的集成
使用Vscode时,可直接编辑 markdown文件。为了适配hexo,需要做一些小的配置
- 图片引用:在vscode设置中搜索
markdown
找到Copy Files
的Distination
,
item
设置为*.md
, value
设置为../img/${documentBaseName}/${fileName}
如有更多vscode配置参考glob-patterns
2.3 自定义命令
2.3.1 Hexo 的插件机制
Hexo 本质上是一个基于 Node.js 的静态网站生成器,它的插件机制是围绕 JavaScript 构建的。通过 JavaScript 编写的插件,可以无缝集成到 Hexo 中,利用 Hexo 提供的 API 和功能。这使得插件可以直接与 Hexo 的内部机制交互。
- 访问 Hexo 的配置和上下文:可以轻松访问 Hexo 的配置文件、路径、内容处理器等。
- 利用 Hexo 的 API:如文件生成、路径解析、内容渲染等 API,这些 API 是通过 JavaScript 暴露的。
- 跨平台支持:JavaScript 是跨平台的,Hexo 本身就是用 JavaScript 编写的,因此使用 JavaScript 使插件更容易在各种操作系统上运行。
2.3.2 创建一个自定义命令 hexo nnn
引入依赖
在项目根目录下,修改package.json
文件,添加以下内容:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15{
"scripts": {
"build": "hexo generate",
"clean": "hexo clean",
"nnn": "hexo nnn" // 新增内容
},
"dependencies": {
"aplayer": "^1.10.1",
"hexo": "^6.3.0",
"inquirer": "^8.0.0", // 新增内容
"moment": "^2.29.1" // 新增内容
}
}引入后执行
npm install
命令安装依赖可通
npm config set registry https://mirror.cloud.huawei.com/npm/registry
添加华为云npm镜像
通过npm config get registry
查看当前镜像源创建插件文件
在你的 Hexo 项目根目录下,创建一个名为scripts
的文件夹(如果它不存在的话),然后在scripts
文件夹中创建一个新的JavaScript
文件,nnn.js
1 |
|
配置hexo generate前置操作, 在生成public内容前,完成图片资源路径的替换。以达到本地markdown编辑器预览和Hexo博客上图片均可以显示。
1 |
|
要是Hexo生效,还需修改配置文件_config.yml
,添加以下内容:
1 |
|
- 运行命令
在命令行中,输入hexo nnn
,即可生成一个新的文章,并在生成过程中让用户选择布局和输入文章标题。tips: layout可在
/scaffolds
目录下增加