特别鸣谢 ChatGPT 😂😂😂

开发一个 Hexo 的 npm 插件通常涉及以下几个步骤。以下是一个简要的指南,帮助你在本地开始开发:

1. 设置开发环境

首先,你需要确保你的系统已经安装了 Node.js 和 npm。你可以通过以下命令检查是否已安装:

1
2
node -v
npm -v

如果没有安装,请前往 Node.js 官网 下载并安装。

2. 创建插件项目

在你的工作目录中,创建一个新的文件夹用于存放插件代码:

1
2
mkdir hexo-plugin-example
cd hexo-plugin-example

然后,初始化一个新的 npm 项目:

1
npm init

按照提示填写信息,或者直接使用 -y 选项自动生成 package.json 文件。

3. 定义 Hexo 插件结构

在 Hexo 插件中,通常需要在根目录下创建以下文件和文件夹:

1
2
3
4
5
.
├── index.js            # 入口文件
├── package.json        # npm 配置文件
└── lib                 # 插件的核心代码
    └── example.js      # 插件功能代码

3.1 创建 index.js

index.js 是 Hexo 插件的入口文件,用于注册插件功能。创建 index.js 并添加以下内容:

1
2
3
4
5
hexo.extend.filter.register('before_post_render', function(data) {
  // 在这里编写你的插件逻辑
  console.log('Processing post:', data.title);
  return data;
});

这个例子展示了一个简单的过滤器插件,它会在 Hexo 处理博客文章之前打印文章的标题。

3.2 创建 lib 文件夹

如果你的插件功能复杂,建议将核心逻辑放在 lib 文件夹中,以保持代码的组织性。例如,在 lib/example.js 中编写你的插件功能,然后在 index.js 中引入它。

1
2
3
4
5
6
// lib/example.js
module.exports = function(data) {
  console.log('Custom logic for:', data.title);
  // 自定义处理逻辑
  return data;
};

index.js 中引用它:

1
2
3
const example = require('./lib/example');

hexo.extend.filter.register('before_post_render', example);

4. 本地测试

为了测试你的插件,可以在本地创建一个 Hexo 博客,并将插件链接到这个博客项目中。

首先,创建一个 Hexo 项目(如果你还没有):

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

然后,在 Hexo 项目中安装你正在开发的插件:

1
npm link ../hexo-plugin-example

这样就将你的插件链接到 Hexo 项目中了。

除此之外,还要在 package.json 中加入依赖包,不然 hexo 死活识别不到该插件,ChatGPT 没有提到这一项,我在此卡住许久,差点怀疑人生。

现在,你可以通过运行 hexo 命令来测试插件的功能:

1
2
hexo clean
hexo generate

观察控制台输出,验证插件是否按照预期工作。

5. 发布插件

当插件开发完成并测试成功后,你可以将其发布到 npm 上。

首先,登录到 npm:

1
npm login
此处是另外一个需要注意的地方,如果之前设置了 npm 镜像路径,则此时 login 会将请求发往镜像地址,此处建议参照 使用 nrm 管理 npm 的镜像地址 更换回官方源后重新登录。另外,可能需要科学上网。

然后,在插件项目目录中运行:

1
npm publish

这会将你的插件发布到 npm 上,其他用户可以通过 npm install 命令来安装并使用它。

6. 更新插件

如果你需要更新插件,可以修改代码后,增加版本号(在 package.json 中),然后运行:

1
2
3
4
5
6
7
8
# 1.1.0 -> 1.1.1,补丁升级
npm version patch
# 1.1.1 -> 1.2.0,特性升级
npm version minor
# 1.2.0 -> 2.0.0,大版本升级,可能不兼容
npm version major

npm publish

7. 提交到 GitHub (可选)

建议将你的插件代码托管在 GitHub 或其他代码托管平台上,以便他人查看和贡献。

1
2
3
4
5
git init
git remote add origin https://github.com/yourusername/hexo-plugin-example.git
git add .
git commit -m "Initial commit"
git push -u origin master

总结

通过这些步骤,你可以在本地开始开发一个 Hexo 的 npm 插件。你可以根据自己的需求添加更多功能,并最终将其发布到 npm 上供他人使用。

参考链接