Version 1 (modified by MtnViewMark, 4 years ago)

--

Interface Page Structure

Structure of XHTML for main (interface) pages:

body
    div#package-header
    div#module-header
        p.caption
    div#table-of-contents
        p.caption
        ul(li(a(text))|ul(...))      
    div#description
        p.caption
        <doc>
    div#synopsis
        p.caption
        ul
            li.src.short
                text                -- currently still wrapped in a p
                ul.subs(li(..))     -- missing the .subs
                text (closing '}')
    div#interface
        h1(h2(...))
        div.top
            p.src
            div.arguments.subs
                p.caption
                <subs>
            <doc>
            div.constructors.subs,
            div.instances.subs,
            div.arguments.subs
            div.fields.subs
                p.caption
                <subs>
            div.associated-types.subs
            div.methods.subs,
                p.src
                <doc>
                div.subs...
    div#footer
        p

Expected general formatting:

* constructors - shown side-by-side w/doc ** fields - shown side-by-side w/doc ** GADT args- shown side-by-side w/doc (does this exist?) * methods - shown stacked w/doc ** args - shown side-by-side w/doc (?) * associated types - shown stacked w/doc ** args - shown side-by-side w/doc (?) * args - shown side-by-side w/doc * instances - shown side-by-side w/doc (in classes) * instances - just a list (no doc for types)

<doc> ::= p | ul | ol | pre
<subs> ::=
    table
        tr
            td.src
            td(<doc>)
        tr
            td colspan=2
                div.subs... -- for documented arguments

General Entity, Class and ID usage

basic structure

* div#xxx -- major page divs only * p.caption -- fixed header for some page sections & the name of the module (in .module-header) * h1, h2... -- interface's organization only

formatting

* .src -- declaration source - for source code styling applied to li, p, and dt, such source is *not* part of documentation

documentation

* p * ul * ol * pre -- for blocks of preformatted code * code -- for inline source code * a -- both in-line and external links

these are all "unadorned" by classes, or wrappers the default styling of the page should be for these blocks of documentation elements

declaration structures

* .short- an element containing a single, "short" declaration, used in #synopsis and in mini-pages * .top - an element containing a single, top level declaration & its doc, used in #interface * .subs - an element containing multiple, sub-declaration parts of a decl * .arguments, .constructors, .methods, .instances, .associated-types -- various kinds of .subs

Ancillary Page Structures

doc-index.html & doc-index-X.html

These are the alphabetic index pages

body
    div#package-header
    div#index
        p.caption
        ul
            li(a)
        table
            tr
                td.src, td.module
                td.alt, td.module
    div#footer

index-frames.html

This is the flat list of modules shown in the upper left pane of the frames.html view

body#mini
    div#module-list
        p.caption
        ul
            li(span.module(a) <doc> span.package() ul(...))

index.html

This is the "master" page for a package, or a whole set of packages. It includes a hierarchal list of modules, with optional short comments and package names.

body
    div#package-header
    div#description
        h1
        <doc>
    div#module-list
        p.caption
        ul
            li.module(a) -- never nested
    div#footer

mini_Foo.html

This is the flat list of definitions in a module, shown in the lower right pane of the frames.html view. It differs from the synopsis in that the declarations have less information (no constructors or methods, for example), and the hierarchal headings from the contents are interspersed.

body#mini
    div#module-header
        p.caption
    div#interface
        h1, h2...
        div.top
            p.src

Outstanding Questions

We could show sub declarations as ad dl list, structured as so, but it is impossible to style this side by side with the right column being all the same sized AND allowed to size automatically to the (max-width) content:

    dl
        dt.src
        dd(<doc>, div.subs...)

Should we add the class doc to all constructs used for documentation? Or perhaps wrap documentation blocks in div.doc? Right now they are "unadorned" as they are the standard, "readable text" on the page.