Skip to main content

Hawkmoth - Sphinx Autodoc for C

Project description

GitHub tag (latest SemVer) BSD-2-Clause Read the Docs PyPI Downloads

Hawkmoth - Sphinx Autodoc for C

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

Hawkmoth aims to be a compelling alternative for documenting 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.
 */
void foobar();

and a directive in the Sphinx project:

.. c:autodoc:: 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, unions, their members, macros, function-like macros, enums, enumeration constants, typedefs, variables, as well as have generic documentation comments not attached to any symbols.

Documentation

Documentation on how to install and configure Hawkmoth, and write documentation comments, with examples, is available in the doc directory in the source tree, obviously in Sphinx format and using the directive extension. Pre-built documentation showcasing what Hawkmoth can do is available 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:

There are also Docker images jnikula/hawkmoth and jnikula/hawkmoth-latexpdf at Docker Hub.

In Sphinx conf.py, add hawkmoth to extensions, and point cautodoc_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 both as GitHub pull requests (preferred) and as emailed patches to the mailing list.

Dependencies

  • Python 3.6

  • Sphinx 3

  • Clang 6.0

  • Python 3 Bindings for Clang 6.0

  • pytest (for development)

  • sphinx-testing 1.0.0 (for development)

These are the versions Hawkmoth is currently being developed and tested against. Other versions might work, but no guarantees.

License

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

Contact

IRC channel #hawkmoth on OFTC IRC network.

Mailing list hawkmoth@freelists.org. Subscription information at the list home page.

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.9.0.tar.gz (18.3 kB view details)

Uploaded Source

Built Distribution

hawkmoth-0.9.0-py3-none-any.whl (16.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: hawkmoth-0.9.0.tar.gz
  • Upload date:
  • Size: 18.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.9.2

File hashes

Hashes for hawkmoth-0.9.0.tar.gz
Algorithm Hash digest
SHA256 f88a8fa39964e595e437abe3406a5823d45421d39de729c2b2f0b4f7442fefcf
MD5 df49d917a3cfb0ead5d9c2a84b027d88
BLAKE2b-256 10ddbce3d605538abf83d4a1aa3f342695bf47341f8c1c54ea92fe3889387c93

See more details on using hashes here.

File details

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

File metadata

  • Download URL: hawkmoth-0.9.0-py3-none-any.whl
  • Upload date:
  • Size: 16.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.9.2

File hashes

Hashes for hawkmoth-0.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 53779793c6aee19ac80c034dfd2ec59ebf5b6a1b51ba670c063665c7c0bcb755
MD5 647a8745ce56e2c22da0722654fba187
BLAKE2b-256 daf7e4da710407f7e79b247377d8fc58384eb8753d8a2c18a04d425c03183e2e

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