使用jsdoc-toolkit来自动生成js api文档
近来前端组小盆友开发的类库越来越多,很多情况下彼此不知道写了些什么方法,为了更好的合作提高工作效率,找了个比较好的api文档生成方法。使用jsdoc-toolkit来自动生成js api文档。
一、 环境搭建
1) 首先要安装java环境,如果不太了解的参看:http://jingyan.baidu.com/article/e75aca85b29c3b142edac6a8.html
2) 安装jsdoc-toolkit
下载地址:http://code.google.com/p/jsdoc-toolkit/downloads/list
解压下载的压缩包(可以随便指定目录),并进入该目录,shift+鼠标右击,在菜单中选择打开cmd命令:敲入如下命令:
java -jar jsrun.jar app/run.js
如果出现:
WARNING: No source files to work on. Nothing to do.
就代表一切安装成功了。
由于本文着重写如何生成js api,所以有关jdk安装就不多述了。
二、 准备符合规范的注释代码文件
1) 符合规定的注释
用sublime的小盆友,安装下sublime插件DocBlockr。其他编辑器有没有辅助插件我就不知道了,就以此来说明下注释规范。
安装成功后,在写好的函数上一行敲入/**然后回车,就会出现:
/**
* [__ description]
* @param {[type]} key [description]
* @return {[type]} [description]
*/
以上就是符合api规范的注释,三行分别为函数描述,参数及返回值。
写好的注释如:
/**
* 翻译函数
* @param {String} key 参数字符串
* @return {String} 返回字符串
* @example __('test')
*/
特别列出常用注释命令参数:
命令名 描述
@param
@argument 指定参数名和说明来描述一个函数参数。
@return
@example 函数使用示例
@returns 描述函数的返回值。
@author 指示代码的作者。
@deprecated 指示一个函数已经废弃,不建议使用,而且在将来版本的代码中可能会彻底删除。要避免使用这段代码。
@see 创建一个HTML链接指向指定类的描述。
@version 指定发布版本。
@requires 创建一个HTML链接,指向这个类所需的指定类。
@throws
@exception 描述函数可能抛出的异常的类型。
@link 创建一个HTML链接,指向指定的类。这与@see很类似,但@link能嵌在注释文本中。 @author 指示代码的作者。(译者注:这个标记前面已经出现过,建议去掉)
@fileoverview 这是一个特殊的标记,如果在文件的第一个文档块中使用这个标记,则指定该文档块的余下部分将用来提供文件的一个概述。
@class 提供类的有关信息,用在构造函数的文档中。
@constructor 明确一个函数是某个类的构造函数。
@type 指定函数的返回类型。
@extends 指示一个类派生了另一个类。通常JSDoc自己就可以检测出这种信息,不过,在某些情况下则必须使用这个标记。
@private 指示一个类或函数是私有的。私有类和函数不会出现在HTML文档中,除非运行JSDoc时提供了---private命令行选项。
@final 指示一个值是常量值。要记住JavaScript无法真正保证一个值是常量。
@ignore JSDoc 会忽略有这个标记的函数。
2) 符合规定的代码
命名空间规范
示例代码test1.js
/**
* @namespace 通用工具函数.
*/
Utils = {
/**
* 翻译函数
* @param {String} str 参数字符串
* @return {String} 返回字符串
*/
helloApi: function(str) {
return str;
}
}
Utils上的namespace说明一定要加,指定该命名空间。
helloApi就是Utils的静态函数。
修改一下,utils前加var:
/**
* @namespace 通用工具函数.
*/
var Utils = {
/**
* 翻译函数
* @param {String} str 参数字符串
* @return {String} 返回字符串
*/
helloApi: function(str) {
return str;
}
}
加了var之后效果和上面一段代码一样, 因为Utils都是全局变量。生成的都是Utils下的静态函数说明。
如果使用闭包:
define(function(require){
/**
* @namespace 通用工具函数.
*/
var Utils = {
/**
* 翻译函数
* @param {String} str 参数字符串
* @return {String} 返回字符串
*/
helloApi: function(str) {
return str;
}
}
return Utils;
})
将不能生成代码,因为Utils变为闭包内的变量,所以jsdoc不能找到公开命名空间。
目前我能想到的方法就是在生成doc时临时将var去掉,之后再加上,有点麻烦,不知道各位有没有更好的方式。
生成工具类静态函数及类函数
上面在讲命名空间的时候是以静态类为例的,于是这里就讲一下如何生成类方法。
define(function(require){
/**
* @namespace 通用工具函数.
*/
Utils = function() {};
Utils.prototype = {
/**
* 翻译函数
* @param {String} str 参数字符串
* @return {String} 返回字符串
*/
helloApi: function(str) {
return str;
}
}
return Utils;
})
这样就生成了一个utils类,__为他的方法。中途不能有参数传递,如:
define(function(require){
/**
* @namespace 通用工具函数.
*/
Utils = function() {};
var fn = Utils.prototype;
fn = {
/**
* 翻译函数
* @param {String} str 参数字符串 * @return {String} 返回字符串 */
helloApi: function(str) {
return str;
}
}
return Utils;
})
三、使用jsdoc生成文档
1) 生成test1.js的文档
将test1.js文件放入jsdoc目录下的app文件夹中:
然后敲入命令:
java -jar jsrun.jar app/run.js -a -t=templates/jsdoc app/test1.js
如果成功的话,你就会看到当前文件夹里多出了一个叫做 out 的文件夹,生成的文档就在里面了!然后你就可以在浏览器中查看了。
java -jar jsrun.jar app/run.js -a -t=templates/jsdoc app/test1.js
如果写成:
java -jar jsrun.jar app/run.js -a -t=templates/jsdoc app
将生成app文件夹下所有文件的api文档。
如果想了解所有命令参数,通过-help可以查看
java -jar jsrun.jar app/run.js --help
简单介绍几个:
-a 或者 --allfunctions :为全部函数生成文档,包括那些没有写注释的。
-c 或者 --conf :使用配置文件
-d= 或者 --directory=:指定生成文档的输出目录,默认是 “out”
-e= 或者 --encoding=:指定编码方式
-n 或者 --nocode :忽略所有代码,只为有 @name 标签的注释生成文档。
-o= 或者 --out= : 将日志信息输出到指定文件
-q 或者 --quiet : 不输出任何信息,包括警告。
-t= 或者 --template= :指定文档的模板,这个参数必须提供。
2) 使用配置文件
为了更方便的生成文档,一定需要使用配置文件来指定各项参数,包括指定输入输出目录。下面讲一下如何使用配置文件。
在jsdoc目录下的conf文件夹中有个sample.conf文件。按注释修改目录。
/*
This is an example of one way you could set up a configuration file to more
conveniently define some commandline options. You might like to do this if
you frequently reuse the same options. Note that you don't need to define
every option in this file, you can combine a configuration file with
additional options on the commandline if your wish. You would include this configuration file by running JsDoc Toolkit like so:
java -jar jsrun.jar app/run.js -c=conf/sample.conf */ {
// source files to use源文件路径
// 如修改为['app'],将分析app下所有文件,注意一定要写成反斜杠'/',如果是'\'不能分析路径。
_: ['app/test1.js'], // document all functions, even uncommented ones
a: true, // including those marked @private
p: true, // some extra variables I want to include
D: {generatedBy: "Michael Mathews", copyright: "2008"}, // use this directory as the output directory
d: "docs", // use this template
t: "templates/jsdoc"
}
然后在cmd中输入:
java -jar jsrun.jar app/run.js -c=conf/test.conf
便可以方便的生成文档,随时改变conf内容而不用在cmd中改变命令。
参考:http://www.oschina.net/question/12_7615
如果有不对的地方,大家请拍砖。
使用jsdoc-toolkit来自动生成js api文档的更多相关文章
- Grunt-jsdoc生成JS API文档
Grunt-jsdoc生成JS API文档 具体的请看官网 https://github.com/krampstudio/grunt-jsdoc 一:首先确保本机电脑上是否已经安装了nodejs和np ...
- Golang使用swaggo自动生成Restful API文档
#关于Swaggo 相信很多程序猿和我一样不喜欢写API文档.写代码多舒服,写文档不仅要花费大量的时间,有时候还不能做到面面具全.但API文档是必不可少的,相信其重要性就不用我说了,一份含糊的文档甚至 ...
- Spring Boot学习笔记 - 整合Swagger2自动生成RESTful API文档
1.添加Swagger2依赖 在pom.xml中加入Swagger2的依赖 <!--swagger2--> <dependency> <groupId>io.spr ...
- Go学习笔记(六) | 使用swaggo自动生成Restful API文档(转)
关于Swaggo 或许你使用过Swagger, 而 swaggo就是代替了你手动编写yaml的部分.只要通过一个命令就可以将注释转换成文档,这让我们可以更加专注于代码. 目前swaggo主要实现了sw ...
- 第十二节:WebApi自动生成在线Api文档的两种方式
一. WebApi自带生成api文档 1. 说明 通过观察,发现WebApi项目中Area文件夹下有一个HelpPage文件夹,如下图,该文件夹就是WebApi自带的生成Api的方式,如果该文件夹没了 ...
- C# 自动生成代码API文档
暂时没学会正规的转载style临时记录一下 NET中的规范标准注释(一) -- XML注释标签讲解 http://www.cnblogs.com/mq0036/p/3544264.html NET中的 ...
- jsdoc注释规范工具(使用 JSDoc 3 自动生成 JavaScript API 文档)
安装和使用规范见:http://moodpo.com/archives/jsdoc3-tutorial.html 实例: /** * 模块调用方法 * * * @param {string} modu ...
- node.js api文档生成
ApiDoc官网地址为:http://apidocjs.com/在Java中有Swagger及其升级版的Swagger2+Springfox自动生成接口管理文档.而在Node.js中则可以利用ApiD ...
- JSDoc 3 生成javascript API文档
一.javascript注释规范 我们在编写javascript文件的时候,一般会添加一些注释.例如一些文件.类.方法和属性都应该用合适的标记和类型进行注释.这里不但方便我们的阅读,也能养成一个好的习 ...
随机推荐
- android按行读取文件内容的几个方法
一.简单版 import java.io.FileInputStream; void readFileOnLine(){ String strFileName = "Filename.txt ...
- button 垂直分布
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];//button的类型 button.frame = CGRectMak ...
- Sharepoint 问题集锦 - 外部列表(external list) - 读取当前用户上下文或用户名作为筛选参数
在创建外部列表过程中,往往需要添加筛选参数,而较多开发用户,会关心如何在外部列表中,只显示当前用户相关的行.本例子中,我们以任务数据表来做例子,看看如何实现这个需求. 1)数据表tbl_task: t ...
- SQL Server与Oracle中的隔离级别
在SQL92标准中,事务隔离级别分为四种,分别为:Read Uncommitted.Read Committed.Read Repeatable.Serializable 其中Read Uncommi ...
- 关于.NET的配置文件
无论是exe文件还是dll文件,都可以添加App.config文件,里面设置配置信息.比如<appSettings></appSettings>之间,可以加入Key-Value ...
- bzoj 3287: Mato的刷屏计划 高精水题 && bzoj AC150
3287: Mato的刷屏计划 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 124 Solved: 43[Submit][Status] Desc ...
- 【HTTP】全面比较HTTP GET与POST方法
全面比较HTTP GET与POST方法 1. 基本信息比较 属性 GET方法 POST方法 历史: 通常使用GET方法发送的数据作为URL的一部分将会被浏览器保存起来 使用POST方法提交 ...
- Web Scale IT 与 6 种 DevOps 工具
新年伊始,在总结过去一年 IT 行业变化和发展的同时,不少企业更关注未来一年甚至几年的行业趋势.Gartner 于 2014 年发表了文章 Gartner Says By 2017 Web-Scale ...
- MySQL重置密码与远程连接权限问题
如果mysql没有密码,或者密码设置为空的时候可以通过在用管理员身份打开cmd,然后在里面输入mysqladmin -u root password 123456 这个地方的密码是明文密码. 如果忘 ...
- 分析WordPress主题结构是如何架构的?
利用强大的技术,可以把基于WordPress的网站做成各种各样的形式,这除了要求WordPress主题开发人员精通HTML,PHP,JS,CSS等技术,还需要开发者掌握WordPress主题的框架.下 ...