Readable Source Code Documentation
for 20 Programming Languages
Natural Docs lets you document code written in any of 20 programming languages, plus it can be easily extended for more so whatever you use, it can too. And if your project uses multiple languages, no problem! It will all be included in the same set of documentation.
Natural Docs also speaks your other language... English! Its comments are designed to be very natural and readable so they're just as usable in the source code as they are in the generated documentation. No weird syntax or tags scattered everywhere.
Natural Docs' generated documentation is pretty and powerful, with three independently scrolling panels, dynamic menus, search, and pop-up summaries when you hover over links. All its features work wherever you put it, be it a web server, a network share, or just opened from your hard drive.
This update fixes compatibility with macOS and some Linux distributions. If Natural Docs wouldn't run and gave you an error about libNaturalDocs.Engine.SQLite32.so, this will fix it.
Nothing's changed for Windows, but now there's an MSI installer to make installing and updating easier. It will also create a Start menu shortcut to the bundled documentation.
The source code is available on GitHub now. It wasn't uploaded when 2.0 launched but it's all there now, with its full edit history.
And finally, the web site works correctly on mobile. There was a minor change needed to make phones detect it as mobile-friendly.
So this was a very long time coming. Far longer than I intended, but I hope it was worth the wait. Natural Docs 2.0 is finally, finally here!
Since there's too much new to do justice to here I have a whole guide written up to walk you through it, appropriately named What's New in 2.0. Some highlights are completely revamped HTML output, three panel navigation, a class view in addition to the file view, better search, much faster build times, and Microsoft XML compatibility. If you just want to see the new HTML output in action, go ahead and explore here:
When you're done, check out the guide for a more thorough walkthrough.
So yeah. I had reached the end of what I could comfortably do with the old Perl version. There were some assumptions baked into the design that couldn't be changed without a serious overhaul, and the code was getting complicated enough that it was painful to keep doing it in Perl. After a few false starts I eventually rebuilt the entire thing in C#. Don't worry, it still runs in Linux and macOS with Mono. It was designed to from the start.
It was a long process, partially because I don't have the abundance of free time I used to, but Natural Docs is a much more modern program now and its new engine should serve me well into the future. There's already groundwork laid for features that aren't available yet, and for some ideas I have that may or may not come to fruition.
The Plan: Natural Docs 2.1
So here's the game plan so far. The next release will be Natural Docs 2.1, which I have two goals for.
The first is stabilization. I've been using the new version for a long time and I have my unit tests and so forth so I think it's pretty stable, but now that it's getting a wide release I'm sure people are going to shake out all the bugs I missed.
The second is expanding basic language support. Natural Docs has been out of the game for a while so I want to know all the languages you care about and want it to support right out of the box. Swift? Rust? D? Tell me in the Reddit discussion or just e-mail me. Basic language support is pretty easy to add so I hope to get every single one of them in 2.1.
The Plan: Natural Docs 2.2 and Beyond
After 2.1 I want to have each significant version of Natural Docs bring full support to one language and add one significant new feature, both of which you'd vote on. Full language support never expanded much in 1.x and I definitely want to change that.
There will be more details on how to vote when the time comes, but one thing I'm definitely bringing back is donating towards full support for a particular language. Except I don't really need the money anymore, so everything will go to one of the charities I've chosen instead. The more money a language raises for charity, the more likely it is to be supported next. I work at one of them so that's obviously my choice, but there are three other options as well. Just donate using the campaign link and put the language you want in the notes field.
That's all for now! Natural Docs is alive again!