gitbook插件编写指南
gitbook还远未成熟,API多变,很多基本的功能都没有,插件质量参差不齐。
我编写了gitbook-plugin-ftpsync
,用来将电子书在每次重新生成时通过ftp上传到网站。
重要:该插件运行不正常,可能跟gitbook不支持回调方式运行ftpsync有关.
1. npm环境配置
1.1. 安装npm
sudo apt-get install npm
1.2. 注册npm账户
另外还需要为插件准备一个名字,该名字不可与npm已有包重名。我选用了gitbook-plugin-ftpsync
。
然后在本地机器添加用户:
npm adduser
这会让你输入用户名密码,之后就不用再输入了。
1.3. 生成一个github的项目仓库
在http://github.com建立一个项目。项目名字最好与插件名字同名。
注意gitbook
的插件都需要gitbook-plugin
开头,否则无法在https://plugins.gitbook.com
上被搜索到。
2. 准备插件文件
2.1. README.md
这里是插件的描述信息,在npm和github的项目主页显示。
2.2. index.js
这里是插件的主要内容。怎么写可参考gitbook
的开发者文档。
但是gitbook
提供的功能极为有限,很多东西都做不了。
2.3. package.json
输入命令npm init
可以交互式地生成package.json
。但这个文件内容作为gitbook
插件还不齐全。最好的方式还是从下面这个文件里改:
{
"name": "gitbook-plugin-ftpsync",
"version": "1.1.5",
"description": "sync gitbook to ftp server after each build",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "git+https://github.com/zhangzq/gitbook-plugin-ftpsync.git"
},
"keywords": [
"gitbook",
"plugin",
"ftp"
],
"author": "zhangzq",
"license": "GPL-3.0",
"bugs": {
"url": "https://github.com/zhangzq/gitbook-plugin-ftpsync/issues"
},
"homepage": "https://github.com/zhangzq/gitbook-plugin-ftpsync#readme",
"dependencies": {
"ftpsync": "0.1.10"
},
"engines": {
"gitbook": "*"
}
}
3. 测试插件
在插件目录,运行sudu npm link
;在书籍目录,运行npm link gitbook-plugin-ftpsync
。注意每次插件的package.json
有更新,都需要重新运行此命令。
然后就可以在gitbook
里面测试该插件。如果有缺失的依赖项,可以手动用npm install xxx --save
来安装。
4. 部署插件
4.1. 部署到npm
时用命令npm publish
即可。
以gitbook-plugin
开头的插件可在gitbook
官网上搜索到,并可以gitboou install
安装。
4.2. 部署到git
以gitbook-plugin-ftpsync
为例
git remote add origin https://github.com/zhangzq/gitbook-plugin-ftpsync.git
git add .
git commit -m 'init'
git push origin master