# Documentation |

Each Eiffel library or tool should come with some documentation to be placed in `$GOBO/doc/<library-or-tool-name>`. Documentation should be written in American English. It is possible to provide the documentation in other languages (French, Spanish, Dutch, German, ...), but it should at least be available in American English.

Documentation format: DocBook XML DTD? ...

Graphviz could probably be used to generate class inheritance graphs. Graphiz is an open source graph drawing software. Have a look at:

> http://www.graphviz.org

For example, with the following `list.dot` file:

>     digraph G {
>     	edge [dir=back, color=maroon];
>     	node [height=0.35, fontsize=8, style=filled, color=paleturquoise3];

>     	ds_list [label="DS_LIST*"];
>     	ds_linked_list [label="DS_LINKED_LIST"];
>     	ds_bilinked_list [label="DS_BILINKED_LIST"];
>     	ds_arrayed_list [label="DS_ARRAYED_LIST"];

>     	ds_list -> ds_linked_list -> ds_bilinked_list;
>     	ds_list -> ds_arrayed_list;
>     }

I managed to generate a `list.gif` file similar to those used in the existing Gobo Eiffel documentation with the command-line:

>       dot -Tgif -o list.gif list.dot

I don't know yet how to simulate the client relationship double-arrow with graphviz though.

(Thank you to Franck Arnaud for letting me know about this graphviz tool.)