Design user friendly pages using multiple columns

See also MultiColumnsTheme, SectionParser, DruidWikiTestCase

Many sites are using multiple columns, because its a better use of screen space. There is no much point in a browser window wider then 600-800 pixels to read text, as wider window with typical font size causes long lines of text, which are harder to read.

Here is an example: http://www.apple.com/hotnews/. The main left column showing the stories, and the right sidebar listing events, and various hot or recent "stuff". It not hard to find many more examples. Another example: http://phpnuke.org/. This is not an example of a good design, but how dynamic content from multiple sources is gathered in one page.

MoinMoin can only do one linear column. This style is good for long articles, but not enough to create nice and user friendly FrontPage, or any other central page. This will enable MoinMoin to serve better as community site, when the FrontPage gives you an dynamic overview of "Whats happening in the community".

Sidebar can be part of a theme or part of a page, or both. Themes can define sidebar that look the same on all pages, which is good for wiki related information. This page talks about page side bars, which show page related information. Since the theme control the page design, different themes can live with pages that have multiple columns or sidebars.

Here are possible page sidebars:

Test cases

DruidWikiTestCase - Creating maintable design of a nice looking front page

Implementation

Discussion

We are using for page style MacroMarket AnttiKuntsi's Columns.py macro. It works in 1.3.3 too. -- ReimarBauer 2005-03-13 08:18:25

It may conflict with the sidebars theme.

I don't see much point in using lots of (mostly useless) sidebars just to get the text narrow enough. It would be nice to have 2 text columns, but until html does support that in a clean way, I don't see us doing that. -- ThomasWaldmann 2005-03-13 11:44:05

We don't have to do this, just write an extension and people will use it if its useful. When and if the code is mature, conflicts are solved, and many people use the extension, we can consider integrating it into the main distribution. Actually I prefer smaller general core code, free from bugs, with proper hooks so it can be expanded easily by others. -- NirSoffer 2005-03-13 12:36:01

I feel that we are mixing issues here... One thing is to be able to embed variable content (as in a include) in a sidebar1. The other thing is to create the layout, that should be done completely in CSS, IMHO. Themes, like they are today, can -almost- allow to make both if we can use the include macro, with pages whose content is dinamycally generated, as a modular piece of the each page. Did I understood it OK? --SIG

To design the layout, each piece of data in the page should have the correct id or class. Currently, all the page data is in the page div. Tables can have class and id, but thats all. I'm not talking here about the wiki layout - only about page layout. Having dynamic content in the themes is possible, you don't need the include macro for that, just get the data from the special pages when rendering the theme.

I thinks ProcessingInstructions may be use to define the CSS . For example, the following

This seems clear. -- ZhangYunfeng 2006-08-24 13:51:47

An alternative may be ParserMarket/Frame -- ReimarBauer 2006-08-24 14:35:46

  1. Other used term is portlet, which I prefer because a sidebar can have multiple portlets, but let's focus first in the concept. (1)

MoinMoin: MultiColumns (last edited 2007-10-29 19:16:47 by localhost)