Sphinx是一个Python库,用于从一组ReST格式的文本文件中生成漂亮的文档。不是用于全文搜索的工具
我也完全了解doxygen / phpdoc工具。我试图找出是否有一种使用Sphinx来记录PHP项目的方法?甚至其他非Python语言?
根据我的经验,Sphinx和ReST可用作通用文档工具。 Sphinx没有什么要求您仅将其用于基于Python的项目。例如,在我的工作中,我使用它来构建用户指南和XML-RPC API参考。在这两种情况下,我都没有用过sphinx.ext.autodoc
或其他Python特定的附加功能。该文档是用“手工”编写的,其中大部分是通用的ReST指令,而不是Sphinx提供的特殊指令。对于它的价值,我还不需要为非Python文档创建自定义ReST指令。
即使您正在使用PHP项目,我认为您也会发现Sphinx很有用。例如,the module specific markup提供的大多数指令实际上都是相当通用的。我不明白为什么您不能或不会使用这些结构来记录Python以外的语言中的内容。同样,Sphinx使show code examples in other languages变得非常容易。甚至还有一个配置值,可将默认值更改为Pygments支持的任何语言(包括PHP)。如果您特别有野心,甚至可以create a Sphinx extension从您的PHP代码中提取相关内容。
话虽如此,请务必考虑您的文档项目的受众。虽然我认为Sphinx是一个出色的工具,并且会推荐它用于各种文档项目,但是如果您的听众还有其他期望,请记住这一点。例如,如果您正在编写Java项目文档,那么很多观众可能都希望使用Javadoc风格的文档。如果您偏离了这种期望,请确保它不只是一kick而就的(即,它为您提供了比其他情况更好的文档),并准备(简要地)为您所做的不同工作辩护(例如,常见问题解答或简介)。
最后,无论使用哪种文档来创建文档,总比没有文档要好。如果有什么不一样,请使用任何可以帮助您的工具。
CakePHP将Sphinx用于其新文档,而我为sphinx编写了phpdomain。虽然没有办法将您的php doc块自动包含到sphinx中,但我仍然认为它是可用的更好的文档编写工具之一。非常适合用于更多叙事风格的文档。但是,有了phpdomain,您也可以制作api文档。
The Doctrine项目,一个PHP的ORM,使用Sphinx在www.doctrine-project.org处生成其在线文档。他们为PHP使用自定义pygment。该文档可在https://github.com/doctrine/orm-documentation的Github上找到。它包括自定义PHP pygment css文件。
还[
pygments_sytle = 'pastie'
.. class
,.. method
,.. function
等)创建漂亮的API引用。它们与源代码完全分开工作,不需要任何自动生成和链接到源。您还可以创建带有某些特殊类的通用警告,稍后可以将其链接到CSS:
.. admonition Title
:class: Ololo
This text could be formatted any way you want, using the ``Ololo`` tag.
还有一些角色(它们也允许自定义类),以及其他以特殊格式添加文本的方法,如果原始指令不足以满足您的要求。如果决定从源代码异步创建文档,请确保在
conf.py
或项目启动时禁用检查代码覆盖率和其他与代码相关的功能。PS:对于具有自定义类here的元素,您可以看到一个很好的答案。