Docurium is a lightweight Doxygen replacement. It generates static HTML from the header files of a C project. It is meant to be simple, easy to navigate and git-tag aware. It is only meant to document your public interface, so it only knows about your header files.

I built it to replace the Doxygen generated documentation for the libgit2 project, so I'm only currently testing it against that. So, it is only known to include support for features and keywords used in that project currently. If you have a C library project you try this on and something is amiss, please file an issue or better yet, a pull request.

Though Docurium can generate your docs into a subdirectory, it is meant to be served from a webserver, not locally. It uses XMLHttpRequest calls, which cannot be done locally, so you can't just open the index.html file locally and have it work - you need to either run a webserver in the output directory or push it to a website to view it properly. I use Pow ( or GitHub Pages.


Run the cm binary and pass it your Docurium config file.

$ cm doc api.docurium
* generating docs
  - processing version v0.1.0
  - processing version v0.2.0
  - processing version v0.3.0
  - processing version v0.8.0
  - processing version v0.10.0
  - processing version v0.11.0
  - processing version v0.12.0
  - processing version HEAD
* checking your api
  - unmatched params in
  - signature changes in
* writing to branch gh-pages
    wrote tree   87f0f3cb1622b9dc3d6d5d39106e863608b3b504
    wrote commit 5cee46f4d491e9611abab218604db893b70202f3
    updated gh-pages

Docurium will tell you if you have unmatched @params entries in header docs and if you've changed signatures in functions in HEAD, just to help you know what's happening and if you've written your docs properly.

The Docurium config file looks like this:

 "name":   "libgit2",
 "github": "libgit2/libgit2",
 "input":  "include/git2",
 "prefix": "git_",
 "branch": "gh-pages",
 "examples": "examples",
 "legacy":  {
    "input": {"src/git": ["v0.1.0"],
              "src/git2": ["v0.2.0", "v0.3.0"]}

Docurium will write your docs directly into the specified Git branch.


$ gem install docurium


If you want to fix or change something, please fork on GitHub, push your change to a branch named after your change and send me a pull request.


MIT, see LICENCE file