Skip to main content

Hawkmoth - Sphinx Autodoc for C

Project description

GitHub tag (latest SemVer) BSD-2-Clause Makefile CI Build and Deploy Documentation Read the Docs PyPI Downloads

Hawkmoth - Sphinx Autodoc for C

Hawkmoth is a minimalistic Sphinx C and C++ Domain autodoc directive extension to incorporate formatted C and C++ source code comments written in reStructuredText into Sphinx based documentation. It uses Clang Python Bindings for parsing, and generates C and C++ Domain directives for C and C++ API documentation, and more. In short, Hawkmoth is Sphinx Autodoc for C/C++.

Hawkmoth aims to be a compelling alternative for documenting C and C++ projects using Sphinx, mainly through its simplicity of design, implementation and use.

Example

Given C source code with rather familiar looking documentation comments:

/**
 * Get foo out of bar.
 *
 * :param bar: Name of the bar.
 */
void foobar(const char *bar);

and a directive in the Sphinx project:

.. c:autofunction:: foobar
   :file: filename.c

you can incorporate code documentation into Sphinx. It’s as simple as that.

You can document functions, their parameters and return values, structs, classes, unions, their members, macros, function-like macros, enums, enumeration constants, typedefs, variables, as well as have generic documentation comments not attached to any symbols.

See the documentation examples section for more, with sample output.

Documentation

Documentation on how to install, configure and use Hawkmoth, as well as write documentation comments, with examples, is available for both the latest release and the version currently in development.

The same is also hosted at Read the Docs.

Installation

You can install Hawkmoth from PyPI with:

pip install hawkmoth

You’ll additionally need to install Clang and Python 3 bindings for it through your distro’s package manager; they are not available via PyPI. For further details, see the documentation.

Alternatively, installation packages are available for:

In Sphinx conf.py, add hawkmoth to extensions, and point hawkmoth_root at the source tree. See the extension documentation for details.

Development and Contributing

Hawkmoth source code is available on GitHub. The development version can be checked out via git using this command:

git clone https://github.com/jnikula/hawkmoth.git

Please file bugs and feature requests as GitHub issues. Contributions are welcome as GitHub pull requests.

See the developer documentation for details.

Dependencies

Dependencies and their minimum versions:

  • Python 3.9

  • Sphinx 3

  • Clang library 6

  • Python 3 Bindings for Clang library 6

There are additional development and testing dependencies recorded in setup.cfg.

License

Hawkmoth is free software, released under the 2-Clause BSD License.

Contact

IRC channel #hawkmoth on OFTC IRC network. GitHub issues and discussions.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hawkmoth-0.19.0.tar.gz (25.0 kB view details)

Uploaded Source

Built Distribution

hawkmoth-0.19.0-py3-none-any.whl (31.0 kB view details)

Uploaded Python 3

File details

Details for the file hawkmoth-0.19.0.tar.gz.

File metadata

  • Download URL: hawkmoth-0.19.0.tar.gz
  • Upload date:
  • Size: 25.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.27.2

File hashes

Hashes for hawkmoth-0.19.0.tar.gz
Algorithm Hash digest
SHA256 3718d2520fd9ce7b80288b736dcfec2276466d0c492d7cb41cbc822f12caf32a
MD5 9fca6de78febd341d0a7dc75f919d071
BLAKE2b-256 e61e86cf62d3464001724ed8b3d35eca4b0bd0b1135e3e682f5cfe6637149b01

See more details on using hashes here.

File details

Details for the file hawkmoth-0.19.0-py3-none-any.whl.

File metadata

  • Download URL: hawkmoth-0.19.0-py3-none-any.whl
  • Upload date:
  • Size: 31.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.27.2

File hashes

Hashes for hawkmoth-0.19.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7eb42a235274ea5ed383af9c2ea4b4a53466152ec8c3af90f145b731d493814f
MD5 cf98894de06681335c52a0d400f1c5e6
BLAKE2b-256 9d699a37ef58947a9aab54e6196ec7d2f9507320886e70802bc90ef75eb0483f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page