I developed a really simple way of documenting my classes for a recent LARGE project.
With each function of each class, and at the beginning of each class, I would add a comment like such..
//##"type","func_name","num_args","class_member_of","inherits","desc","example"
Here is a breakdown of each field.
type - denoted whether it was a function or class comment.
func_name - stores the name of the function or class.
num_args - Is the number of arguments it accepts
class_member_of - Is the name of the class it is a memeber of.
inherits - are any classes that it might inherit properties from
desc - a description of what the class does
example - An example of usage
I then have a perl script that parses all this info out, and builds a pretty complex hash of the structure of the classes. I then jam it into a DB. The class doumentation is now browsable! I also containerized each function between two comments
//####function_name
function function_name (){
//##"type","function_name","num_args","class_member_of","inherits","desc","example"
print "hey";
}
//####function_name
This allows for people to drill down on a link and do a pass-thru view of the actual code of the function.
Anytime new code or comments were added, just re-run the perl script and the DB was updated.