kdoc
这是一个文档生成工具
folder
.├── bin #shell可执行文件 ├── index.js├── core│ ├── hook.js #钩子管理 │ ├── glob.js #解析路径 │ └── plugin.js #插件管理 ├── node_modules #依赖node 包文件 └── package.json #包配置文件
install
npm install kdoc -g #ornpm install kdoc -S
run
支持node与shell命令行
/**node*/const kdoc = const doc = src output options//src[array<string>]为源目录,output[string]为输出目录const doc2 = src output options//src[array<string>]为源目录,output[string]为输出目录 docdoc2 //串行{ await doc await doc2}
#shell kdoc -h #获取帮助 kdoc -s ./api/**/*.md -o ./dist/api -p './plugin/plugin1.js,./plugin/plugin2.js'kdoc -s ./pages/**/*.md -o ./dist/pages
features
-
支持插件机制
- 插件为node模块只要能够被 require
- es6模块请注意
export default {}
与module.exports = {}
的区别 ,module.exports = exports['default']
- 如果使用babel 可以使用babel-plugin-add-module-exports
- 必须导出为可执行函数 , 如不是函数则不会被执行
- 将会按照装载顺序执行
- 相同的plugin只会执行一次
- 支持异步promise
- 插件如果需要参数请在外部包裹一个函数 内部返回插件函数 , 可以通过qs传递参数
//plugin.jsconst plugin2 =const plugin = { //ctx为kdoc实例ctxdatafiles //这里是所有的文件对象 , key为文件路径 , value为虚拟的File对象 , 在插件中可以通过更改File.contents改变输出结果//装载时执行ctxconsole //kdoc实例中共享的数据ctx{//在实例上注册方法console}ctx;//添加额外的插件ctxhookreturn {}}moduleexports = plugin/**需要外部传递参数**/const plugin2 = {consolereturn {ctxdatafiles //这里是所有的文件对象 , key为文件路径 , value为虚拟的File对象 , 在插件中可以通过更改File.contents改变输出结果//装载时执行ctxconsole //kdoc实例中共享的数据ctx{//在实例上注册方法console}ctx;//添加额外的插件ctxhookreturn {}}}moduleexports = plugin/**node*///index.jsconst kdoc =const plugin =const plugin2 =const path =const doc = src outputconst plugin3 = {console;};kdoc;//此时plugin 中的ctx 代表doc 实例 , 使用ctx.prototype 将能访问KDockdoc;//此时plugin 中的ctx 代表doc 实例 , 使用ctx.prototype 将能访问KDocdoc;//此时plugin 中的ctx 代表doc 实例 , 使用ctx.prototype 将能访问KDoc -
提供hook
/**ctx 内置提供如下 usable hook :scan.beforescan.afterpipedist.beforedist.after*/const kdoc =const doc = src output//src为源目录,output为输出目录const doc2 = src output//src为源目录,output为输出目录/**支持自定义hook**/kdochookkdochook/**支持自定义hook**/kdochookdochookdocdoc2
API