Monodoc
-------

	This is the MonoDoc module.  It contains the documentation for
	the Mono class libraries, tools to produce and edit the
	documentation, and a documentation browser.

	The documentation browser consists of a library and two
	front-ends: a Gtk#-based one, and an ASP.NET-based version.

* Web Edition

	To run the web edition, copy the browser/web directory into
	a directory in your web server, for example:

		cd browser/web
		mono xsp.exe

	Then you can browse it:

		http://localhost:8080/index.html

* Format

	The documentation in this module is in the format used by the
	ECMA specification.

* Layout

	The documentation is contained in the `class' directory, the
	documentation is done in a per-assembly basis.  The idea is
	that each one of the assemblies will become a documentation
	module, and then help browser will be able to aggregate
	multiple documentation modules when users install new
	assemblies on their system.

	Example, the class "System.IO.Path" is part of the corlib
	assembly, and its part of the "System.IO" namespace there.
	The documentation in english for it, will live in the
	following directory:

		class/corlib/en/System.IO/Path.xml

	Now, each "assembly" has a list of "pending" methods that must
	be documented, those live at the assembly level directory, in
	this case the "master" file for the corlib assembly will live
	in:

		class/corlib/mscorlib.xml

	This file is used to keep track of what needs to be
	documented.  The documenting tools can then be used to verify
	that everything is documented.   These files are generated by
	the mkmaster program.

	This is a small "snapshot" of what it might look like in a
	tree fashion (I can not draw nice trees):

		class/
			corlib/
				en/
					System/
					System.IO/
					System.Reflection/
				es/
				it/
				fr/
				de/
			System/
			System.Xml/
			System.Drawing/

* Editing tools.

	We are in the process of developing a tool called `monodoc'
	which is a Gtk#-based documentation editor that simplifies
	the editing of the ECMA-xml documentation.

* Documentation tools.

	Mono classes are being documented in a different way than
	Microsoft suggests.  The reason obeys to the need to maintain
	multiple translations, and the fact that inline-documentation
	is better suited for explaining particular implementation
	details, or to communicate to someone reviewing/auditing the
	code the intentions behind the code.

	Adding inline documentation for the whole class library to the
	source code makes the source code harder to read.  It might be
	useful for small projects, but for large projects its not
	worth doing that way.

	Adam contributed a tool called `MkMaster' which will take an
	assembly and will generate a "tree" of the pieces that must be
	documented.

# Documentation Browser.

	A  Gtk#-based documentation browser is being worked on right
	now in monodoc/browser. To build it, follow these steps:

	1) Make sure you don't have any GAL headers installed. If you
           have the gal-devel package installed, remove it.

	2) Install gal 1.99 (sometimes called libgal2) and gtkhtml3 or
           newer. Rpm's are available through red-carpet or the
           source is on the gnome ftp site if your distribution
           does not provide binary packages.

	3) Install Gtk#. RPMs are available here
           (http://gtk-sharp.sourceforge.net/). You can check it out
           from the Mono CVS repository under the module name
           'gtk-sharp'.

* Web Documentation Browser.

	