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,参照这个链接http://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渲染你的文档,最终的效果看这个链接 http://killme2008.github.com/clojure-control    
    autodoc和marginalia都支持maven,具体使用请看他们的文档。

文章转自庄周梦蝶  ,原文发布时间 2012-03-21

时间: 2024-09-21 08:07:59

Clojure世界:API文档生成的相关文章

RESTful API 文档生成神器 WisdomTool REST Client

Wisdom Tool REST Clientsupports automated testing and automatically generating RESTful API document based on history cases. Wisdom Tool REST Client可以自动化测试RESTful API 接口,同时,基于测试过的历史数据,可以自动生成API文档. 工具地址: https://github.com/wisdomtool/rest-client

给 Web 开发人员推荐的文档生成工具

工欲善其事必先利其器,在此给 Web 开发人员推荐几款优秀的开源文档生成工具,希望能对大家有所帮助. 1.JavaScript JSDoc 3 这是一款根据 Javascript 文件中注释信息,生成 JavaScript 应用.库.模块的 API 文档的工具.你可以使用它记录如:命名空间.类.方法.方法参数等.该项目还衍生出了许多模板和其他工具来帮助生成和自定义文档,比如: 模板 jaguarjs-jsdoc DocStrap (example) jsdoc3Template (example

YUIDoc example代码高亮错误、生成API文档目录不按源文件注释顺序

1.如果发现yuidoc命令用不了,那就重装nodejs吧    昨天不知道是清扫电脑的原因,yuidoc命令用不了(命令不存在),也没有找到好的解决方法,怒重装YUIDoc也不行.最后想了想,怒重装了nodejs,再装回YUIDoc,发现又可以了,原因还没找到. 2.YUIDoc的theme中的simple模板,sidebar.handlebar有写错.    里面属性遍历的properties被写成了events 3.YUIDoc example代码高亮错误的解决方法   使用过YUIDoc

.Net魔法堂:提取注释生成API文档

一.前言   在多人协作的项目中,除了良好的代码规范外,完整的API文档也相当重要.通过文档我们快速了解系统各模块的实际接口,及其使用场景.使用示例,一定程度上降低沟通成本,和减少后期维护中知识遗失等风险.   对于.Net,我们可以直接将类.方法等的注释直接转为API文档,极大地减少文档维护的工作量,同时也能反向提高大家的注释质量.   下面我们使用.Net唯一的注释生成API文档工具--Sandcastle和Sandcastle Help File Builder来实现API文档自动化吧!

基于PHP与XML的PDF文档生成技术

xml 摘要 本论文简要介绍了PHP.XML.PDF等技术的原理以及它们的应用情况.力图运用PHP面向对象的特性,构建出一套基于PHP和XML的在线PDF文档生成系统.文中详细探讨了整个系统的组成部分以及各自的实现过程.并在最后给出一个运用这套系统实现的动态创建报表的实例. AbstractThis article introduced the fundamentls of PHP,XML and PDF and their application situation at present,ex

Python文档生成工具pydoc使用介绍

  这篇文章主要介绍了Python文档生成工具pydoc使用介绍,本文讲解了基本用法.获取帮助的方法.生成的文档效果图等内容,需要的朋友可以参考下 在Python中有很多很好的工具来生成字符串文档(docstring),比如说: epydoc.doxygen.sphinx,但始终觉得pydoc还是不错的工具,用法非常简单,功能也算不错,本文主要介绍pydoc. pydoc是Python自带的模块,主要用于从python模块中自动生成文档,这些文档可以基于文本呈现的.也可以生成WEB 页面的,还可

.NET平台开源项目速览(4).NET文档生成工具ADB及使用

原文:.NET平台开源项目速览(4).NET文档生成工具ADB及使用     很久以前就使用ADB这个工具来生成项目的帮助文档.功能强大,在学习一些开源项目的过程中,官方没有提供CHM帮助文档,所以为了快速的了解项目结构和注释.就生成文档来自己看,非常好用.这也是一个学习方法吧.例如本文在: .NET平台开源项目速览(2)Compare .NET Objects对象比较组件 .NET平台开源项目速览(3)小巧轻量级NoSQL文件数据库LiteDB 上述2篇文章中最后的资源中就手动制作了CHM帮助

如何制作中文API文档

问题描述 现在大多数API文档制作工具生成的都是英文的,头说要叫制作一个目录就能是中文的,最好每个接口还可以添加示例的.百度了很久都没有找到能制作中文API文档的,所以来求助了.难道我看的那些中文API都是手动翻译的吗?另说一句,要的是能支持C#的. 解决方案 解决方案二:只有英文的,没有中文的,中文的要自己写,不是导出了事解决方案三:就是还是要自己写中文是吧,那有什么能写中文的工具呢?解决方案四:引用1楼starfd的回复: 只有英文的,没有中文的,中文的要自己写,不是导出了事 那有什么写中文

[置顶].NET平台开源项目速览(4).NET文档生成工具ADB及使用

    很久以前就使用ADB这个工具来生成项目的帮助文档.功能强大,在学习一些开源项目的过程中,官方没有提供CHM帮助文档,所以为了快速的了解项目结构和注释.就生成文档来自己看,非常好用.这也是一个学习方法吧.例如本文在: .NET平台开源项目速览(2)Compare .NET Objects对象比较组件 .NET平台开源项目速览(3)小巧轻量级NoSQL文件数据库LiteDB 上述2篇文章中最后的资源中就手动制作了CHM帮助文档.有时候我们还可以对源码进行翻译,再制作,效果还不错.今天介绍的A