首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Objective-C文档生成器: HeaderDoc vs. vs.

Objective-C文档生成器: HeaderDoc vs. vs.
EN

Stack Overflow用户
提问于 2012-04-11 23:52:14
回答 3查看 19.8K关注 0票数 74

我需要为我的工作场所实现一个文档生成解决方案,并已将其缩小到标题中提到的三个解决方案。在这些解决方案之间的正式比较中,我能够找到的信息很少,我希望那些在以上一个或多个解决方案中具有经验的人可以参与其中:

以下是我从第一次传递中收集到的信息:

HeaderDoc优点:与苹果现有的文档一致,与制作苹果文档集兼容

HeaderDoc缺点:很难修改行为,项目没有积极地工作,许多人已经离开了它(这意味着一定有什么缺陷,尽管我不能量化)。

Doxygen :活跃的支持社区b/c的广泛使用基础,非常可定制,大多数输出类型(如latex等)

Doxygen Cons:需要努力使其外观/行为与苹果文档一致,与苹果文档集的兼容性并不是那么简单

AppleDoc优点:看起来与苹果现有的文档一致,与制作苹果文档集兼容,

AppleDoc缺点:正在积极开发的类型定义、枚举和函数的文档问题

这听起来准确吗?我们想要的解决方案将具有:

  • 与苹果objective-c类classes)
  • Ability保持一致的外观和感觉-单击Xcode内的文档参考,然后链接到文档(就像苹果的类一样)
  • 智能处理类别、扩展等(甚至自定义类别的苹果的Xcode来创建我们自己的参考页面(如此页面:加载…这可以包括图像,并且可以从生成的类引用无缝链接,就像apple的UIViewController类引用如何链接到链接的页面一样。
  • 易于运行命令行命令,这些命令可以集成到build
  • 处理非常大的代码库

根据上面的所有信息,上述解决方案中是否有明显优于其他解决方案的?如有任何建议或信息可供补充,我们将不胜感激。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-04-13 02:41:15

作为doxygen的创建者和首席开发人员,让我也提供我的观点

(显然也有偏见;-)

如果你正在寻找一个100%忠实于苹果文档风格的复制品,那么在这方面,AppleDoc是一个更好的选择。使用doxygen你将很难获得完全相同的外观,所以我不建议尝试。

关于Xcode文档集;苹果向instructions提供了如何使用doxygen设置文档集(在Xcode3发布时编写)。对于Xcode4,还有一个如何集成doxygen的nice guide

从1.8.0版本开始,doxygen支持Markdown markup,以及大量额外的markup命令。

使用doxygen,您可以在主页(@mainpage)和子页面(使用@subpage或@ page )上包含文档。在页面内部,您可以创建部分和子部分。事实上,doxygen的用户手册完全是使用doxygen编写的。除此之外,您还可以将类或函数分组在一起(使用@defgroup和@ingroup),并在类内部创建自定义部分(使用@name)。

Doxygen使用配置文件作为输入。您可以使用doxygen -g生成具有默认值的模板,也可以使用graphical editor创建和编辑模板。您还可以使用doxygen -通过脚本通过doxygen传递选项(有关示例,请参阅FAQ的问题17 )

Doxygen并不局限于Objective-C,它支持多种语言,包括C、C++和Java。Doxygen也不局限于Mac平台,例如,它也可以在Windows和Linux上运行。pages的输出不仅支持HTML;您还可以生成PDF输出(通过LaTeX)或RTF和手册页。

Doxygen还超越了纯文档;doxygen可以从源代码创建各种图形和图表(请参阅与dot相关的选项)。Doxygen还可以创建代码的可浏览和语法突出显示版本,并将其与文档交叉引用(请参阅source browser相关选项)。

Doxygen对于中小型项目来说是非常快的(图的生成速度可能会很慢,但现在是在多个CPU核心上并行运行,一次运行的图形会在下一次运行中重用)。对于非常大的项目(例如数百万行代码),doxygen允许将项目分成多个部分,然后可以将这些部分链接在一起,就像我解释的here一样。

将doxygen用于Objective-C的一个很好的真实示例可以在here中找到。

doxygen的开发高度依赖于用户的反馈。我们有一个用于提问和讨论的活动mailing list,以及一个用于bugs和功能请求的bug tracker

doxygen的大多数用户将其用于C和C++代码,因此这些语言自然拥有最成熟的支持,并且输出更适合这些语言的功能和需求。也就是说,其他语言的愿望和问题也得到了认真的对待。

请注意,我几乎所有的doxygen开发和大多数测试都是我自己在Mac上做的。

票数 90
EN

Stack Overflow用户

发布于 2012-04-12 20:32:43

我是appledoc的作者,所以这个答案可能是有偏见的:)我尝试了所有提到的生成器(甚至更多),但感到沮丧,因为没有一个产生我想要的结果(与您的目标相似)。

根据你的观点(我只提到appledoc和doxygen,我不太记得headerdoc ):

doxygen doxygen一致的外观: appledoc开箱即用,其他需要调整css,但可能是文档集的doable.

  • Generation (用于Xcode参考):appledoc完全支持可搜索和选项可点击的开箱即用文档,
  1. 生成xml和makefile,您需要调用它们。另外,appledoc支持box.
  2. Categories:外的published docsets,appledoc允许你merge categories到已知的类,或者让它们分开,基础和其他苹果类的类别在index file中单独列出。
  3. 自定义参考页面:使用supports或自定义html,doxygen:您可以在主页中包含自定义文档,不知道是否可以包含更多页面。
  4. easy命令行:取决于您如何看待它: appledoc可以通过命令行开关接受所有参数(但也支持可选的全局和项目设置plist文件),因此它应该很容易与构建脚本集成。doxygen需要使用配置文件来设置所有parameters.
  5. Large代码库:所有工具都应该支持这一点,尽管不能在时间上进行比较。我也不确定是否有任何工具支持缓存值(运行之前收集的数据以节省一些时间)-我正在考虑在下一个主要版本中添加这个。

我已经有一段时间没有尝试使用其他工具了,所以上面提到的doxygen/headerdoc问题可能已经解决了!appledoc本身也有缺点:就像你提到的,它不支持枚举、结构、函数等(在这个方向上已经做了一些工作,check this fork),而且它有自己的set of issues,这可能会阻止你使用它,这取决于你的需求。

我目前正在进行cover most glaring issues的主要更新,包括对枚举、结构等的支持。一旦我完成了更大的块并使其足够稳定,我就会定期将新内容推到实验分支,这样你就可以跟踪进度了。但这仍然是非常早的,进展取决于我的时间,所以可能需要相当长的时间才能解决问题。

票数 83
EN

Stack Overflow用户

发布于 2013-09-20 00:05:13

Xcode 5现在将解析您的注释以搜索文档并显示它:

您不必再使用appledoc或doxygen (至少当您不想导出文档时)。欲获知更多信息,请访问here

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10109496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档