A front-end to Jekyll that parses C++ sources to produce and enforce out-of-line documentation
Hyde is a utility that facilitates documenting C++. It is unique from existing documentation utilities in several ways. First, it is based on Clang’s libTooling library, allowing it to compile and document C++ code as the language evolves. Second, it uses out-of-line documentation instead of inline comments, avoiding the problem of comments falling out of sync and becoming a distraction. Third, it produces well-structured Markdown files with YAML front-matter, making it compatible with tools like Jekyll for customizing the final documentation’s structure and layout. Fourth, Hyde enforces schema to keep the documentation in sync with the C++ code. Lastly, it is adaptable, allowing additional tools or emitters to be built on top of its output.
brew install cmake
brew install ninja
sudo apt-get install libyaml-cpp-dev
git clone <repository-url>
cd hyde
git submodule update --init
mkdir build
cd build
cmake .. -GNinja
(or specify your preferred generator)ninja
(or use your chosen build tool)-hyde-json
(default): Output an analysis dump of the input file as JSON.-hyde-validate
: Validate existing YAML documentation.-hyde-update
: Write updated YAML documentation.-hyde-src-root=<path>
: The root path to the header file(s) being analyzed, affecting defined_in.Hyde is a unique utility that facilitates documenting C++ code. By using Clang’s libTooling library, it keeps the documentation up to date with the evolving C++ language. With its out-of-line documentation approach, Hyde avoids syncing issues and distractions that can arise from inline comments. It also produces well-structured Markdown files with YAML front-matter, making it compatible with tools like Jekyll for customization. Hyde enforces schema to ensure the documentation accurately reflects the code, and it is adaptable, allowing additional tools or emitters to be built on top of its output.