国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

JSDuck用法詳解

xiaochao / 1848人閱讀

摘要:語法父類名表示當(dāng)前類繼承于哪個類的標(biāo)簽。成員標(biāo)簽成員標(biāo)簽作用于類中的配置屬性函數(shù)事件。表明可被子類繼承,和一起使用。示例獲取圓的面積圓的半徑面積值作用于函數(shù),表明函數(shù)的標(biāo)簽。作用于函數(shù),表明構(gòu)造函數(shù)參數(shù)的標(biāo)簽,用法同。

字?jǐn)?shù):3692字

閱讀時間:15分鐘

前言

? 首先,咱們有一個前提,JSDuck對我們而言只是一個便于API查看的文檔化工具。因此,只要它能夠滿足我們文檔化的所有需求,并且優(yōu)雅地顯示出來就足夠了。所以,這篇文章旨在告訴大家,在日常工作中,我們?nèi)绾问褂眠@個工具,至于里面的實現(xiàn)原理、編程思想或者自定義標(biāo)簽等咱一概不講。

? 如果是之前完全沒有接觸過JSDuck或者機(jī)器上沒有JSDuck環(huán)境,建議可以先花5分鐘看一下筆者的另一篇文章 五分鐘玩轉(zhuǎn)文檔化工具JSDuck??梢韵葘h(huán)境搭建起來,對JSDuck也有一個可視化的認(rèn)識。

? 接下來,筆者將從基本概念、標(biāo)簽、工具使用三個方面,和你一起認(rèn)識認(rèn)識JSDuck文檔化工具。

? 提別標(biāo)明一下,文章所有講述的內(nèi)容都是基于當(dāng)前最新的版本JSDuck5

1.基本概念

? JSDuck將代碼組成分為兩大部分:類和類中成員。其中,成員又分為配置、屬性、函數(shù)、事件、文檔樣式幾個部分。因此,使用JSDuck有一個基礎(chǔ)——我們的代碼都是以面向?qū)ο蟮姆绞骄帉懙摹?/p>

? 其次,JSDuck的數(shù)據(jù)類型包括JS原始類型、JS內(nèi)嵌類型和DOM類型三大類型。

? JS原始類型:

? boolean:布爾類型

? number:數(shù)值類型

? string:字符串類型

? void:無返回值

? undefine:未定義

? JS內(nèi)嵌類型:

? Number:數(shù)值類型

? String:數(shù)值類型

? Boolean:布爾類型

? Object:對象

? Array:數(shù)組類型

? Date:日期類型

? Function:函數(shù)類型

? Arguments:函數(shù)參數(shù)

? Error:錯誤類型

? Regex:正則對象

? null:空值

? DOM類型:

? HTMLElement:html節(jié)點類型

? XMLElement:xml節(jié)點類型

? NodeList:DOM節(jié)點集合類型

? TextNode:DOM文本節(jié)點類型

? CSSStyleSheet:樣式表對象

? CSSStyleRule:樣式規(guī)則對象

? Event:DOM事件類型

? 這些數(shù)據(jù)類型都是JSDuck默認(rèn)支持的數(shù)據(jù)類型,它們都是我們在寫代碼文檔時可以直接使用的數(shù)據(jù)類型。此外,JSDuck還支持我們自定義數(shù)據(jù)類型,不過絕大多數(shù)情況下,這些數(shù)據(jù)類型已經(jīng)足夠我們使用了。

2.標(biāo)簽

? JSDuck擁有超級豐富的標(biāo)簽,這也正是它功能強(qiáng)大的體現(xiàn)之一。其實學(xué)習(xí)這個工具的80%的學(xué)習(xí)成本都在標(biāo)簽的學(xué)習(xí)上,也就是說弄清楚了這些標(biāo)簽,那我們基本上就掌握了這門工具了。而且,其實在我們學(xué)習(xí)這些標(biāo)簽時,不僅是了解他們的用法,我們更多的是學(xué)習(xí)到這些標(biāo)簽背后的代碼規(guī)范、設(shè)計思路和編程思想。廢話不多說了,咱就開始JSDuck標(biāo)簽的學(xué)習(xí)吧!

? JSDuck一共有55個標(biāo)簽,去除廢棄的和基本不用的標(biāo)簽,還有39個。其中,通用標(biāo)簽9個,類標(biāo)簽9個,成員標(biāo)簽15個,其他標(biāo)簽6個?,F(xiàn)在我們需要學(xué)習(xí)的僅僅就是這不到40個標(biāo)簽,而且,這40個里面有一半的標(biāo)簽使用頻率很低。所以,實質(zhì)上,我們掌握20個常用標(biāo)簽就能滿足我們絕大部分的需求了。那么,下面我們就一起來看看這些標(biāo)簽的用法吧!

通用標(biāo)簽

通用標(biāo)簽作用于所有代碼。

@author

示例:
/**
* @class MyClass
* My neat class.
* @author John Doe 
*/

表示代碼作者的標(biāo)簽。

@docauthor

示例:
/**
* @class MyClass
* My neat class.
* @author John Doe 
* @docauthor Tom 
*/

表示文檔作者的標(biāo)簽,一般情況下和代碼作者一致,如果不一致時,才會使用的標(biāo)簽。

@example

示例:
/**
*     
*    @example
*    var pMyClass = new MyClass();
*
* @class MyClass
* My neat class.
* @author John Doe 
*/

文檔示例,使用 @example 標(biāo)簽時注意要上下都至少空一行并且空四個。這里也可使用markdown語法代替使用。

樣例還有一種用法,通過命令參數(shù) --examples 配置示例文件目錄,以頁面的形式查看示例。

@link

示例:
/**
* 展示非阻擋式消息框,阻擋式彈出框見{@link GM.Alert#show GM.Alert}
* @method show
* @param strMessage
*/

內(nèi)部鏈接標(biāo)簽,可以鏈接到文檔其他位置。

@static

表明類或成員為靜態(tài)的標(biāo)簽。

@since、@experimental 、@depercated@new

四個標(biāo)簽用法一樣,分別表示:代碼版本之后無效標(biāo)簽、實驗性代碼標(biāo)簽、暫用代碼標(biāo)簽、新增代碼標(biāo)簽。

類標(biāo)簽

類標(biāo)簽只作用于類。

@class

語法:
@class 類名

表示類的標(biāo)簽。

@extends

語法:
@extends 父類名

表示當(dāng)前類繼承于哪個類的標(biāo)簽。

@alias@alternateClassName

分別表示類的別名標(biāo)簽、類的說明標(biāo)簽。

@abstract

表明抽象類的標(biāo)簽。

@requires

示例:
/**
* @class TestClass
* @requires TestClass3
* @requires TestClass4
*/

表明當(dāng)前類依賴的類,可以有多個依賴類。

@uses

表明當(dāng)前類使用了那些類,可以有多個。

@mixins

表明多態(tài)類標(biāo)簽,當(dāng)前類中混合了其他類的成員。

@singleton

表明當(dāng)前類為單例模式類。

成員標(biāo)簽

成員標(biāo)簽作用于類中的配置、屬性、函數(shù)、事件。

@member

語法:
@member 類名

表明當(dāng)前成員屬于哪一個類,如果代碼中該成員已經(jīng)屬于某個類,則會自動分析出來,不需要添加該標(biāo)記。

@private、@protected

分別表明當(dāng)前成員是私有成員和受保護(hù)成員的標(biāo)簽。

@hide

文檔中,子類不需要展示出來的其父類的成員標(biāo)簽。

@inheritable

表明可被子類繼承,和@static一起使用。

@removed

表明成員已經(jīng)被刪除標(biāo)簽。

@method

示例:
/**
* @method area
* 獲取圓的面積
* @param {Number} r 圓的半徑
* @return {Number} 面積值
*/

作用于函數(shù),表明函數(shù)的標(biāo)簽。

@param

語法:
@param name
@param {Type} name
@param {Type} [name]
@param {Type} [name="default-value"]
@param {Type} name.subproperty

作用于函數(shù),表明函數(shù)參數(shù)的標(biāo)簽。

@constructor

作用于函數(shù),表明函數(shù)是類的構(gòu)造函數(shù)的標(biāo)簽。

@cfg

作用于函數(shù),表明構(gòu)造函數(shù)參數(shù)的標(biāo)簽,用法同 @param。

@return

語法:
@return {Type} 返回說明
@return {Type} return.subproperty

作用于函數(shù),表明函數(shù)返回值標(biāo)簽,沒有返回值就不需要添加該標(biāo)簽。

@abstract

作用于函數(shù),表明函數(shù)是抽象函數(shù)的標(biāo)簽。

@chainable

作用于函數(shù),表明函數(shù)是鏈?zhǔn)胶瘮?shù)的標(biāo)簽。如果代碼中直接返回this,則工具會自動識別為鏈?zhǔn)胶瘮?shù)。

@throws

語法
@throws 錯誤描述
@throws {Type} 錯誤描述

作用于函數(shù),表明函數(shù)報錯時拋出的異常標(biāo)簽,可以添加多個標(biāo)簽表明多個異常,錯誤類型默認(rèn)是 object 類型。

@fires

語法:
@fires eventName

作用于函數(shù),表明當(dāng)前函數(shù)會觸發(fā)哪個事件的標(biāo)簽。

其他標(biāo)簽

其他標(biāo)簽作用于一些特殊代碼。

@event

語法:
@event name 事件描述

作用于事件,描述事件的標(biāo)簽。

@preventable

作用于事件,表明事件觸發(fā)函數(shù)中,返回false就可以停止冒泡的標(biāo)簽。

@enum

語法:
@enum
@enum {Type}
@enum {Type} EnumName
@enum [EnumName=alias.*]

示例:
/** @enum */
MyEnum = {
 /** the first enum value */
 FIRST: "foo",
 /** the second enum value */
 SECOND: "bar"
};

表明枚舉的標(biāo)簽。

@property

作用于類中屬性,用法同 @param ,描述屬性的標(biāo)簽。

@readonly

作用于類中屬性,表明屬性是只讀的標(biāo)簽。

@aside

語法:
@aside guide 
@aside video 
@aside example 

作用于類,表明向?qū)У臉?biāo)簽。

3.工具使用

? 上面講述了一堆JSDuck的概念和各種標(biāo)簽,那都是在約束我們?nèi)绾尉帉懘a和相應(yīng)的注釋。那在這個基礎(chǔ)上,我們該如何使用這個工具呢?

? JSDuck工具使用起來其實非常簡單,就是幾個簡單的cmd命令就可以了。如下圖所示,就是JSDuck的所有命令,一頁就可以顯示完全,并且我們常用的命令不到10個。

?

部分命令參數(shù)如下:

參數(shù) 含義
-- 或 空 需要生成文檔的文件或者目錄,也可以是一個集合
--output 文檔存放的目錄
--config 配置文件路徑
--encoding 文檔編碼方式
--exclude 不生成文檔的目錄或文件,可以是一個集合
--title 文檔標(biāo)題
--footer 文檔標(biāo)尾
--head-html 文檔頁面的head中需要添加的內(nèi)容
--body-html 文檔頁面的body中需要添加的內(nèi)容
--css 額外添加的樣式?
--welcome 歡迎頁面
--guides 向?qū)渲?/td>
--examples 示例配置
--categories 分類配置
--images 圖片路徑配置
--tags 自定義標(biāo)簽
--examples-base-url 示例文件的基礎(chǔ)路徑
--help 查看命令幫助
--version 查看當(dāng)前版本

? 這里要注意一點,JSDuck所有的參數(shù)都需要添加兩個 “-”。例如,最常用的命令就是 :

? jsduck "G: est-jsduck est.js" --output=G: est-jsduckdoc

? 這條命令的意思就是將文件 G:test-jsducktest.js 中的代碼生成文檔,然后存放到目錄 G:test-jsduckdoc 下。這是最簡單的一條命令,這個命令之后可以添加上面列出的任何參數(shù)。但是每次我們都去敲一堆命令行來執(zhí)行工具確實有點繁瑣,下面我們一起試試更便捷的方法吧!

? JSDuck是支持使用配置文件來執(zhí)行命令的,我們只需要在執(zhí)行cmd的目錄下創(chuàng)建一個名為 jsduck.json 的文件,將所有的配置都寫到這個配置文件里面,然后直接執(zhí)行 jsduck 命令就行了。下面我們貼出一個標(biāo)準(zhǔn)的配置文件看看:

{
    "--title": "XXX文檔",
    "--welcome": "welcome.html",
    "--warnings": ["-link", "-no_doc"],
    "--seo": true,
    "--": [
        "./common/js",
        "./custom",
        "./libs/angular/custom"
    ],
    "--output": "./docs",
    "--examples-base-url": "./examples",
    "--examples": "./examples.json",
    "--body-html": [
        ""
    ],
    "--tags":["tags/my_custom_tag.rb"]
}

? 如果想省事情,可以直接把這段配置拷貝過去,按照自己的實際環(huán)境設(shè)置一下屬性,就可以直接使用了。下面,我們一起來解讀一下這段配置的含義。

"--title": "XXX文檔",

配置文檔在瀏覽器中顯示的標(biāo)簽名稱和頁面的標(biāo)題名稱為 “XXX文檔”。

"--welcome": "welcome.html",

配置文檔歡迎頁面的路徑為“welcome.html”,這里配置的是相對當(dāng)前運(yùn)行命令的路徑。

"--warnings": ["-link", "-no_doc"],

配置生成文檔時,遇到未知的連接或缺失文檔的代碼時,不生成警告日志。參數(shù)值里面,“-”表示

關(guān)閉警告,“+”表示打開警告,查看詳細(xì)警告信息可以鍵入jsduck --help=warings

"--seo": true,

配置生成文檔時,進(jìn)行SEO優(yōu)化。

"--": [
        "./common/js",
        "./custom",
        "./libs/angular/custom"
    ],

配置需要生成文檔的內(nèi)容,這里我配置了一個集合,里面包含了三個目錄,這三個目錄下所有的文件都會被掃描并生成文檔。這里,我們也可以配置到具體的一個文件。

"--output": "./docs",

配置生成的文檔文件的保存目錄為當(dāng)前目錄下的 docs 文件夾。

"--examples-base-url": "./examples",

配置生成的文檔中示例的基準(zhǔn)目錄為當(dāng)前目錄下的 examples文件夾,文檔中需要使用的示例文件都以這個目錄為基礎(chǔ)路徑。

"--examples": "./examples.json",

配置示例文件路徑為當(dāng)前目錄下名為 examples.json 的文件,文件內(nèi)容如下:

[
   {
       "title": "Combination Examples",
       "items": [
           {
               "name": "feed-viewer",
               "title": "Feed Viewer",
               "description": "RSS feed reader example application.",
               "url": "feed-viewer.html",
               "icon": "G:/codeWorkSpace/idea/static-resources/src/main/webapp/custom/frame/frame2/img/user.png",
               "status": "updated"
           },
           {
               "name": "web-desktop",
               "text": "Web Desktop",
               "description": "A desktop in the browser using Ext components.",
               "url": "http://www.example.com/desktop.html",
               "icon": "/../../custom/frame/frame2/img/user.png",
               "status": "updated"
           }
       ]
   }
]

其中,url如果是相對路徑,就是相對 "--examples-base-url" 中配置的路徑

"--body-html": [
    ""
],

配置生成的文檔頁面中,body內(nèi)需要添加的額外內(nèi)容,頁面元素表現(xiàn)如下圖所示:

這里我是配置了一個版本列表的下拉菜單,里面包含了這個文檔的1.0、2.0、3.0版本的鏈接。

"--tags":["tags/my_custom_tag.rb"]

配置自定義標(biāo)簽,我們這里是配置了一個ruby代碼文件路徑,自定義了一種標(biāo)識成員為內(nèi)部成員的標(biāo)簽。這里就需要我們具備一點ruby的知識了,該文件代碼如下:

require "jsduck/tag/boolean_tag"

class Inner < JsDuck::Tag::BooleanTag
  def initialize
    @pattern = "inner"
    @signature = {:long => "inner", :short => "in"}
    super
  end
end

這就是一個自定義一個布爾類型的簡單標(biāo)簽的示例代碼。還有許多更復(fù)雜的標(biāo)簽定義方式,但是好在JSDuck提供的標(biāo)簽已經(jīng)相當(dāng)豐富了,絕大多數(shù)情況下,我們是不需要自定義標(biāo)簽的。

? 至此,JSDuck的基本用法就已經(jīng)全部介紹完畢啦!到這里的大家也已經(jīng)擁有獨立使用JSDuck所需的所有知識儲備了,接下來我們?nèi)钡闹挥袑崙?zhàn)了。下一篇文章,筆者將和大伙一起實戰(zhàn)一把,探討一下怎樣才是使用JSDuck的正確姿勢。

? 馬上回來,敬請期待哦!

? 除了該文章以外,筆者還特制了一份思維導(dǎo)圖,以作飯后甜點食用: 一張圖之——JSDuck 。

歡迎關(guān)注我的微信公眾號:

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/90723.html

相關(guān)文章

  • JSDuck實戰(zhàn)

    摘要:我們先聲明了類,在類的注釋上添加標(biāo)簽表示靜態(tài)類。靜態(tài)類中包含一個方法,實現(xiàn)了一個簡單的擴(kuò)展功能,后面類的繼承需要用到這個接口。這里需要注意,靜態(tài)類中,所有的成員也都是靜態(tài)的。 字?jǐn)?shù):2543 閱讀時間:15分鐘 前言 ? 上一篇文章我們講述了JSDuck的詳細(xì)用法。那么,本文筆者就以實例為基礎(chǔ),和大家一起,從零開始,搭建一個簡單的API文檔——我們的第一個API文檔V0.0.1。...

    kel 評論0 收藏0
  • 五分鐘玩轉(zhuǎn)文檔化工具JSDuck

    摘要:我們在對現(xiàn)在較主流的五個文檔工具分別作了調(diào)研和嘗試,得到結(jié)論如下工具優(yōu)點缺點提供了完整的模板開發(fā)事件觸發(fā)等接口,使用非常靈活。至此,的環(huán)境部署已經(jīng)全部完成了。 字?jǐn)?shù):981 閱讀時間:5分鐘 選型依據(jù) ? 在經(jīng)歷了數(shù)個上線的項目之后,筆者所在的團(tuán)隊已經(jīng)沉淀了一個相對穩(wěn)定版本的前端框架。因此,我們需要出具一套框架API文檔,以便公司其他成員的使用和框架的后期維護(hù)。我們在對...

    rickchen 評論0 收藏0
  • Javascript自動化文檔工具:YUI Doc, JSDoc 3, JSDuck等比較

    摘要:本文比較了種較為主流的注釋文檔生成工具。應(yīng)該說是非常適合開源項目多個作者共同維護(hù)的一個文檔工具。最后我選擇了作為文檔生成的工具。為了支持多種語言,它僅對注釋塊內(nèi)部的內(nèi)容進(jìn)行解析。 最近隨著寫Node以及獨立的CommonJS模塊越來越多,我發(fā)現(xiàn)有一份好的文檔不僅可以幫助自己在應(yīng)用這些接口的時候不至于迷糊,而且對于共同開發(fā)的情況下,能夠省去大量團(tuán)隊的交流和Debug的時間。 本文比較了...

    tyheist 評論0 收藏0
  • Jsduck的使用

    摘要:簡介是眾多開源項目中的一個,它是使用編寫的文檔生成器。系統(tǒng)環(huán)境變量,對所有用戶起作用。使用可通過配置,也可通過直接在命令行寫參數(shù)來使用。配置進(jìn)入項目目錄,配置文件,類似以下的寫法運(yùn)行命令,即可在文件夾下找到自動生成的文檔。 簡介 jsduck是senchalabs眾多開源項目中的一個,它是使用ruby編寫的 javascript API文檔生成器。不像JSDoc一樣,不按照符合JSDo...

    alaege 評論0 收藏0
  • JSDuck 與 AngularJS 融合技巧

    摘要:融合思路解決這個問題,有兩種思路。給我們帶來了以下新成員模塊服務(wù)指令篩選器和控制器。與其他類是通過類的名稱區(qū)分的,名稱統(tǒng)一以結(jié)尾。這種處理方式是一種折中方案,如果想要更加規(guī)范優(yōu)雅的話,建議使用自定義標(biāo)簽來解決。 字?jǐn)?shù):1568 閱讀時間:10分鐘 前言 ??前面,我們以一個實戰(zhàn)案例來詳細(xì)說明了如何在實際開發(fā)中使用JSDuck工具。但是,并不是所有的時候,代碼的封裝方式都受我們控制的。...

    CarterLi 評論0 收藏0

發(fā)表評論

0條評論

xiaochao

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<