As a first step before adding full templating, the existing pages
can be restyled to use CSS and to look more up-to-date.

Currently being developed in the html-cleanup bzr branch.

Goals

  • Avoid using tables for layout.
  • Make pages look more modern.
  • Add a stylesheet URL setting, and use it when generating HTML output.

OPEN: is the stylesheet URL a list-specific or site-wide setting?

Logical scopes and a proposed representation of those scopes within the style sheet cascade:

  • server level - defaults.css , not represented in the XHTML at all.
    • site level - mailman.css, the "global" stylesheet linked into every page. it uses an @include statement to incorporate defaults.css.
      • domain level - example.com.css added if present as a linked stylesheet into every page of that domain.
        • list level - listname.css if present.
          • page level - included within style elements.
            • tag/code level - use setting class="$values" for most style manipulations. Ideally no style="$style" use though browser bugs may require it

OPEN: where does the default stylesheet live? Is there a suitable static directory created by installing mailman?

Possibilities:

  • ./mailman/archives/public/ is accessible by HTTP whether by design or oversight
    • What other issues might stem from this?

OPEN: Allow embedding style directives in the output HTML?

This is 'considered harmful' as style="" overrides everything. We should never need to do this. 

CSS requirements

  • the bits of the template which define <head>, <body> etc. are defined in one pair of header and footer files, so they can be turned off easily;

  • the CSS files "namespace" everything by placing all Mailman content within a div, e.g. <div id="mailman">...</div> and then prefix all CSS rules with "#mailman" - this stops the Mailman styles from leaking out into the parent page elements.

Ideas

Does anyone know of heavily customized MM archives that we could look at for ideas?

Places to change

  • The HTML templates in templates/.
  • Mailman.HTMLFormatter
  • The CGI scripts in Mailman/Cgi (they use htmlformat.Table all over the place).

Templates

Particular changes to each template are recorded below.

For all templates:

  • Lowercase all HTML tags.
  • Wrap entire <body> inside <div id="mailman">...</div>.

  • Update the DOCTYPE declaration (to HTML 4.0?)
  • Check validity of generated pages

admindbdetails.html

admindbpreamble.html

admindbsummary.html

admlogin.html

archidxentry.html

archidxfoot.html

archidxhead.html

archlistend.html

archliststart.html

archtocentry.html

archtoc.html

  • Wrap archive listing with a <div>

archtocnombox.html

  • Wrap archive listing with a <div>

  • OPEN: Merge this with archtoc by using a 'display:ignore' around the link to the raw archive?

article.html

  • Add class=subject, author, date
  • Wrap body with a <div class="message">

  • Wrap "More information" with a <div class="?">.

  • OPEN: wrap the links to the various indexes with a special class?

emptyarchive.html

No specific changes.

headfoot.html

listinfo.html

options.html

private.html

roster.html

subscribe.html

MailmanWiki: DEV/StyledPages (last edited 2015-03-04 05:29:55 by msapiro)