Sphinx是Python的新文档工具。它看起来非常好。我想知道的是:有没有人用Sphinx来记录一个C++项目?
- 这是如何适用于记录C++项目?
- 是否有任何工具可将现有文档(例如doxygen)转换为Sphinx格式?
- 是否有在线/可下载的使用Sphinx的C++项目示例?
- 任何使用Sphinx的人的提示?
Sphinx是Python的新文档工具。它看起来非常好。我想知道的是:有没有人用Sphinx来记录一个C++项目?
首先,保留两个目录树,source
和build
。在版本控制下放入source
。不要将build
置于版本控制之下,重建它作为安装的一部分。第二,阅读http://sphinx.pocoo.org/intro.html#setting-up-the-documentation-sources。使用sphinx-quickstart
构建练习文档树。玩这几天,以了解它是如何工作的。然后再次使用它在SVN目录中构建真实的东西。
在规划良好的树中组织您的文档。有些部分需要为该部分提供“index.rst”,有些则不需要。这取决于该部分是如何“独立”的。
我们的顶级index.rst
看起来像这样。
.. XXX documentation master file, created by sphinx-quickstart on Wed Dec 31 07:27:45 2008.
.. include:: overview.inc
.. _`requirements`:
Requirements
============
.. toctree::
:maxdepth: 1
requirements/requirements
requirements/admin
requirements/forward
requirements/volume
.. _`architecture`:
Architecture
============
.. toctree::
:maxdepth: 1
architecture/architecture
architecture/techstack
architecture/webservice_tech
architecture/webservice_arch
architecture/common_features
architecture/linux_host_architecture
Detailed Designs
================
.. toctree::
:maxdepth: 3
design/index
Installation and Operations
===========================
.. toctree::
:maxdepth: 1
deployment/installation
deployment/operations
deployment/support
deployment/load_test_results
deployment/reference
deployment/licensing
Programming and API's
=====================
.. toctree::
:maxdepth: 2
programming/index
**API Reference**. The `API Reference`_ is generated from the source.
.. _`API Reference`: ../../../apidoc/xxx/index.html
.. note::
The API reference must be built with `Epydoc`_.
.. _`Epydoc`: http://epydoc.sourceforge.net/
Management
==========
.. toctree::
:maxdepth: 2
:glob:
management/*
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`
SVN Revision
============
::
$Revision: 319 $
注意,我们不“包括”的API,我们只是一个普通的HTML链接引用它。
Sphinx有一个非常酷的附加组件,叫做automodule,它从Python模块中选取文档。
更新从Sphinx 1.0起,支持C和C++。 http://sphinx.pocoo.org/
太好了,谢谢。你有没有任何关于你如何评论类和方法的例子,以便狮身人面像读取它们? – Nick 2009-05-07 19:14:38
不是C++评论。狮身人面像只能在Python模块中找到autodoc注释。如果doxygen可以从C++文件中提取注释块,则可以在该注释块中使用restructuredtext,并创建从doxygen到sphinx的某种工作流。 – 2009-05-07 20:43:28
那么为什么使用像Sphinx这样的系统,如果它没有在C代码中找到autodoc注释?我天真的理解是,提取评论的能力是人们使用这些系统的主要原因。 – AndyL 2010-09-15 15:59:17
上面的链接似乎不再工作,这一个:http://doxygen.10944.n7.nabble.com/Using-doxygen-and-sphinx-together-td3038.html希望它是你提到的那个:) – 2014-07-05 21:48:11
[编辑插入在下方]:
我测试了d氧气+呼吸+狮身人面像工具链在一个由10个不同的模块/域组成的多10k的 C++库上。我的底部 行:
让我解释这些要点:
我有问题:doxygen的标记内
从更一般的意义上讲,请注意它是ATM是Doxygen的 xml输出的桥梁。不应该以这种方式理解这一点,它只会在上述限制的情况下精确输出doxygen的功能。 相反,它为您提供准确,而不是更多,而不是更少的可能性
在我看来,一个功能齐全的呼吸将填补一个重大的差距, 开辟一个相当酷的道路。所以值得关注,因为 的潜在收益。
很遗憾,通过创建者的维护将在未来严重下降 。所以如果你在一家公司工作并且能说服 你老板的呼吸会适合他,或者有空闲时间,并且正在寻找一个非常有价值的项目,那么考虑给它一个分支!
作为最后指针,还注意到对于斯芬克斯的doxylink的contrib项目, ,其可以提供一个中间的解决方案:建立一个周围教程状 结构,其引用(CSS样式匹配的)旧Doxygen文档 (我想你甚至可以将相同的头文件注入到狮身人面像中,并在 doxygen文档的look'n'feels之上)。这样,你的项目对狮身人面像保持亲和力 ,当呼吸充分时,你准备跳到 。但是,再次考虑:如果符合你的日程安排,请考虑展示一些爱。
你最终为你的C++项目使用Sphinx吗?如果是这样,你的经历如何? – AndyL 2010-09-15 16:00:01