Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

使用 JSDUCK 生成 API 文档 #59

Open
YIXUNFE opened this issue Mar 4, 2016 · 2 comments
Open

使用 JSDUCK 生成 API 文档 #59

YIXUNFE opened this issue Mar 4, 2016 · 2 comments

Comments

@YIXUNFE
Copy link
Owner

YIXUNFE commented Mar 4, 2016

使用 JSDUCK 生成 API 文档

“程序员最讨厌的2件事: ①代码没文档; ② 写文档。” 😂

如何在工作过程中简单方便的维护好文档,应该是每个程序员都需要考虑的问题。今天我们来认识一下一款常见的文档生成工具 —— JSDUCK。

000


安装与使用

如果你安装了 Ruby,可以使用 gem 安装 JSDUCK。

gem install jsduck

WINDOWS 下还可以直接下载 JSDUCK 的可执行文件,下载无需安装即可使用(八星八箭,只要998)。GITHUB下载地址

命令行执行:

//对单独文件生成文档
jsduck xxx.js --output out

//对目录中文件生成文档
jsduck /src --output out

执行完毕后在当前目录下会生成一个名叫 out 的文件夹,里面存放有 API 文档。浏览器打开 index.html,我们就可以查看文档了。


简单的例子

这里有一份 JS 文件:

"use strict"
;(function () {
  /**
   * Page类,代表一个书页.
   * @constructor
   * @param {string} title - 书本的标题.
   * @param {string} author - 书本的作者.
   */
  function Page (title, anthor) {
    /**
     * 获取书本的标题
     * @return {string|*}
     */     
    this.getTitle=function(){
        return this.title;
    }
  }
  window.Page = Page
}());
/**
 * Book类,代表一个书本.
 * @constructor
 * @param {string} title - 书本的标题.
 * @param {string} author - 书本的作者.
 */
function Book(title, author) {
    this.title=title;
    this.author=author;
}
Book.prototype={
    /**
     * 获取书本的标题
     * @return {string|*}
     */     
    getTitle:function(){
        return this.title;
    },
    /**
     * 设置书本的页数
     * @param pageNum {number} 页数
     */
    setPageNum:function(pageNum){
        this.pageNum=pageNum;
    }
};

生成的文档效果:

2


为什么选用 JSDUCK

很多同学应该也使用或者听到过 JSDOC 的大名,它们都是为 JS 量身定做的文档生成工具,都按照注释标签生成文档。JSDUCK 与 JSDOC 相比,没有后者对于注释标签使用上的强制性。JSDOC 生成的文档常常是一片惨白,一个字都没有,因为你没有完完全全按照 JSDOC 的注释规范书写注释(所以它很生气啊),所以想要玩转 JSDOC,需要有一定的学习成本。JSDUCK 在使用上则比较简单,目前有很多开源项目在使用 JSDUCK。


注释标签

JSDUCK 的注释标签相对 JSDOC 少一些,其中一些注释标签是我们平时注释常用的,比如 @param@constructor 等。具体作用可以参考官方文档


Thanks


@luckydrq
Copy link

luckydrq commented Mar 8, 2016

jsduck不支持es6语法, senchalabs/jsduck#630

@yunchuanyang
Copy link

很多标签,我用起来都无效,比如author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants