Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/jakubandrysek/mkdoxy

📖 Automatically generates API documentation for your project based on Doxygen comments and code snippets in your markdown files.
https://github.com/jakubandrysek/mkdoxy

code code-snippets documentation documentation-generator doxygen mkdocs mkdoxy multilanguage open-source python snippets

Last synced: 22 days ago
JSON representation

📖 Automatically generates API documentation for your project based on Doxygen comments and code snippets in your markdown files.

Awesome Lists containing this project

README

        

# MkDoxy

**[MkDoxy](https://mkdoxy.kubaandrysek.cz/)** plugin for **[MkDocs](https://www.mkdocs.org/)** generates API documentation based on **[Doxygen](https://www.doxygen.nl)** comments and **[code snippets](/intro)** in your markdown files.










> **Warning**
> **Extension is in development**, and a few features are not working properly.
> More information in [Discussions](https://github.com/JakubAndrysek/MkDoxy/discussions) and [Issues](https://github.com/JakubAndrysek/MkDoxy/issues) pages.

---

## [:material-home-edit: Online Demo](https://jakubandrysek.github.io/MkDoxy-demo/) and [:simple-github: Demo source-code ](https://github.com/JakubAndrysek/MkDoxy-demo)

---

**[Feature List](#feature-list)** - **[Installation](#installation)** - **[Quick start](#quick-start)**

## Feature List
- **[Easy to use](#quick-start):**: Just add `mkdoxy` to your `mkdocs.yml` and configure the path to your source code.
- **[Code snippets](./snippets/index.md)**: Generate code snippets in place of your standard Markdown documentation.
- **[Multiple projects](./usage/index.md#multiple-projects)**: Support for multiple projects in one documentation (e.g. C++ and Python).
- **[Multiple source directories](./usage/index.md#multiple-source-directories)**: Configure multiple source directories in one project.
- **[Custom Jinja templates](./usage/index.md#custom-jinja-templates)**: Define custom Jinja templates for rendering Doxygen documentation.
- **[Custom Doxygen configuration](./usage/index.md#custom-doxygen-configuration)**: Specify custom Doxygen configuration for each project.

## Installation
Install the plugin using pip from [PyPI](https://pypi.org/project/mkdoxy/):

```bash
pip install mkdoxy
```
Development version with all dependencies:
```bash
python -m pip install mkdoxy ".[dev]"
```

Install from source:
```bash
pip install git+https://github.com/JakubAndrysek/MkDoxy.git
```

## Quick start

`mkdocs.yml`:
```yaml
site_name: "My MkDoxy documentation"

theme:
name: material

plugins:
- search
- mkdoxy:
projects:
myProjectCpp: # name of project must be alphanumeric + numbers (without spaces)
src-dirs: path/to/src/project1 # path to source code (support multiple paths separated by space) => INPUT
full-doc: True # if you want to generate full documentation
doxy-cfg: # standard doxygen configuration (key: value)
FILE_PATTERNS: "*.cpp *.h*" # specify file patterns to filter out
RECURSIVE: True # recursive search in source directories
```

## Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you want to change.

## Do You Enjoy MkDoxy or Does It Save You Time?
Then definitely consider:

- supporting me on GitHub Sponsors: [![](https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=GitHub&color=%23fe8e86)](https://github.com/sponsors/jakubandrysek)

## License

This project is licensed under the terms of the [MIT license](https://github.com/JakubAndrysek/MkDoxy/blob/main/LICENSE)