4 Hexo 目录结构介绍

4 Hexo 目录结构介绍

Hexo 是一个快速、简洁且高效的静态博客框架,它的目录结构对于配置和扩展 Hexo 的功能非常重要。下面我们将详细介绍 Hexo 的主要目录及其功能。

主要目录结构

以下是一个标准的 Hexo 项目的目录结构示例:

1
2
3
4
5
6
7
8
9
10
11
12
my-blog/
├── .deploy_git/
├── _config.yml
├── node_modules/
├── public/
├── scaffold/
├── source/
│ ├── _drafts/
│ ├── _posts/
│ └── about/
├── themes/
└── package.json

1. .deploy_git/

这个目录通常用于存放 Git 的部署文件。如果你使用 Git 进行博客的部署,Hexo 会将构建的静态文件推送到这个目录。

2. _config.yml

_config.yml 是 Hexo 的全局配置文件。在这个文件中,你可以配置网站的基本信息,比如标题、作者、语言等。以下是一个配置示例:

1
2
3
4
5
title: My Hexo Blog
author: My Name
description: This is my personal blog.
language: en
timezone: Asia/Shanghai

3. node_modules/

这个目录包含了项目所依赖的 Node.js 模块。通常,你不需要手动修改这里的内容。可以通过 npm install 命令来安装依赖项。

4. public/

public/ 目录存放 Hexo 生成的静态文件。在你运行 hexo generatehexo g 后,所有的生成文件将会输出到这个目录。你可以将这个目录中的内容部署到你的服务器上。

5. scaffold/

scaffold/ 目录用于自定义文章和页面的模板。Hexo 允许你创建自定义的 scaffold,你可以通过以下命令创建新的 scaffold 示例:

1
hexo scaffold post my-post

这会生成一个新的文章模板,你可以在 scaffold/ 目录下找到对应的模板文件。

6. source/

source/ 目录是 Hexo 的内容源,所有的文章和页面都保存在这里。这个目录主要包括以下几个子目录:

  • _drafts/: 存放草稿文章,未发布。
  • _posts/: 这是你最终发布的所有文章,文件名通常为 YYYY-MM-DD-title.md 格式。
  • about/: 这里可以存放页面,比如关于我的页面,通常是一个 Markdown 文件。

创建文章示例

你可以通过命令行工具快速创建新的博文:

1
hexo new post "My First Post"

这将在 source/_posts/ 目录下生成名为 YYYY-MM-DD-my-first-post.md 的 Markdown 文件。你可以编辑该文件,添加内容和配置,比如:

1
2
3
4
5
6
7
title: My First Post
date: 2023-10-01 12:00:00
tags:
- Hexo
- Blogging
---
这是我的第一篇博文,欢迎阅读!

7. themes/

themes/ 目录用来管理 Hexo 主题。Hexo 支持多种主题,你可以在这里添加、修改或删除主题。使用主题,可以极大地改变你网站的外观和功能。

安装主题示例

例如,如果你要安装 landscape 主题,可以通过以下命令:

1
2
cd themes
git clone https://github.com/hexojs/hexo-theme-landscape.git landscape

然后在 _config.yml 中指定使用的主题:

1
theme: landscape

8. package.json

package.json 文件是 Node.js 项目的配置文件,包含项目的依赖及其他信息。你可以在这里查看 Hexo 所需的 npm 包和版本。

结论

了解 Hexo 的目录结构对有效管理和开发网站至关重要。每个目录和文件都有其特殊的功能,掌握它们可以帮助你更灵活地使用 Hexo 进行博客的开发与维护。使用以上介绍的结构和命令,您可以开始构建和定制您的 Hexo 博客。

创建和管理文章

创建和管理文章

1. Hexo简介

Hexo是一个快速、简洁且高效的静态博客框架。它使用Markdown格式来书写文章,并且支持多种插件和主题。为了更灵活地管理文章,Hexo提供了API,可以帮助用户通过编程方式创建、更新和删除文章。

2. 环境准备

首先,我们需要确保开发环境已经搭建好:

  1. 安装Node.js:Hexo依赖于Node.js来运行。请从Node.js官网下载并安装适合您系统的版本。

  2. 安装Hexo:在您的终端中运行以下命令安装Hexo:

    1
    npm install -g hexo-cli
  3. 创建Hexo项目:运行以下命令创建一个新的Hexo项目:

    1
    2
    3
    hexo init my-blog
    cd my-blog
    npm install

3. 创建文章

3.1 使用Hexo命令创建文章

使用Hexo提供的命令行工具可以快速创建文章:

1
hexo new post "我的第一篇文章"

运行上述命令后,Hexo将在source/_posts目录下创建一个我的第一篇文章.md的文件。

3.2 文章文件结构

生成的Markdown文件通常包含以下结构:

1
2
3
4
5
6
7
---
title: 我的第一篇文章
date: 2023-10-10 10:00:00
tags:
---

这里是文章的正文内容。

4. 管理文章

4.1 查看已创建的文章

source/_posts目录下,您可以看到所有已创建的文章。您可以使用文本编辑器打开这些文件进行编辑。

4.2 修改文章

打开某个文章的Markdown文件,并修改其内容。例如:

1
2
3
4
5
6
7
---
title: 我的第一篇文章
date: 2023-10-10 10:00:00
tags: [Hexo, 开发]
---

这里是更新后的文章内容,可以包含更丰富的Markdown格式。

4.3 删除文章

要删除文章,您可以直接在文件系统中删除对应的Markdown文件。例如,要删除名为我的第一篇文章.md的文件,只需在命令行中执行:

1
rm source/_posts/我的第一篇文章.md

5. 使用Hexo API管理文章

5.1 引入Hexo API

在您的Hexo项目中,我们可以编写自定义脚本来创建、更新和删除文章。以下是一个简单的例子:

1
2
3
4
5
6
7
8
9
10
11
const Hexo = require('hexo');
const path = require('path');
const hexo = new Hexo(path.join(__dirname, 'my-blog'), {silent: true});

hexo.init().then(() => {
return hexo.loadPlugin('hexo-generator-archive');
}).then(() => {
console.log('Hexo插件加载成功');
}).catch(err => {
console.error(err);
});

5.2 创建文章的API示例

要通过API创建文章,可以使用以下示例代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
const fs = require('fs');
const path = require('path');

const createPost = async (title, content) => {
const postContent = `---
title: ${title}
date: ${new Date().toISOString()}
tags: []
---

${content}
`;

const filePath = path.join(hexo.base_dir, 'source/_posts', `${title}.md`);
fs.writeFileSync(filePath, postContent);
console.log(`文章 "${title}" 已创建!`);
};

// 调用创建文章的函数
createPost('我的第二篇文章', '这里是第二篇文章的内容。');

5.3 更新文章的API示例

更新文章可以使用以下代码示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const updatePost = async (title, newContent) => {
const filePath = path.join(hexo.base_dir, 'source/_posts', `${title}.md`);

if (fs.existsSync(filePath)) {
let content = fs.readFileSync(filePath, 'utf-8');
const updatedContent = content.replace(/(---\n[\s\S]*?---\n)/, `$1\n${newContent}\n`);
fs.writeFileSync(filePath, updatedContent);
console.log(`文章 "${title}" 已更新!`);
} else {
console.log(`文章 "${title}" 不存在!`);
}
};

// 更新文章的内容
updatePost('我的第一篇文章', '这是更新后的内容。');

5.4 删除文章的API示例

删除文章的API示例代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
const deletePost = async (title) => {
const filePath = path.join(hexo.base_dir, 'source/_posts', `${title}.md`);

if (fs.existsSync(filePath)) {
fs.unlinkSync(filePath);
console.log(`文章 "${title}" 已删除!`);
} else {
console.log(`文章 "${title}" 不存在!`);
}
};

// 删除文章示例
deletePost('我的第一篇文章');

6. 总结

本节介绍了如何使用Hexo创建和管理文章,包括命令行创建、手动管理Markdown文件,以及通过Hexo API进行操作。您可以灵活使用这些方法来适应自己的需求。

通过以上步骤,您应该能够轻松地创建和管理Hexo博客中的文章了。如果您希望进一步了解Hexo的其他功能,可以继续深入探索其文档和社区资源。

6 从零学习 Hexo API 开发网站教程

6 从零学习 Hexo API 开发网站教程

在本教程中,我们将详细介绍如何使用 Hexo 的 API 来开发您的网站,并尽可能提供实例和代码示例。

1. 什么是 Hexo?

Hexo 是一个快速、简洁且高效的博客框架,它使用 Markdown 来撰写文章,支持主题和插件扩展,使得开发者能够快速搭建个人网站或博客。

2. 环境准备

2.1 安装 Node.js

Hexo 依赖于 Node.js,因此首先需要在您的计算机上安装 Node.js。请访问 Node.js 官网 下载并安装最新版本。

2.2 安装 Hexo

通过命令行工具安装 Hexo:

1
npm install hexo-cli -g

这会全局安装 hexo-cli 命令行工具,您将使用它来创建和管理 Hexo 博客。

2.3 创建 Hexo 项目

在您希望存放 Hexo 项目的文件夹中,运行以下命令:

1
2
3
hexo init my-blog
cd my-blog
npm install

这将创建一个名为 my-blog 的 Hexo 项目,并安装所需的依赖。

3. Hexo 的基本结构

Hexo 项目有几个重要的文件夹和文件:

  • source/:存放您的文章、页面等内容。文章使用 .md.markdown 格式编写。
  • public/:生成的静态文件会存放在这个文件夹中。
  • themes/:存放主题文件的目录,可以在这里更换或自定义主题。
  • _config.yml:Hexo 的配置文件。

4. 创建和管理文章

通过以下命令创建新的文章:

1
hexo new post "文章标题"

生成的文章将位于 source/_posts/ 目录下,您可以使用 Markdown 格式进行编辑。

4.1 Markdown 示例

下面是一个简单的 Markdown 内容示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
---
title: 我的第一篇文章
date: 2023-10-01 10:00:00
tags:
- Hexo
- 学习
---

# 你好,Hexo!

这里是我的第一篇文章,欢迎阅读!

## 使用 Hexo

使用 Hexo 是一件非常简单的事情,您只需要按照下面的步骤操作:

1. 安装 Node.js
2. 安装 Hexo
3. 创建 Hexo 项目
4. 创建您的第一篇文章!

5. Hexo API 开发

Hexo 提供了强大的 API,允许开发者创建插件或自定义功能。以下是一些常用的 API。

5.1 注册插件

要创建一个 Hexo 插件,您可以在项目根目录下创建一个 scripts/ 文件夹,并在其中放入 .js 文件。

示例:Hello World 插件

scripts/hello.js 中编写以下代码:

1
2
3
hexo.extend.console.register('hello', '输出 Hello World', () => {
console.log('Hello World');
});

通过在命令行运行以下命令,可以查看效果:

1
hexo hello

5.2 使用 Hexo 实例

Hexo 提供了一些实例对象,如 hexo 实例,您可以使用它来访问各种函数与属性。

示例:获取所有文章

以下代码在 scripts/get-posts.js 中列出所有文章标题:

1
2
3
4
5
6
hexo.extend.console.register('list-posts', '列出所有文章', function() {
const posts = hexo.model('Post').find({});
posts.forEach(post => {
console.log(post.title);
});
});

通过运行命令查看文章标题:

1
hexo list-posts

6. 部署博客

Hexo 支持多种部署方式。您可以使用 Hexo 内置的 hexo deploy 命令将博客部署到 GitHub Pages。

6.1 配置 _config.yml

_config.yml 文件中配置部署信息,例如:

1
2
3
4
deploy:
type: git
repo: https://github.com/用户名/仓库名.git
branch: main

6.2 执行部署

执行以下命令以生成静态文件并部署到远程仓库:

1
2
3
hexo clean
hexo generate
hexo deploy

7. 总结

通过本教程,我们学习了如何从零开始搭建一个 Hexo 博客,并使用 Hexo 的 API 创建简单的插件。Hexo 是一个强大的工具,能够帮助您快速建立和管理网站。希望您能在实践中不断探索更多的功能和可能性!