Hawkmoth - Sphinx Autodoc for C
Project description
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.
Note
The C++ support is still in early stages of development, and lacks some fundamental features such as handling namespaces and documenting C++ specific features other than classes.
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 CONTRIBUTING.rst for more details.
Dependencies
Dependencies and their minimum versions:
Python 3.6
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file hawkmoth-0.16.0.tar.gz
.
File metadata
- Download URL: hawkmoth-0.16.0.tar.gz
- Upload date:
- Size: 27.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0bf0b531ecc4e4e767187e1f4b22cdd7cf470417b288ea61fd1419ec9dcd30a1 |
|
MD5 | 603b7a06ff810b1c53a22d7873e1a809 |
|
BLAKE2b-256 | f87ae32cf10771b3b957c9b977bd826e8ebc8c00119e6538007e45f053a8ef45 |
File details
Details for the file hawkmoth-0.16.0-py3-none-any.whl
.
File metadata
- Download URL: hawkmoth-0.16.0-py3-none-any.whl
- Upload date:
- Size: 25.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7f3ede3c0744dbad947f552959e3ac5b707e44b2ab9a6a086705d6d054aa294d |
|
MD5 | 39bfedba2ea9feff22d2490e551b2003 |
|
BLAKE2b-256 | de0c1f4644387ef01d60f174f9b50daf19a299238589e1a684f00060d5c2a1e7 |