old-code/monodoc
Jonathan Pryor f79abb9e4d Let's try this again...
svn path=/old-code/; revision=120950
2008-12-07 00:55:57 +00:00
..
class Let's try this again... 2008-12-07 00:55:57 +00:00
doctools Let's try this again... 2008-12-07 00:55:57 +00:00
ecma334 Let's try this again... 2008-12-07 00:55:57 +00:00
engine Let's try this again... 2008-12-07 00:55:57 +00:00
extras Let's try this again... 2008-12-07 00:55:57 +00:00
generator Let's try this again... 2008-12-07 00:55:57 +00:00
man Let's try this again... 2008-12-07 00:55:57 +00:00
mono-root Let's try this again... 2008-12-07 00:55:57 +00:00
scripts Let's try this again... 2008-12-07 00:55:57 +00:00
tools Let's try this again... 2008-12-07 00:55:57 +00:00
xsl Let's try this again... 2008-12-07 00:55:57 +00:00
.cvsignore Let's try this again... 2008-12-07 00:55:57 +00:00
AUTHORS Let's try this again... 2008-12-07 00:55:57 +00:00
ChangeLog Let's try this again... 2008-12-07 00:55:57 +00:00
LICENSE Let's try this again... 2008-12-07 00:55:57 +00:00
Makefile.am Let's try this again... 2008-12-07 00:55:57 +00:00
NEWS Let's try this again... 2008-12-07 00:55:57 +00:00
README Let's try this again... 2008-12-07 00:55:57 +00:00
autogen.sh Let's try this again... 2008-12-07 00:55:57 +00:00
configure.in Let's try this again... 2008-12-07 00:55:57 +00:00
mono.snk Let's try this again... 2008-12-07 00:55:57 +00:00
monodoc.in Let's try this again... 2008-12-07 00:55:57 +00:00
monodoc.pc.in Let's try this again... 2008-12-07 00:55:57 +00:00
monodoc.png Let's try this again... 2008-12-07 00:55:57 +00:00
monodoc.svg Let's try this again... 2008-12-07 00:55:57 +00:00

README

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.
	
	This set of tools is under heavy development, please report any bugs 
	in the Mono/Doctools module of Ximian Bugzilla (bugzilla.ximian.com)

* 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

* Gtk# Edition

    The Gtk# frontend is in Mono SVN in mono-tools/docbrowser

* 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.

	Monodoc contains a built-in editor for class library
	documentation.  Just click next to a node that you want to
	edit in the [Edit] button, and you will be taken to a
	graphical editor.

	Once you are done with all your edits, you can use the
	`File/Upload Contributions' option to submit your
	contribution. 

* 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.

	The updater tool (located in monodoc/generator/updater.exe) can
	generate documentation stubs from assemblies.  Also, it can be
	used to update docs as changes are made to the assemblies,
	maintaining existing changes when appropriate.  It can also
	detect what has been removed from an assembly and mark it as
	deprecated or remove it completely.