[Mono-list] Documentation tool

Joshua Tauberer tauberer@for.net
Wed, 08 Sep 2004 18:09:53 -0400

Sijmen Mulder wrote:
> As what I heard on IRC, I am not the only one that dislikes in-code
> comments.

You said it!

> But, are there any .NET classes that are designed specifically to
> read/write the XML doc files? If so, how are they called, and how well
> are they supported in Mono?

In fact, yes.  Well, there are tools to do it.  Not publicly usable 
classes, though.

   1) Monodoc can now be used to edit the text of XML documentation 
files.  (i.e. ECMA-style documentation files... we need a new name for this)
   2) Monodocer can be used to create (stub) XML documentation files and 
update documentation files based on reflection of an assembly.

A few days ago I (finally) checked in some changes to Monodoc to allow 
editing of the XML doc files directly.  (I say finally because I did the 
programming back around May and then left it untouched for the summer.) 
  With the current CVS Monodoc (in the monodoc CVS module's browser 
directory), run:

mono browser.exe --local-edit path-to-docfiles

You could, for example, run:

mono browser.exe --local-edit ../class/corlib/en

to edit the corlib docs that you would have already checked out of CVS.

There is a catch, though.  You'll need to run Monodocer on docs checked 
out of CVS because they're missing the "index.xml" file that I 
(unilaterally) thought would be a good idea for documented assemblies to 
have.  To do this, go into the /monodoc/tools directory, run make, and 
then run:

mono monodocer.exe --update --assembly mscorlib --source ../class/corlib/en

But, if you use Monodocer to create the documentation to begin with, 
you'll already have your docs ready to be edited with Monodoc.  ex:

mono monodocer.exe --stub --assembly YourAssemblyName --dest path-to-docs

If YourAssemblyName isn't in the GAC or MONO_PATH, specify an extra 

   --load path/to/assembly.dll

so Monodocer can find the assembly.

My goal was for Monodoc and Monodocer together to (eventually) be a 
complete solution for documenting assemblies.  It's slowly getting 
there.  (I'm not sure if Miguel particularly wanted that, though. :) )

(BTW, your comments on the process are welcome, as would be help with 
improving Monodoc/Monodocer and also Monodocs2html.)

- Joshua Tauberer


** Nothing Unreal Exists **