JS文檔和Demo自動化生成工具 - SmartDoc發佈

  曾幾什麼時候,當你碼神附體,一路披荊斬棘的完成代碼後,帶着「一碼在手,天下我有」的傲然環顧之時,卻發現單元測試、API文檔、Demo實例陸續向你砸來,頓時有木有一種冰水挑戰後的感受。而這時你應該:喲喲,快使用SmartDoccss

  SmartDoc, 一個基於NodeJS的自動化文檔生成工具,她擁有明眸的雙眼(yuidoc引擎),華麗的外衣(bootstrap 3風格),靈巧的雙手(demo生成,codemirror代碼編輯,jasmine接口兼容);擁有她,相信你必定會仰天長嘯:"小夥伴們不再用擔憂個人API了。「html

  最近有很多朋友問我SmartJS的一些API,我使用YUIDoc和bootstrap2的那個主題所有整理了一遍,但發現只有API沒有具體例子也比較難懂,並且沒有幾我的會看單元測試。遂起念,將文檔、單元測試、demo整合提供完整的生成方案,這就有了SmartDoc。jquery

  

SmartDoc 0.1.0 新鮮上架

  具備如下特色:git

 * 基於Bootstrp3構建,排版和樣式美化 * 支持html和js的Demo生成,與查看 * 提供在線的demo編輯頁面(相似於jsfiddler) * 同步jasmine的expect接口,使得單元測試與example的代碼可以複用 * 能夠配置化加強 - 項目信息配置;Document頁面導航配置;demo依賴庫配置 * 提供全局api查詢和導航過濾功能,篩選更加便利 * 提供grunt插件 - grunt-contrib-smartdoc

界面講解


 

 

全局過濾


經過右側全局過濾,能夠快速檢索全部的API,點擊能夠跳轉到API頁面並定位到對於的位置;支持全鍵盤操做github




源代碼展現

點擊代碼位置的連接,就能夠進入源代碼展現頁面


npm


Example演示頁面


 

點擊Example區域的Edit Code按鈕開啓代碼編輯頁面,以下:



頁面中有HTML和Code兩個編輯區域和結果的展現區域,代碼編輯器使用codemirror,sublime風格,支持智能感知,能夠經過配置項來引入樣式和腳本庫。

提供log和expect公共方法;

  log:在結果區輸出日誌信息

  expect :兼容jasmine的expect方法

json

在example區域中寫入html代碼時,使用<html>html代碼</html>和<script>js代碼<script>的格式錄入便可;bootstrap

注1:代碼編輯頁面必須須要服務器環境才能正常運行,本地文件方式只能使用view demo頁面查看結果;api


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地址

相關文章
相關標籤/搜索