Show HN: A modern documentation tool for C++ and a replacement for Doxygen
hdoc.io
hdoc.io
We made hdoc to solve these problems: prioritizing the quality of output, making the developer experience seamless, and retaining compatibility with existing best practices.
hdoc lets you generate reference API documentation and put supporting guides, tutorials, how-tos right alongside your other docs. We have a sample of what hdoc's output for LLVM+Clang: https://docs.hdoc.io/hdoc/llvm-project/. The source for the repo is available here: https://github.com/hdoc/llvm-project/
Use the code HDOC-HN-LAUNCH for your first three months free when you sign up. 5 codes are available.
Likewise, hdoc isn't instantly going to make an engineer spring up and say "I'm going to write documentation!". No tool is going to do that. hdoc is meant to simplify and streamline the process of writing documentation. Current tools disincentivize writing documentation. If you need to spend a day cobbling together 5 different tools and themes to set up a documentation page for your project you might not be as eager to do it as you would be if you could write a five line configuration file and run a single binary.
No doubt there are free tools that can produce decent output. However, all of them require considerable effort that could be spent writing code or documentation. Others don't support modern features, or completely fail to process basic C++ code. Clearly a market for a tool which solves these problems exists, there is no shortage of people asking about Doxygen alternatives or better ways to document their C++ code. Lastly, there are companies in other communities which provide a similar services, for instance ReadTheDocs.com which has documentation and managed hosting for Python projects.
By the way, I hope my comments are not taken as anything other than constructive criticism.
"hdoc supports a small subset of Doxygen's commands. hdoc supports both the @ and \ conventions for commands, meaning you can use @brief or \brief interchangeably."
As far as I can tell, it supports just 3 commands: @brief, @param, @returns. Any plans to support @tparam for template parameters? It's the one other doxygen command that I use frequently for C++ code.
https://docs.hdoc.io/hdoc/llvm-project/fBE2A174F6C7A57F0.htm...
Unfortunately tools are only part of the solution. Our goal with hdoc is to make writing documentation easier and to make it easier to create great/cohesive output. If engineers perceive writing documentation as too laborious they’ll be unlikely to do it, so we hope that hdoc’s workflow and results help.
I do agree that the existing tools are horribly subpar, but at least I don't need to contact support to fix them myself.
You're going to have a hard time convincing the larger C++ community to use this, I think. Companies, sure, I guess.
EDIT: Also I kind of reject one of the assertions made here; the reason why I never have documentation for my libraries isn't because I don't write it. It's there, very nicely laid out, in the headers and comments and whatnot. A lot of it. Enough to fully understand it. But rendering it out to Man pages, Markdown, HTML, etc. in a manner consistent with how those formats should work is a PITA that Doxygen simply doesn't do how I'd like.
We're currently targeting businesses and charging for the product understandably presents a barrier to many people, especially in C++ land where open source is the de facto standard. Unfortunately open source tools don't make money.
How would you like your documentation to be rendered when it's processed into markup formats? Source code documentation largely hasn't changed since the introduction of Doxygen-style comments so I'm curious to hear about your approaches.