Module RDoc::Page
In: rdoc/generators/template/html/html.rb
Exception RDocError RDoc C_Parser Module: RDoc

This is how you define the HTML that RDoc generates. Simply create a file in rdoc/generators/html_templates that creates the module RDoc::Page and populate it as described below. Then invoke rdoc using the --template <name of your file> option, and your template will be used.

The constants defining pages use a simple templating system:

Your file must contain the following constants

a list of fonts to be used
a CSS section (without the <style> or comments). This is used to generate a style.css file
The main body of all non-index RDoc pages. BODY will contain two !INCLUDE!s. The first is used to include a document-type specific header (FILE_PAGE or CLASS_PAGE). The second include is for the method list (METHOD_LIST). THe body is passed:
%title%:the page's title
%style_url%:the url of a style sheet for this page
%diagram%:the optional URL of a diagram for this page
%description:a (potentially multi-paragraph) string containing the description for th file/class/module.
%requires%:an optional list of %aref%/%name% pairs, one for each module required by this file.
%methods%:an optional list of %aref%/%name%, one for each method documented on this page. This is intended to be an index.
%attributes:An optional list. For each attribute it contains:
%name%:the attribute name
%rw%:r/o, w/o, or r/w
%a_desc%:description of the attribute
%classlist%:An optional strin containing an already-formatted list of classes and modules documented in this file

For FILE_PAGE entries, the body will be passed

%short_name:The name of the file
%full_path%:The full path to the file
%dtm_modified%:The date/time the file was last changed

For class and module pages, the body will be passed

%classmod%:The name of the class or module
%files%:A list. FOr each file this class is defined in, it contains:
%full_path_url%:an (optional) URL of the RDoc page for this file
%full_path%:the name of the file
%par_url%:The (optional) URL of the RDoc page documenting this class's parent class
%parent%:The name of this classes parent.

For both files and classes, the body is passed the following information on includes and methods:

%includes%:Optional list of included modules. For each, it receives
%aref%:optional URL to RDoc page for the module
%name%:the name of the module
%method_list%:Optional list of methods of a particular class and category.

Each method list entry contains:

%methods%:a list of method descriptions

Each method description contains:

%aref%:a target aref, used when referencing this method description. You should code this as <a name="%aref%">
%codeurl%:the optional URL to the page containing this method's source code.
%name%:the method's name
%params%:the method's parameters
%m_desc%:the (potentially multi-paragraph) description of this method.
Header for pages documenting classes and modules. See BODY above for the available parameters.
Header for pages documenting files. See BODY above for the available parameters.
Controls the display of the listing of methods. See BODY for parameters.
The top-level index page. For a browser-like environment define a frame set that includes the file, class, and method indices. Passed
%title%:title of page
%initial_page% :url of initial page to display
Individual files for the three indexes. Passed:
%index_url%:URL of main index page
%entries%:List of
%name%:name of an index entry
%href%:url of corresponding page
Same as CLASS_INDEX for methods
Same as CLASS_INDEX for methods
A wrapper around CLASS_INDEX< METHOD_INDEX, and FILE_INDEX. If those index strings contain the complete HTML for the output, then FR_INDEX_BODY can simply be !INCLUDE!
Page used to display source code. Passed %title% and %code%, the latter being a multi-line string of code.