grunt plugin for generate doc form javascript source
This plugin requires Grunt ~0.4.5
If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
npm install grunt-jdoc --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks('grunt-jdoc');
In your project's Gruntfile, add a section named jdoc
to the data object passed into grunt.initConfig()
.
grunt.initConfig({
jdoc: {
your_target: {
// js source file you want to build from
src: 'test/js/checkAppInstalled.js',
// the path for `doc.json` generate to
target: 'docs'
}
}
});
/**
* @function checkAppInstalled
* @desc 通过packageName(Android)获取本地指定应用的本版号
*/
If the function
is on some namespace, for example : app.checkAppInstalled
/**
* @function app.checkAppInstalled
* @desc 通过packageName(Android)获取本地指定应用的本版号
*/
{
"app": {
"property": {
"checkAppInstalled": {
"detail": {
"function": "app.checkAppInstalled",
"desc": "通过packageName(Android)获取本地指定应用的本版号"
}
}
}
}
}
grunt-jdoc
can handle anyobject
automation
If you want to note namespace alone, for example : app
/**
* @namespace app
* @desc 应用模块
*/
{
"app": {
"property": {},
"detail": {
"namespace": "app",
"desc": "应用模块"
}
}
}
/**
* @attribute isAppInstalled
* @desc 是否安装标识
*/
If the attribute
is on some namespace, for example : app.isAppInstalled
/**
* @attribute app.isAppInstalled
* ...
*/
{
"app": {
"property": {
"isAppInstalled": {
"detail": {
"attribute": "app.isAppInstalled",
"desc": "是否安装"
}
}
}
}
}
/**
* @event qbrowserPullDown
* @desc 页面下拉刷新是后会抛出该事件
* @example
* mqq.addEventListener("qbrowserPullDown", function () {
* // your code
* });
*/
{
"event": {
"qbrowserPullDown": {
"detail": {
"event": "qbrowserPullDown",
"desc": "页面下拉刷新是后会抛出该事件",
"example": [
{
"key": "example",
"field": "\n mqq.addEventListener(\"qbrowserPullDown\", function () {\r\n // your code\r\n });\r\n"
}
]
}
}
}
}
/**
* @class Animal
* @desc 动物类
*/
/**
* @prototype Animal.run
* @desc 奔跑吧
* @type Function
*
*/
/**
* @prototype Animal.sex
* @desc 性别
* @type property
*
*/
{
"class": {
"Animal": {
"detail": {
"class": "Animal",
"desc": "动物类"
},
"proto": {
"run": {
"prototype": "Animal.run",
"desc": "奔跑吧",
"type": "Function"
},
"sex": {
"prototype": "Animal.sex",
"desc": "性别",
"type": "property"
}
}
}
}
}
/**
* @function app.checkAppInstalled
* @desc 通过packageName(Android)获取本地指定应用的本版号
*
* @param {String} identifier 要查询的 identifier。
* @param {Function} callback 回调函数
* @param {String} callback.result 返回查询结果。
* @options for callback.result 0 - 没安装
* @options for callback.result 1 - 已安装
*
* @note for identifier 这是关于`identifier`的提示
*/
{
"app": {
"property": {
"checkAppInstalled": {
"detail": {
"function": "app.checkAppInstalled",
"desc": "通过packageName(Android)获取本地指定应用的本版号",
"options": [],
"note": [],
"param": [
{
"key": "param",
"field": "identifier",
"type": "String",
"optional": false,
"desc": " 要查询的 identifier。\r",
"note": [
{
"key": "note",
"field": "这是关于`identifier`的提示",
"belong": "identifier"
}
]
},
{
"key": "param",
"field": "callback",
"type": "Function",
"optional": false,
"desc": " 回调函数\r",
"param": [
{
"key": "param",
"field": "result",
"type": "String",
"optional": false,
"desc": " 返回查询结果。\r",
"options": [
{
"key": "options",
"field": "1 - 已安装",
"belong": "callback.result"
},
{
"key": "options",
"field": "0 - 没安装",
"belong": "callback.result"
}
]
}
]
}
]
}
}
}
}
}
- you can describe
object
by use.
- also you can use
for
keyword to extend some specificparam
/**
* @function app.checkAppInstalled
* @desc 通过packageName(Android)获取本地指定应用的本版号
* @example
* mqq.app.checkAppInstalled(id, function (ret) {
* console.log(ret);
* });
*/
{
"app": {
"property": {
"checkAppInstalled": {
"detail": {
"function": "app.checkAppInstalled",
"desc": "通过packageName(Android)获取本地指定应用的本版号",
"example": [
{
"key": "example",
"field": "\n mqq.app.checkAppInstalled(id, function (ret) {\r\n console.log(ret); // 5.3.1\r\n });\r\n"
}
]
}
}
}
}
}
- you can note more than one examples
- you can use any note tag you want, for example:
@support
,@note
,@important
etc. - every user-defined tag can use
for
keyword to extend some specific@param
/**
* @function app.checkAppInstalled
* @desc 通过packageName(Android)获取本地指定应用的本版号
*
* @param {String} identifier 要查询的 identifier。
* @param {Function} callback 回调函数
* @param {String} callback.result 返回查询结果。
*
* @yourtag this is an user-defined tag of `app.checkAppInstalled`
* @yourtag2 for callback.result this is an user-defined tag of `callback.result`
*
*/
{
"app": {
"property": {
"checkAppInstalled": {
"detail": {
"function": "app.checkAppInstalled",
"desc": "通过packageName(Android)获取本地指定应用的本版号",
"yourtag": [
{
"key": "yourtag",
"field": "this is an user-defined tag of `app.checkAppInstalled`",
"belong": ""
}
],
"yourtag2": [],
"param": [
{
"key": "param",
"field": "identifier",
"type": "String",
"optional": false,
"desc": " 要查询的 identifier。\r"
},
{
"key": "param",
"field": "callback",
"type": "Function",
"optional": false,
"desc": " 回调函数\r",
"param": [
{
"key": "param",
"field": "result",
"type": "String",
"optional": false,
"desc": " 返回查询结果。\r",
"yourtag2": [
{
"key": "yourtag2",
"field": "this is an user-defined tag of `callback.result`",
"belong": "callback.result"
}
]
}
]
}
]
}
}
}
}
}
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.
(Nothing yet)