Hyde

screenshot of Hyde
jekyll

Hyde

A front-end to Jekyll that parses C++ sources to produce and enforce out-of-line documentation

Overview

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.

Features

  • Clang based: Hyde uses Clang's libTooling library to compile and document C++ code.
  • Out-of-line documentation: Hyde avoids inline comments and uses separate documentation files to prevent syncing issues and distractions.
  • Jekyll compatible: Hyde produces well-structured Markdown files with YAML front-matter, making it compatible with tools like Jekyll.
  • Schema enforcement: Hyde compares pre-existing documentation files with the current state of the C++ sources to keep the documentation accurate.
  • Adaptable: In addition to documentation, Hyde can output AST-based information about the code as a JSON-based IR, allowing for additional tools or emitters to be built on top.

Requirements

  • macOS:
    • Homebrew: brew install cmake
    • Optional: brew install ninja
  • Linux (Ubuntu Bionic):
jekyll
Jekyll

Jekyll is a static site generator written in Ruby that allows you to create simple, fast, and secure websites without the need for a database.