Announcement
· Dec 16

Doxygenerate - a new tool for building standalone documentation of your IRIS application's object model

The InterSystems platforms have always offered dynamic documentation of the packages and classes in a namespace, a feature known informally as Documatic. But what if you need to publish this class reference information on a website without requiring the site to be connected to an IRIS server containing the actual classes?

For my entry to the December 2024 Developer Community “Bringing Ideas to Reality” contest I decided to implement the idea of a generator that produces a static set of class reference pages . And since I chose to leverage the well-established Doxygen tool I named my tool Doxygenerate.

Intrigued? Go to https://georgejames.com/files/doxygenerate/MARINA/index.html where you can browse the object model of a real-world class-based application for marina management, built with InterSystems technology, but do so from a website that doesn't run an InterSystems server nor connect to one elsewhere.

Where the MARINA application's classes reference classes in the IRISLIB packages you can follow links to those, including from the Inheritance and Collaboration diagrams that Doxygen gives us for free. Or if you fancy browsing all the IRISLIB packages directly, go to https://georgejames.com/files/doxygenerate/__IRISLIB/index.html. Similarly the ENSLIB packages (not used by MARINA) are available at https://georgejames.com/files/doxygenerate/__ENSLIB/index.html. And the %SYS packages can be explored  at https://georgejames.com/files/doxygenerate/_SYS/index.html.

Want to try it with your own application? Start here.

"What sorcery is this?"

Doxygen doesn't understand InterSystems class definitions. But it does understand many other languages, including Python. So Doxygenerate writes stub Python files that lack method code but contain just enough to make Doxygen create a meaningful class reference. I call these simulacrum files. Think of them as like the building facades on a film lot. Not enough substance to function as buildings, but sufficient to convince the viewer that they're on the main street of a classic Western where a gunfight may be about to break out.

Feedback is welcome here, or by opening issues on Doxygenerate's GitHub repository.

If you like what I've done please support Doxygenerate in the contest before voting ends on 22 Dec, 2024 at 11:59:59 PM EST.

Discussion (0)1
Log in or sign up to continue