`
gogo1217
  • 浏览: 152119 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

js doc 工具推荐及使用(二):ext-doc

阅读更多

版权所有,转载请注明来源http://gogo1217.iteye.com,违者必究!

 

     之前在整理公司框架的时候,曾经为javascript写过一些注释,但没有合适的工具来生成doc文件。后来功过google以及自己试用,发现jsdoc-toolkit和ext-doc2个工具比较有意思。

jsdoc-toolkit详见:js doc 工具推荐及使用(一):jsdoc-toolkit

 

ext-doc

 

官方地址为:http://code.google.com/p/ext-doc/

1.下载解压后,目录如下图所示:

其中sample是自带的示例,ext.xml是配置文件,ext-doc.bat是java命令调用;template是doc模板.

 

2.在sample下新建extdoc-demo.js,代码如下:

/**
 * 基础组件,其他组件应该继承本class
 * @class BaseComponent
 */
BaseComponent = extend(Observable, {
	/**
	 * 构造方法
	 * @param {JSONObject} cfg
	 */
	constructor : function(cfg) {
		this.setConfig(cfg);
		//设置属性
		if(!this.getParameterScope()) {
			this.addParameterScope('default');
		}
		if(!this.getParameterScope('post')) {
			this.addParameterScope('default', 'post');
		}
		this.initComponent(cfg);
		//调用初始化组件
	},
	/**
	 * 初始化组件
	 */
	initComponent : function() {
		this.render();
	},
	/**
	 * 是否已经渲染
	 */
	isRendered : false,
	clazz : 'BaseComponent',
	/**
	 * 如果指定了renderTo属性,则自动渲染,否则需要显示指定渲染目标
	 * @param {String} renderTo 渲染容器id
	 */
	render : function(renderTo) {
		if(!this.isRendered) {
			this.renderTo = renderTo || this.renderTo;
			if(this.renderTo) {
				//执行渲染之前的函数
				if(this.fireEvent('beforerender', this.renderTo)) {
					if(this.fireEvent('onrender', this.renderTo)) {
						this.isRendered = true;
						this.fireEvent('afterrender', this.renderTo);
					}
				}
			}
		}
	},
	/**
	 * 重新加载
	 * @param {Object} params 参数
	 * @param {String || Array} eventScope 事件作用域,用于组件之间传递事件
	 * @param {Object} trigerHander 事件发起的组件对象
	 */
	load : function(params, eventScope, trigerHander) {
	},
	/**
	 * 预览,如果当前不是编辑模式,则不会触发任何操作
	 *
	 */
	preview : function() {
		if(this.isEditMode()) {
			if(this.fireEvent('beforepreview')) {
				if(this.fireEvent('onpreview'))
					this.fireEvent('afterpreview');
			}
		}
	},
	/**
	 * 编辑,如果当前不是编辑模式,则不会触发任何操作
	 */
	edit : function() {
		if(this.isEditMode()) {
			if(this.fireEvent('beforeedit')) {
				if(this.fireEvent('onedit'))
					this.fireEvent('afteredit');
			}
		}
	},
	/**
	 * 拖拽放下事件
	 */
	drop : function(event, data) {
		if(this.fireEvent('beforedrop', event, data)) {
			if(this.fireEvent('ondrop', event, data))
				this.fireEvent('afterdrop', event, data);
		}
	},
	/**
	 * 移除组件
	 */
	remove : function() {
		if(this.isEditMode()) {
			if(this.fireEvent('beforeremove', this)) {
				if(this.fireEvent('onremove', this))
					this.fireEvent('afterremove', this);
			}
		}
	},
	onload : function(params) {
		if(this.renderTo && this.mvId) {
			var thiz = this, params = params || {};
			jQuery('#' + this.renderTo).load(this.extURL + '?returnJsp=false&mvid=' + this.mvId, params, function() {
				thiz.fireEvent('afterload', params);
			});
		}
	},
	onrender : function() {this.isEditMode() ? this.edit() : this.load();
	},
	/**
	 * 对象销毁,本方法需要组件将当前对象的缓存属性,额外的dom对象,绑定的时间删除。
	 */
	destroy : function() {
		delete this._eventCalls;
	},
	equals : function(obj) {
		return obj && this.renderTo == obj.renderTo;
	}
});

 

3.修改sample下的ext.xml,增加自定义的js目录。如下

<?xml version="1.0" encoding="UTF-8"?>
<doc>

    <!--

    Source section (required)

        Use <source> to specify directory with JavaScript source files to be
        processed or just one JS file. Directories are processed recursively.

        Attributes:

            src: (required) - source directory name or file name
            match: (optional) - wildcard for the files. Default: "*.js"
            skipHidden: (optional) - True to skip processing files and
                                                   directories with hidden attribute.
                                                   Default: true.



    Custom tags section(optional)

            Tags to be added to the list of custom tags, for every
            "documantable item" i.e. class, cfg, property, event.
             Custom tag list is accessible in XSLT-template and has two
              properties: title and value.

                name: (required) tag name. ex: "author" => "@author"
                title: (optional) title of custom tag
                format: (optional) pattern string used for formatting value

                Usage example:

                XML: <tag name="author" title="Author"/>
                JS:    /**
                          * @class MyClass
                          * @author I'm the
                          * author
                          */

                  XSLT:
                  <xsl:if test="customTags">
                    <b><xsl:value-of select="customTags/title"/></b> :
                    <xsl:value-of select="customTags/value"/>
                  </xsl:if>

                  Resulting HTML:
                  <b>Author</b>:I'm the author

        -->

    <sources>
        <!-- <source src="ext/source" match="*.js"/> -->
        <!--<source src="ext" match="Ext*.js"/>-->
        <!--<source src="sample.js" /> -->
        <source src="demo" match="*.js"/>
    </sources>
    <tags>
        <tag name="author" title="Author"/>
        <tag name="version" title="Version"/>
        <tag name="note" format="&lt;i&gt;NOTE: {0}&lt;/i&gt;"/>
        <tag name="demo" title="Demo" format="&lt;a href=&quot;{0}&quot;&gt;{0}&lt;/a&gt;" />        
    </tags>
</doc>

 

 

4.运行sample/ext-doc.bat。在output中生成了相关的doc文档。在web中运行index.html。效果如下:

 

 

注意:截至到ext-doc-1.0.131版本还不能自定义的js的编码,通过查看源码,只能使用系统默认编码,即在windows下需要将js文件的编码设置为gbK,但到发稿时,在svn上发现已经有相关修改,但是svn还是缺少几个文件不能正常编译。

需在web环境中才能正常查看doc。

 

本文中的实例工程打包下载:

http://dl.iteye.com/topics/download/7b8f74f5-28b6-37bf-a3b7-bd8bb6a00bf4

 

  • 大小: 11.4 KB
  • 大小: 62.3 KB
3
1
分享到:
评论
6 楼 云霄漫步 2014-02-21  
有没有chm格式的文件?
5 楼 gogo1217 2013-01-06  
javatozhang 写道
我把生成的文件放到tomcat下边,打不开呀?

我在我的机器上测试了下,没有任何问题,下载后直接运行的的sample/ext-doc.bat(mac机器直接修改文件类型为sh),运行后会在output中生成文件,将整个文件夹拷贝到tomcat的webapps,启动tomcat后,在地址栏输入http://localhost:8080/output/(如果没有修改端口号),就可以看到界面了
4 楼 javatozhang 2012-12-13  
我把生成的文件放到tomcat下边,打不开呀?
3 楼 vvgr 2012-11-23  
这个比toolkit生成出来的漂亮
2 楼 gogo1217 2012-10-12  
需要在web应用服务器中运行,不能直接使用浏览器打开index.html,
1 楼 Yakecan 2012-09-27  
啥情况 ,连下下来的demo里面的index都运行不起来

相关推荐

    js doc工具推荐及使用(二):ext-doc

    在JavaScript开发中,...配合“ext-doc-demo”示例,开发者可以快速掌握如何使用该工具,提升开发效率。在实际工作中,良好的文档是项目维护和协作的关键,因此掌握像ext-doc这样的工具是每个Ext JS开发者的必备技能。

    Ext-Desktop

    【Ext-Desktop】是一个基于ExtJS库开发的桌面应用程序框架,专为构建富客户端Web应用提供了一种桌面化的用户体验。ExtJS是一个强大的JavaScript库,它提供了丰富的组件模型和数据绑定功能,使得开发者能够构建功能...

    EXT文档 不下后悔.doc

    EXT文档主要涵盖了EXT组件的使用和EXT框架的基本结构与配置。EXT是一个强大的JavaScript库,用于构建富客户端Web应用程序。以下是对EXT文档中的关键知识点的详细解释: 1. **EXT组件和配置**: - `adapter`目录:...

    doc格式 ext EXT 中文手册

    - **EXT**: 一种用于构建Web应用程序的JavaScript框架,提供了丰富的用户界面组件和强大的工具集。 - **安装**: 安装过程涉及到将ZIP文件解压到指定目录,并确保所有必要的文件(如`ExtStart.html`, `ExtStart.js`, ...

    ext培训文档doc

    EXT,全称EXT JS,是一款基于JavaScript的开源前端框架,主要用来构建富互联网应用程序(Rich Internet Applications,简称RIA)。EXT的出现,极大地丰富了Web页面的交互性和用户体验,提供了丰富的组件库,使得...

    ext培训第二讲.doc

    - 将`ext-3.2.1\ext-all.js`与`ext-3.2.1\adapter\ext\ext-base.js`这两个JavaScript文件复制到`ext`文件夹中。 - 将`ext-3.2.1`下的整个`resources`文件夹也拷贝到`ext`文件夹下。 - **最终目录结构**:完成以上...

    ext2.2-API文档-jar-doc

    EXT2.2是一个先进的JavaScript库,专为构建富互联网应用程序(RIA)而设计。这个库在EXT2.0的基础上进行了大量的扩展和优化,引入了许多新功能,极大地提升了用户体验和开发效率。EXT2.2 API文档-jar-doc包含了关于...

    Ext2.0.2经典的一个JS组件带EXT中文手册.rar

    这个"Ext2.0.2经典的一个JS组件带EXT中文手册.rar"文件包含了该版本的ExtJS组件和相关的中文文档,帮助开发者更好地理解和使用这个框架。 1. **EXT中文手册**: 提供的`EXT 中文手册.doc`是ExtJS的中文文档,这...

    Ext4.1.0Doc_SUN.zip

    EXT4.1.0Doc_SUN.zip 是一个包含EXT4.1版本的文档API的压缩文件,对于想要深入理解和使用EXT框架,特别是EXT4.1版本的开发者来说,这是一个宝贵的资源。EXT是一个流行的JavaScript库,它专注于构建富互联网应用程序...

    Ext4.1.0 Doc中文版

    - "Ext4.1.0 Doc中文版"文档提供了详细的EXT4使用和管理指南,包括基本概念、操作命令、配置选项等,对初学者极具价值。 - Linux社区和开源论坛如StackExchange和GitHub上的讨论也是获取EXT4知识的重要来源。 ...

    EXT2.0,EXT4.0,JS

    EXT2.0、EXT4.0 和 JS 是计算机科学领域中的三个重要概念,它们分别代表了Linux文件系统、JavaScript编程语言以及JavaScript库EXT JS的相关版本。 EXT2.0是Linux操作系统下的一种文件系统,它是EXT(第二扩展文件...

    ext js 打包资源下载

    通过阅读`ext.doc`文档,你可以了解到如何初始化组件、创建布局、处理事件、使用数据绑定等核心概念,这对于学习和开发基于Ext JS的应用至关重要。 `ext-1.1.1`是Ext JS 1.1.1的核心库文件,包含了所有必要的...

    ext JS 源码和学习资料

    1. EXT_JS实用教程.doc:这可能是针对EXT JS初学者的教程,包含了EXT JS的基本概念、组件使用、布局设计等方面的内容,帮助初学者快速上手EXT JS开发。 2. EXT_JS实用开发指南_个人整理笔记.docx:这是一份个人整理...

    spket1.6.23+基于Ext-4.x的Myeclipse上安装指导

    SPket是一款强大的JavaScript IDE插件,它提供了对JavaScript库如Ext JS的支持,包括代码补全、错误检查和调试功能。 描述"目前最新版本的spket1.6.23+在基于Ext4.1的Myeclipse上安装spket指导"进一步确认我们要...

    Ext official doc - class-event-observer

    在IT行业中,`Ext`是一个广泛使用的JavaScript框架,主要用于构建富客户端Web应用程序。`Ext JS`是Sencha公司开发的一个组件化的、MVC模式的前端框架。`class-event-observer`是Ext框架中的一个核心概念,它涉及到...

    EXT最新使用手册

    ### EXT最新使用手册知识点概览 #### 1. EXT简介 - **定义**: EXT是一个功能强大的JavaScript库,用于构建交互式Web应用程序。它提供了一系列工具和API,使得开发者能够轻松地创建复杂的用户界面。 - **目标用户**:...

    GWT EXT 教程全集

    " Gwt-Ext学习笔记之基础篇.doc "、" Gwt-Ext学习笔记之中级篇.doc "、" Gwt-Ext学习笔记之进级篇.doc "这三份文档,按照从基础到进阶的顺序,系统地介绍了EXT-GWT的使用技巧和实践案例。基础篇可能涵盖EXT-GWT的...

    ext-js.4.2.1集成三大框架版本

    ext-js4.2.1去掉了其中的doc和example实例,可以直接和struts、spring集成

Global site tag (gtag.js) - Google Analytics