閱讀315 返回首頁    go 汽車大全


Clojure世界:API文檔生成

    繼續Clojure世界之旅,介紹下我今天的探索成果,使用clojure生成clojure項目的API文檔。在java裏,我們是利用javadoc生成API文檔,各種build工具都提供了集成,例如maven和ant都提供了javadoc插件或者task。在Clojure世界裏,同樣有一係列工具幫助你從源碼中自動化生成API文檔。今天主要介紹三個工具。不過我不會介紹怎麼在clojure裏寫doc,具體怎麼做請看一些開源項目,或者直接看clojure.core的源碼。

    首先是codox,使用相當簡單,我們這裏都假設你使用Leiningen作為構建工具,在project.clj裏添加codox依賴:
  :dev-dependencies    [[codox "0.5.0"]]

    解下執行lein doc命令即可生成文檔,生成的文檔放在doc目錄,在瀏覽器裏打開index.html即可觀察生成的文檔。我給clojure-control生成的codox文檔可以看這個鏈接,效果還是不錯的。

    第二個要介紹的工具是marginalia,使用方法類似codox,首先還是添加依賴:
:dev-dependencies [lein-marginalia "0.7.0"]
   
    執行lein deps處理依賴關係,然後執行lein marg命令即可在docs目錄生成文檔,與codox不同的是marginalia隻生成一個html文件,沒有帶js和css,但是效果也不錯,可以看我給clojure-control生成的marg文檔鏈接marginalia生成的文檔說明和源碼左右對照,很利於閱讀源碼。

   最後要介紹的就是Clojure.org自己在使用的autodoc,如果你喜歡clojure.org上的API文檔格式可以采用這個工具。並且autodoc可以跟github pages結合起來,生成完整的項目文檔並展示在github上。例如以clojure-control為例來介紹整個過程。首先你需要配置你的github pages,參照這個鏈接
https://pages.github.com/

    第一步,仍然是在project.clj添加依賴:
:dev-dependencies [[lein-autodoc "0.9.0"]]
       第二步,在你的.gitignore裏忽略autodoc目錄:
autodoc/**
       將這些更改提交到github上,接下來在你的項目目錄clone一份項目源碼到<project>/autodoc目錄:
 git clone git@github.com:<user name>/<project name>.git autodoc
       進入autodoc目錄,執行下列命令創建一個gh-pages分支:
 $ cd autodoc
 $ git symbolic-ref HEAD refs/heads/gh-pages
 $ rm .git/index
 $ git clean -fdx
 $ cd ..
     回到項目根目錄後,執行lein autodoc命令在autodoc目錄生成文檔:
lein autodoc
     接下來將生成的文檔推送到github分支上:
 $cd autodoc 
 $ git add -A
 $ git commit -m"Documentation update"
 $ git push origin gh-pages

    等上幾分鍾,讓github渲染你的文檔,最終的效果看這個鏈接 https://killme2008.github.com/clojure-control     
    autodoc和marginalia都支持maven,具體使用請看他們的文檔。

文章轉自莊周夢蝶  ,原文發布時間

最後更新:2017-05-18 20:36:21

  上一篇:go  《Netty 實戰》Netty In Action中文版 第2章——你的第一款Netty應用程序(三)
  下一篇:go  《Netty 實戰》Netty In Action中文版 第2章——你的第一款Netty應用程序(二)