gitbook 入门教程之小白都能看懂的 Gitbook 插件开发全流程
什么是插件
Gitbook
插件是扩展 GitBook
功能(电子书和网站)的最佳方式.
只要是 Gitbook
默认没有提供的功能,基于插件机制都可以自行扩展,是插件让 Gitbook
变得更加强大.
本文将全面介绍插件的相关知识并重点介绍插件开发的全流程,只有熟悉插件开发流程才能做到有的放矢,心中有数,进而开发出自己的插件.
关于插件请参考
Gitbook
入门教程高级进阶系列文章,本文重点讲解开发Gitbook
的基本流程.
如何发现插件
您可以在Gitbook
官网轻松搜索插件,也可以在npmjs
官网搜索 gitbook-plugin-<name>
插件.
目前
Gitbook
官方已不再为维护插件网站,只能通过npmjs
发现Gitbook
插件.
如何安装插件
一旦你找到你想要安装的插件,你需要将它添加到你的 book.json
配置文件,如果没有该文件则自行创建.
{
"plugins": ["myPlugin", "anotherPlugin"]
}
您还可以使用以下命令指定特定版本: myPlugin@0.3.1
.
默认不填写版本的情况下,GitBook
使用最新版本(兼容版本)的插件.
安装插件
- 如果是官网在线环境,网站会自动帮你安装插件.
- 如果是在本地环境,直接运行
gitbook install
来安装插件.
$ gitbook install
或者使用 npm
提前下载插件再安装到本地项目:
$ npm install gitbook-plugin-<name>
$ gitbook install
配置插件
插件的配置在 book.json
配置文件中的 pluginsConfig
属性中(如果没有该属性请自行创建),
安装插件时,最好浏览插件的文档了解相关选项的详细信息.
{
"plugins": ["github"],
"pluginsConfig": {
"github": {
"url": "https://github.com/snowdreams1006/snowdreams1006.github.io"
}
}
}
有些插件并未提供插件配置项,可以省略该步骤,有的插件会提供配置项,以插件介绍文档为准.
如何开发插件
GitBook
插件是在 npm
上发布的遵循传统定义的 node
包,除了标准的 node
规范外还有一些 Gitbook
自身定义的相关规范.
目录结构
Gitbook
插件最基本的项目结构至少包括配置文件 package.json
和入口文件 index.js
,其他目录文件根据插件用途自行增减.
.
├── index.js
└── package.json
实际插件项目略有不同,可能还会有
_layouts
布局目录,asset
资源目录以及自定义example
示例目录和docs
文档目录等等.
package.json
package.json
是nodejs
的配置文件,Gitbook
插件同样遵循该规范,配置文件声明了插件的版本描述性信息,除此之外还有 Gitbook
相关字段,遵循schema
准则,基本示例如下:
{
"name": "gitbook-plugin-mytest",
"version": "0.0.1",
"description": "This is my first GitBook plugin",
"engines": {
"gitbook": ">1.x.x"
},
"gitbook": {
"properties": {
"myConfigKey": {
"type": "string",
"default": "it's the default value",
"description": "It defines my awesome config!"
}
}
}
}
值得注意的是,包名称必须以
gitbook-plugin-
开头,包引擎应该包含gitbook
.如需了解package.json
的规范,可参考官方文档
index.js
index.js
是插件运行时的入口,基本示例如下:
module.exports = {
// 钩子函数
hooks: {},
// 代码块
blocks: {},
// 过滤器
filters: {}
};
发布插件
GitBook
插件可以在npmjs
官网上发布.
如需发布插件,首先需要在npmjs
官网上注册帐户,然后通过命令行发布.
$ npm publish
专用插件
专用插件可以托管在 GitHub
上,并使用 git
urls:
{
"plugins": [
"myplugin@git+https://github.com/MyCompany/mygitbookplugin.git#1.0.0"
]
}
本地测试插件
使用 npm link
可以在发布之前测试你的插件,命令详情参考官方文档
在插件的文件夹中,运行:
$ npm link
然后在您的书或者文档的文件夹中执行:
$ npm link gitbook-plugin-<name>
单元测试插件
gitbook-tester
可以方便地为你的插件编写Node.js/Mocha单元测试.
使用Travis
.可以对每个提交/标签运行测试.
插件总结
Gitbook
插件是扩展 Gitbook
功能的不二之选,如果熟悉 nodejs
项目的开发流程,只要稍微熟悉下 Gitbook
提供的接口文档,开发出自己的插件应该不是难事!
希望本文能够对你理解 Gitbook
插件有所帮助,了解并熟练掌握插件开发的全流程,如果本文对你有所帮助,别忘了给我一个正面反馈以鼓励我继续创作哟!
阅读延伸
如果本文对你有所帮助,请动动小手点一下推荐,否则还请留言指正,如有需要,请关注个人公众号「 雪之梦技术驿站 」
gitbook 入门教程之小白都能看懂的 Gitbook 插件开发全流程的更多相关文章
- 搭建分布式事务组件 seata 的Server 端和Client 端详解(小白都能看懂)
一,server 端的存储模式为:Server 端 存 储 模 式 (store-mode) 支 持 三 种 : file: ( 默 认 ) 单 机 模 式 , 全 局 事 务 会 话 信 息 内 存 ...
- 小白都能看懂的tcp三次握手
众所周知,TCP在建立连接时需要经过三次握手.许多初学者经常对这个过程感到混乱:SYN是干什么的,怎么一会儿是1一会儿是0?怎么既有大写的ACK又有小写的ack?为什么ACK在第二次握手才开始出现?初 ...
- Unity 打包发布Android新手教学 (小白都能看懂的教学 ) [转]
版权声明:本文为Aries原创文章,转载请标明出处.如有不足之处欢迎提出意见或建议,联系QQ531193915 扫码关注微信公众号,获取最新资源 最近在Unity的有些交流群里,发现好多Unity开发 ...
- 小白都能看懂的Spring源码揭秘之IOC容器源码分析
目录 前言 IOC 只是一个 Map 集合 IOC 三大核心接口 IOC 初始化三大步骤 定位 加载 注册 总结 前言 在 Spring 框架中,大家耳熟能详的无非就是 IOC,DI,Spring M ...
- 小白都能看懂的 Spring 源码揭秘之依赖注入(DI)源码分析
目录 前言 依赖注入的入口方法 依赖注入流程分析 AbstractBeanFactory#getBean AbstractBeanFactory#doGetBean AbstractAutowireC ...
- log4j漏洞的产生原因和解决方案,小白都能看懂!!!!
核弹级bug Log4j,相信很多人都有所耳闻了,这两天很多读者都在问我关于这个bug的原理等一些问题,今天咱们就专门写一篇文章,一起聊一聊这个核弹级别的bug的产生原理以及怎么防止 产生原因 其实这 ...
- 小白都能看懂的 Spring 源码揭秘之Spring MVC
目录 前言 Spring MVC 请求流程 Spring MVC 两大阶段 初始化 HttpServletBean#init() FrameworkServlet#initServletBean Fr ...
- 【Cocos2d入门教程七】三分钟看懂Cocos2d坐标系
无论是搞2d还是3d开发,最需要搞清楚的就是坐标系,这部分混乱的话就没啥搞头了.所以玩cocos2d,一上来就需要先把各种与坐标有关的东西搞清楚. 1.OpenGL坐标系 Cocos2d-x使用的是O ...
- 小白都能看懂的Linux系统下安装配置Zabbix
实验环境: 操作系统:Centos 7.6 服务器ip:192.168.10.100 运行用户:root 网络环境:Internet Zabbix是一个基于web界面的提供分布式系统监控及网络功能的企 ...
随机推荐
- Oracle性能图表工具:awrcrt.sql 介绍,更新到了2.14 (2018年3月31日更新)
2018-03-31 awrcrt更新到了2.14版本, 下载地址为 https://pan.baidu.com/s/1IlYVrBJuZWwOljomVfta5g https://pan.baidu ...
- 第8章 浏览器对象模型BOM 8.1 window对象
ECMAScript是javascript的核心,但如果要在web中使用javascript,那么BOM(浏览器对象模型)则无疑是真正的核心.BOM提供了很多对象,用于访问浏览器的功能,在浏览器之间共 ...
- 【Appium】Appium+Python环境搭建
环境准备: 1.jdk 2.android-sdk 3.python 4.Node.js 5.appium 6.Appium-Python-Client 1. 下载jdk1.7:http://www. ...
- 【selenium】- 自动化框架环境搭建
本文由小编根据慕课网视频亲自整理,转载请注明出处和作者. 1. 环境搭建 本课程选用的是selenium + java. 2. java环境的搭建 环境变量配置: 以win10为例,打开控制面板& ...
- 【Offer】[7] 【重建二叉树】
题目描述 思路分析 Java代码 代码链接 题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1,2,4, ...
- moco 入门及问题解决
废话不多说 下载: http://repo1.maven.org/maven2/com/github/dreamhead/moco-runner/ 选择最新版本下载jar包 启动: 1:在本地jar包 ...
- Django之模型层(2)
Django之模型层(2) 一.创建模型 实例:我们来假定下面这些概念,字段和关系. 作者模型:一个作者由姓名和年龄. 作者详细模型:把作者的详情放到详情表,包含生日,手机号,家庭住址等信息.作者详情 ...
- android 解决 多品牌手机拍照问题,尤其是小米手机
先上个图吧 .点击头像弹出下面对话框,然后直接上代码. 头像是自定义控件实现的圆形头像,当然就目前而言 想要实现 圆形头像的资料太多了,随便找个就行 <com.kuibu.jucai.widge ...
- android端 版本升级
由于项目中要求实现版本升级,特写此代码,有因为这段代码基本都是通用,所以记录下来,以便下次直接拷贝... public class ApkVersionUpdate { /** apk文件下载状态:正 ...
- MySQL5.7初始化后5种密码重置方法
前言:由于好几次安装MySQL5.7后一直被重置密码所困扰,因此特意整理重置的方法 安装MySQL5.7 [root@node1 db]# ll 以下的rpm安装包可以随处下载 total 40235 ...