[Gtk-sharp-list] Documentation effort: Documenting Gtk#

Miguel de Icaza mono-docs-list@ximian.com
12 Feb 2003 15:58:17 -0500


Hello!

    We have checked into CVS the generated stubs for the Gtk#
documentation.  These stubs are useful on their own for people who want
to quickly browse the API, but it lacks descriptions and lacks
examples.  We need volunteers that want to help document Gtk to step up
and help us here.

* Getting Started

        You need to download Gtk# from the CVS repository.  The module
        name is `gtk-sharp'.  You can obtain a copy from both the CVS
        repository or the anonymous CVS repository.
        
        To pull your copy type:
        
        	cvs co gtk-sharp
        
        Documentation lives in gtk-sharp/doc/en.  The "en" indicates the
        English language, the first one we are targeting.  We can later
        do translations, but for now we are focusing on a single
        language.
        
        In that directory you will find the documentation organized by
        namespaces.  One directory per namespace.  In the directories
        you will find one XML file per class that needs to be
        documented.  The mission is to fill in the data with useful
        information.  Feel free to grab liberally information from the
        Gtk documentation from:
        
        	http://developer.gnome.org/doc/API/
        
        Of course, the API does not apply directly.  It only applies at
        a foundational level, so you can not really just copy and
        paste.  Summaries, and remarks sections can probably be lifted
        with little or no effort.
        
        Gtk# uses properties to represent get/set operations in the C
        API, so you can also use some bits from there.
        
        Most of the documentation contains already place holders for
        text, we use the internationally approved phrase for this
        purpose, `To be added'.  So the quest is to remove all of the
        "To be added" strings with information with resembles as closely
        as possible the toolkit reality.
        
* The pieces to be filled.

        Summaries are one or two line descriptions of the element
        (class, struct, interface, method, field, event, delegate), and
        its used to render summary pages.  So it has to be short.
        
        The "remarks" section is used to describe in detail the element.

* Tags.
        
        As you document Gtk# you will have a number of tags that you can
        use inside the summary and remarks sections, these are:
        
        <para> </para>
        	Used to separate paragraphs.
        
        <paramref name="param_name"/>
        	Used to reference a formal parameter to a function.
        
        <see cref="T:SomeTypeName"/>
        	Use this to reference a type, this will include an hyper
        	link to the page for type SomeTypeName.
        
        	For example, to reference "System.Enum", do:
        
        	<see cref="T:System.Enum"/>
        
        <see langword="keywrod"/>
        	Use this to link to a keyword in the C# language, for
        	example to link to `true', do:
        
        		<see langword="true"/>
        
        <example> ... </example>
        
        	Use example to insert an example.  The example can 
        	contain explanatory text and code.
        
        <code lang="C#">.. </code>
        
        	Use this to provide a sample C# program, typically used
        	within the <example> tags.
        
        	When providing examples, try to provide a full example,
        	we would like to be able to have a button to compile and
        	run samples embedded into the documentation, or pop up
        	an editor to let the user play with the sample.
        
        	You can link to an example like this:
        
        	<code lang="C#" source="file.cs"> </code>
        
        <item>
        	
        <list type="bullet">  </list>
        
        	Use this to create lists.  Lists contains <item>
        	elements
        
        <list type="table"> </lits>
                    <listheader>
                      <term>YOUR FIRST COLUMN</term>
                      <description>YOUR DESCRIPTION</description>
                    </listheader>
        
        	For two-column tables.  Inside use:
        
        	<item>
        		<term>First</term>
        		<description>First descritpion</description>
        	</item>
        	<item>
        		<term>Second</term>
        		<description>Second descirption</description>
        	</item>
        
* Registering your interest

	Subscribe to the mono-docs-list mailing list to coordinate the
	effort.  Since right we do not have a lot of people contributing
	and we do not have a nice web system to track this, only claim
	your documentation block on the list.

	When submitting changes, please send those to mono-docs-list for
	now (we will have a better system later, and we will grant cvs
	accounts for those helping, or those who want to help become the
	documentation maintainers).

	Each document begins with a tag <Type ...>.  Add to that the
	following attribute:

	<Type mono-doc-maintainer="your-name" ...>

	Post your documentation to mono-docs-list@ximian.com

Best wishes,
Miguel.