-
Notifications
You must be signed in to change notification settings - Fork 1
Description
Right now the workflow for creating the KSP API document involves a lot of manual steps:
- Manually extracting class stubs using Visual Studio
- Manually merging changes between KSP versions (increasingly massive effort the more gets documented).
I think to be able to really push this project forward the above issues need to be resolved. My preference would be to change as little about the current workflow as possible (ie. still generate the same XML that is currently being consumed by Doxygen).
I'd like to consider using monodoc. The linked page describes two modes of operation:
- Generate the same XML that Visual Studio/Doxygen expect from source files.
- Generate the ECMA-335 XML format from an assembly.
The second option is extremely appealing, because it has automatic synchronization logic that will handle changes to the underlying assembly (so in theory, we'd be able to generate 1.0.5 documentation, and then run it against 1.1 and it will provide annotations in the generated document for what's changed).
The biggest drawback is that this format doesn't appear to be supported by Doxygen, so we'd have to fully commit to monodoc. The upside is that it can use the current XML instead of an assembly as input, so we could use that to generate the initial documentation (so there's a minimal effort way to get the current documentation into the "sources" we'd use for monodoc).
At some point I'll install it an run against the KSP assembly to see what the default output looks like (and maybe put it on a GitHub I/O page somewhere so people can look at it).
I won't be able to do significant work on this until my mods are all updated for 1.1, but once that's done I'll dive into this. In the meantime, I welcome comments from anyone who has strong feelings for or against this activity (or who have alternative options to suggest).