hexo 教程之为 hexo 编写一个插件

该教程为我们呈现了 hexo 插件最基础的开发流程,不涉及具体功能。

准备工作

Hexo 安装完毕,执行完毕 hexo init. 可以本地访问.
如果 NPM 有下载问题,请使用 cnpm CNPM
另外强烈推荐 git bash

插件简介

很多人不理解为什么要有插件,因为我们已经被浏览器的插件烦透了对吗? 没错。不受控的插件只会把用户搞疯狂。
但是受控的插件,可以锦上添花

确定需求

插件存在的意义是,一定要解决用户痛点。本文实例只会打印一句 log,很显然没人会用这个插件。

新建 package.json 文件

在你的 hexo blog 目录,找到 node_modules. 新建一个文件夹。然后执行 npm init
npm 会引导你生成 package.json 这是你的包的描述文件。需要注意的是,所有的 hexo 插件必须以 hexo - 开头,否则 hexo 不会加载。

mkdir your_mod
cd your_mod
npm init

根据提示输入信息:

$ npm init
...
package name: (mytest) hexo-remote-writting
version: (1.0.0) 0.0.1
description: A hexo plugin to support writting post remotely
entry point: (index.js)
test command:
git repository:
keywords: hexo plugin remote writting
author: yourname
license: (ISC) MIT

Is this OK? (yes)

回车然后 package.json 就生成好了。

新建 index.js 文件

根据上面的 package.json, 我们设置了入口 JS 文件名,因此必须新建一个 index.js,这个包才完整。
我们根据 hexo 文档,注册插件,这个插件会在 hexo 生成静态文件时,打印一条 log。

hexo.extend.filter.register('before_generate', function(){
	console.log("this is from remote writting:");
});

新建 README.md

这个文件会显示在 npmjs 你的模块界面,对用户更友好。

测试

回到上级目录,修改 hexo 的 package.json, 新增一行到 dependency:

"hexo-remote-writting": "^0.0.1",

然后,每次执行 hexo g 或者 hexo s, 都会看到插件的 log, 证明插件已经运行了。

发布

如果你要发布到 NPM, 那么遵循 npm 的流程即可。

发布流程为,到插件目录上使用 cmd /git base,执行 npm login,如果还没有 npm 账号,需要先到 npm.com 上注册一个,再执行该命令。

提供账号名、密码、邮箱之后就可以登录成功,再执行 npm publish,即可将插件发布到 npm 上。

再到项目中通过 npm /cnpm 安装插件。

如果你使用 taobao 的 registry,npm login 和 npm publish 可能会失败。

npm config list

需要恢复默认 registry:

npm config set registry 'http://registry.npmjs.org'

当你的包发布好以后,只需要回到你的 blog 目录

npm install hexo-your-plugin --save

本地 package.json dependency 会对应修改。
你可以试试是否已经生效。

升级发布的 npm 插件

首先修改 package.json 文件的 version 版本号,然后更新源码,最后执行一下命令

npm publish --registry http://registry.npmjs.org

项目中使用这个插件的时候(即使用 npm install 安装过),升级命令

npm update 插件名
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值