曾几何时,当你码神附体,一路披荆斩棘的完成代码后,带着“一码在手,天下我有”的傲然环顾之时,却发现单元测试、API文档、Demo实例陆续向你砸来,顿时有木有一种冰水挑战后的感觉。而这时你应该:哟哟,快使用SmartDoc

  SmartDoc, 一个基于NodeJS的自动化文档生成工具,她拥有明眸的双眼(yuidoc引擎),华丽的外衣(bootstrap 3风格),灵巧的双手(demo生成,codemirror代码编辑,jasmine接口兼容);拥有她,相信你一定会仰天长啸:"小伙伴们再也不用担心我的API了。“

  最近有不少朋友问我SmartJS的一些API,我使用YUIDoc和bootstrap2的那个主题全部整理了一遍,但发现只有API没有具体例子也比较难懂,而且没有几个人会看单元测试。遂起念,将文档、单元测试、demo整合提供完整的生成方案,这就有了SmartDoc。

  

SmartDoc 0.1.0 新鲜上架

  具有以下特点:

   * 基于Bootstrp3构建,排版和样式美化
* 支持html和js的Demo生成,与查看
* 提供在线的demo编辑页面(类似于jsfiddler)
* 同步jasmine的expect接口,使得单元测试与example的代码能够复用
* 可以配置化增强 - 项目信息配置;Document页面导航配置;demo依赖库配置
* 提供全局api查询和导航过滤功能,筛选更加便利
* 提供grunt插件 - grunt-contrib-smartdoc

界面讲解


全局过滤


通过右侧全局过滤,可以快速检索所有的API,点击可以跳转到API页面并定位到对于的位置;支持全键盘操作


源代码展示

点击代码位置的链接,就可以进入源代码展示页面



Example演示页面


点击Example区域的Edit Code按钮开启代码编辑页面,如下:

页面中有HTML和Code两个编辑区域和结果的展示区域,代码编辑器使用codemirror,sublime风格,支持智能感知,可以通过配置项来引入样式和脚本库。

提供log和expect公共方法;

  log:在结果区输出日志信息

  expect :兼容jasmine的expect方法

在example区域中写入html代码时,使用<html>html代码</html>和<script>js代码<script>的格式录入即可;

注1:代码编辑页面必须需要服务器环境才能正常运行,本地文件方式只能使用view demo页面查看结果;


View Demo页面


在Example区域点击view demo按钮或者在code edit页面点击view in new window进入;

页面上展示最终结果


单独使用说明


在目录中加入docConfig.js文件,详细配置如下:

module.exports = {
//扫描的文件路径
paths: ['input/'], //文档页面输出路径
outdir: 'doc/', //项目信息配置
project: { //项目名称
name: 'SmartDoc', //项目描述,可以配置html,会生成到document主页
description: '<h2>SmartDoc</h2> <p>Javascript Document builder base on YUIDoc.</p>', //版本信息
version: '1.1.0', //地址信息
url: 'https://github.com/zhh77/smartjs',
//logo地址
logo : 'https://github.com/zhh77/logo.png',
//导航信息
navs: [{
name: "Home",
url: "https://github.com/zhh77/smartjs"
}, {
name: "Document",
url: ""
}, {
name: "About",
url: "https://github.com/zhh77/smartjs"
}]
}, //demo展示页面配置;需要加载的资源; 资源只能是css和js文件
demo: { //外部资源链接
link : ['http://code.jquery.com/jquery-1.11.0.min.js'], //文件复制路径; 将目下的资源复制到doc生成目录中,并在deom页面引用
paths : ['input/ui/uicode.js','input/'] //是否开启在code编辑器中的自动完成功能(会将link和paths的引入加入);默认开启;
autoComplete : true
}, //自定义主题路径
themedir: 'theme/', //自定义helpers
helpers: ["theme/helpers/helpers.js"]
};

运行如下代码:

npm install -g smartdoc

smartdoc

grunt使用


如果是grunt的话引入grunt-contrib-smartdoc,在grunt配置上述docconfig内容;例如:

// 项目配置

    grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
smartdoc: {
build: {
options: {
paths: ['src/'],
outdir: 'doc/',
demo: {
paths: ['dest/smart.js','dest/smart-dataManager.js'],
link: ['http://code.jquery.com/jquery-1.11.0.min.js']
},
//项目信息配置
project: {
name: '<%= pkg.name %>',
// description: '<%= pkg.description %>',
version: '<%= pkg.version %>',
url: 'https://github.com/zhh77/smartjs',
navs: [{
name: "Home",
url: "https://github.com/zhh77/smartjs"
}, {
name: "Document",
url: "http://zhh77.github.io/smartjs/"
}, {
name: "Blog",
url: "http://www.cnblogs.com/zhh8077"
}, {
name: "SmartDoc",
url: "https://github.com/zhh77/smartDoc"
}]
}
}
}
},
…………

结尾


SmartDoc 第一版重点在对YUIDoc的增强以及主题的美化,后面有时间会对YUIDoc的扫描规则做优化(yuidoc对于module的扫描还存在不少问题);

目前还是使用YUIDoc的注释规则,更多信息可以查看YUIDoc,后面会写两篇介绍如何写注释的经验

SmartDoc的GitHub地址

使用SmartDoc生成的SmartJS API地址

JS文档和Demo自动化生成工具 - SmartDoc发布的更多相关文章

  1. 基于数据库的自动化生成工具,自动生成JavaBean、自动生成数据库文档等(v4.1.2版)

            目录:            第1版:http://blog.csdn.net/vipbooks/article/details/51912143            第2版:htt ...

  2. 【转载】Java Restful API 文档生成工具 smart-doc

    谁说生成api文档就必须要定义注解? 谁说生成接口请求和返回示例必须要在线? 用代码去探路,不断尝试更多文档交付的可能性. 如果代码有生命,为什么不换种方式和它对话! 一.背景 没有背景.就自己做自己 ...

  3. 优秀的目录文档内容查找,替换工具,可以飞快的帮助你查询大IIS日志哟。

    这,是一款飞速的目录文档中内容查找的工具. 它,飞快精准的帮助你查询到你想搜索的文档中的内容. 它,是一款由非常牛B,我都不晓得姓名的作者开发的,冒失是C++的windows应用. 你,非常需要他. ...

  4. gulpfile.js文档

    gulp watch 实现监听不仅需要package.json文档,还需要gulpfile.js文档.否则无法实现. 1.gulp的安装 1.1 首先必须先安装node.js.这个可以参考之前的博客& ...

  5. 使用node.js 文档里的方法写一个web服务器

    刚刚看了node.js文档里的一个小例子,就是用 node.js 写一个web服务器的小例子 上代码 (*^▽^*) //helloworld.js// 使用node.js写一个服务器 const h ...

  6. JS文档生成工具:JSDoc 介绍

    JSDoc是一个根据javascript文件中注释的信息,生成API文档的工具.生成的文档是html文件.类似JavaDoc和PHPDoc. 用法 /** 一坨注释之类的 */JSDoc会从/**开头 ...

  7. 基于数据库的自动化生成工具,自动生成JavaBean、数据库文档、框架代码等(v5.8.8版)

    TableGo v5.8.8版震撼发布,此次版本更新如下:          1.新增两个扩展字段,用于生成自定义模板时使用.          2.自定义模板新增模板目录,可以选择不同分类目录下的模 ...

  8. 使用YUIDoc生成JS文档

    其实YUIDoc主页已经写的比较清晰了,但有一些概念和细节再点出一些注意的地方. 目前最新的YUIDoc使用nodejs进行开发安装和使用都非常的方便. 我们只需要将我们的代码加上必要的注释,便可以很 ...

  9. tweenmax.js 文档

    TweenMax 参考http://bbs.9ria.com/thread-214959-1-1.html TweenMax 可能是很多人都用的,包括我 但 是最近发现大量的运用就总会产生这样或那样的 ...

随机推荐

  1. 雅虎Yahoo 前段优化 14条军规

    Yahoo 14条 雅虎十四条 腾讯前端设计的Leader推荐我背熟的.请大家都能好好学习,不要像我一样一扫而过,好好的记下来!不仅仅是晓得一些CSS xhtml就好了,深刻认识到很多的东西需要学习的 ...

  2. 在ArcGIS空间数据库中增加点数据的方法

    1.新建一个mxd(ArcMAP)文件 2.从ArcCatalog中把要编辑的图层拖到ArcMAP中 3.从ArcCatalog中拖一个参照图层到ArcMAP中,比如临沂市的县级区划图 4.打开Edi ...

  3. spl_autoload_register装在函数的正确写法

    AutoLoading\loading <?php namespace AutoLoading; class Loadind { public static function autoload( ...

  4. Enterprise Solution 2.2 开发帮助文档集合

    首先是一个PPT文档,从宏观层面展示Enterprise Soltion的几个功能特色. Enterprise Solution解决方案安装与配置 将源代码解决方案和演示程序在电脑中进行配置,作为了解 ...

  5. C#中使用委托、接口、匿名方法、泛型委托实现加减乘除算法

    使用C#实现加减乘除算法经常被用作新手练习.本篇来分别体验通过委托.接口.匿名方法.泛型委托来实现. 使用委托实现 加减乘除拥有相同的参数个数.类型和返回类型,首先想到了使用委托实现. //创建一个委 ...

  6. 磁盘阵列RAID原理、种类及性能优缺点对比

    磁盘阵列(Redundant Arrays of Independent Disks,RAID) 1. 存储的数据一定分片: 2. 分基于软件的软RAID(如mdadm)和基于硬件的硬RAID(如RA ...

  7. 在Flex (Flash)中嵌入HTML 代码或页面—Flex IFrame

    在flex组件中嵌入html代码,可以利用flex iframe.这个在很多时候会用到的,有时候flex必须得这样做,如果你不这样做还真不行-- flex而且可以和html进行JavaScript交互 ...

  8. RabbitMQ的安装使用

    1.下载安装 Rabbit MQ 是建立在强大的Erlang OTP平台上,因此安装RabbitMQ之前要先安装Erlang. erlang:http://www.erlang.org/downloa ...

  9. Ios开发之定位CLLocationManager

    Ios中的定位功能是通过 Core Location框架实现的.它和地图开发框架是相互独立的.在Core Location中主要实现了定位和地理编码的功能! 下面我们就来介绍一下它的属性,方法和代理方 ...

  10. Windows下msysGit使用及相关配置

    Windows下msysGit使用 目前我们git通过ssh进行通信,所以需要你也安装ssh以及将ssh key发给我,省得每次都需要输入用户名和密码 1.创建工程目录 windows下进入msysG ...