Initial Release
A package that leverages Doxygen to create a set of static pages documenting the classes in a namespace.
This package is my entry to the December 2024 Developer Community “Bringing Ideas to Reality” contest, implementing the idea of a generator that produces a static set of class reference pages .
For convenience this option uses VS Code, but it is also possible to use similar steps independent of VS Code.
https://github.com/gjsjohnmurray/doxygenerate.git
repository locally (e.g. by running Git: Clone
from Command Palette, or by clicking the equivalent Welcome page link).docker-compose.yml
file to run Compose Up
.Building doc...
steps take a while, particularly for the IRISLIB and ENSLIB databases.ObjectScript
panel of the VS Code status bar. From the top-center menu choose Refresh Connection
. The status bar panel’s label will change to docker:iris:NNNNN[USER]
.Browse Generated Documentation
.USER
link on the launch page.You can now browse the Doxygen documentation for Doxygenerate’s own ObjectScript packages.
Other links from the /csp/doxygen/Home.csp
launch page let you explore the extensive IRIS library packages.
Import your own IRIS classes into the USER namespace, then use the Regenerate
button to update the static documentation.
Alternatively, add your own namespace to the container’s IRIS instance and put your classes there. Then reload the Doxygenerate launch page and generate that namespace’s documentation.
This package requires IRIS 2023.1 or later.
graphviz
package is also recommended in order to get diagrams in the generated documentation. For example:
$ apt-get install doxygen graphviz
USER>zpm "install doxygenerate"
/csp/doxygen/Home.csp
launch page of whichever web server that hosts your IRIS Portal.You can now browse the Doxygen documentation for the namespace you installed Doxygenerate into, including its own ObjectScript packages. You can also generate documentation for other namespaces in your IRIS environment.
Links from the launch page let you:
Remember that (re)generation can take a while, particularly for a namespace whose code database contains a lot of classes.
We host the generated documentation in an IRIS webapp merely as a convenience. The files Doxygen created for us are static and can be found in subfolders of the folder that the Physical Path property of the /csp/doxygen
IRIS web application points to. In each subfolder the home page is index.html
.
_SYS
__IRISLIB
and __ENSLIB
respectively.Build
method of IRIS’s %Atelier.v1.Utils.MetaData
class is used to create files that each contain a JSON representation of a class’s structure (not including implementation code or storage details).index.html
.Contains two GitHub actions workflows:
github-registry.yml
objectscript-qaulity.yml
Both workflows are repo agnostic: so they work with any repository where they exist.
Contains three files to setup the VS Code environment:
Settings file to let you work in VS Code with the InterSystems ObjectScript extension pack.
Config file ready for if you want to debug with the InterSystems ObjectScript extension.
Extension recommendations for this workspace.
Contains source files.
Contains unit tests for the ObjectScript classes.
Contains a set of useful commands that may help during development.
A docker engine helper file to manage image building, host-to-container mapping rules for ports and folders (volumes), etc.
The dockerfile which starts an IRIS container and loads the package into it. You can use the related docker-compose.yml to adjust parameters, for example to bind to fixed local port numbers.
Contains objectscript commands that are fed to IRIS during the image building
IPM module specification.