Readable Source Code Documentation
for 21 Programming Languages
![]() | Natural Docs lets you document code written in any of 21 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. |
If you're new to Natural Docs be sure to read our Getting Started guide and we'll have you up and running in no time. If you've been using Natural Docs 1.5, check out our tour of What's New in 2.0! |
Time to start a new batch of development releases. What do we have so far? Dark Themes I originally planned on doing some easy, low-hanging fruit features while I worked on SystemVerilog. Adding dark themes turned out to be a bigger effort than I thought, but I'm pretty happy with the results: ![]() These aren't just additional styles you can choose when you build your documentation. If you use the default style you get all three themes and you can switch between them from the browser. Just click the moon icon next to the search box: ![]() The dark theme is what you expect, plus there's a black theme that's higher contrast. You can give them a look here.
Still to do:
SystemVerilog Improvements SystemVerilog now has an entry in Languages.txt, but this is just a placeholder so you'll probably still need to fill it out a bit more with your own settings to use it. However, a couple of things have been implemented:
Otherwise it's still the same as basic language support. It won't find undocumented code structures yet or do any special formatting for prototypes. More to come. Fully-Qualified Title Fix Probably because I primarily work in C#, which has full language support, and JavaScript, where I only use pseudo-classes, I didn't realize this wasn't working. Suppose you have this: namespace MyNamespace { You wouldn't get a prototype for MyClass because the declaration doesn't match the full title of MyNamespace::MyClass. This has been fixed, so it only requires the last segment to exist in the prototype now. Other Bug Fixes
|