(anonymous guest) (logged out)

Copyright (C) by the contributors. Some rights reserved, license BY-SA.

Sponsored by the Wiki Symposium and the Nuveon GmbH.

This is version . It is not the current version, and thus it cannot be edited.
[Back to current version]   [Restore this version]

For detail about me, see http://sheep.art.pl/.

Work in progress#


What could be improved in Creole:

  • disallow mixing of lists types,
  • allow both '*' and '-' in lists (see below),
  • allow both '=' and '!' in headings,
  • treat all __...__, **...** and //...// as three different kinds of emphasis, without specifying the exact presentation,
  • disallow mixing of emphasis types,
  • have markup for inline quotes,
  • have markup of some common characters not easily accessible from keyboard, like "--" for en-dash, "---" for em-dash, "..." for ellipsis, etc.,
  • move/add the markup for monospace text, tables, indentation, plugin macros, placeholder, subscript, superscrpt, definition lists to Creole additions,
  • don't add any more new markup to core Creole.

This is where I stand for today (2007-02-14). I'm open to explain/discuss my reasons behind any of these points. I reserve a right to change my mind about any of these points.

I think that Creole has slowly reached its desirable form and that further non-cosmetic changes will only harm it. There is still a lot of work for us left once we declare Creole final -- create the supporting software, improve the wording, prepare cheatsheets and detailed descriptions in various languages, work on Creole additions and hints for implementers, etc.

(Anti)Patterns #

Elaboration on lists#

By analyzing various formatted text documents available, one can identify two common patterns for creating lists: hyphen list and bullet list (with a bullet-like character, like "*", "o", "x", "+" or even "@" or "%"). While bullet lists seem to be common in wikis and various text files created as such from the beginning, the hyphen lists seem to be favored by people who don't normally work with plain text files.

One can also observe two common patterns for multi-level, nested lists: if the user has time for it, is skilled enough and is sure that the text will not be mangled, indentation is used to mark list nesting. Otherwise, or in addition to nesting, users usually vary the kind of list depending on the nesting level: numbered or otherwise enumerated lists, bullet lists, hyphen lists. A typical list with complex nesting would look like this:

 1. first level
 2. first level
  a) second level
  b) second level
      * third level
        - fourth level
        - fourth level
       * third level
   c) second level
        - third level
        - third level
3. first level

Note that this technique is pretty fault-proof -- even if the indetation is mangled or lines are wrapped, it's still easy to guess the intended hierarchy. Note that neither indentation nor the kinds of lists used are consistent -- they don't have to, because it's the change in either (or both) that is important. In case of Creole we want to igonre indenting completely, of course, but still allow it.

It should be noted that non-programmer users are not very fond of tree-like structures. When their list has more than, say, 3 levels of nesting, it's a good idea to fall back into other formatting possibilities, like headings (possibly numbered, like 1.2.3), indented paragraphs, inline comma-separated lists or even figures with the trees presented graphically.

Getting back to Creole, it seems that it would be nice if it recognized the two most popular patterns of lists. There is no problem with bullet list created using asterisks as long as it's a single asterisk only. There is a slight problem with list created usign single minus characters: dialogues. The common case looks like this:

 - Hi there!
 - Oh, hello...
 - Do you know why does a programmer always use all the shampoo in the bottle?
 - No, why?
 - Because the instructions say: "put some shampoo on your hair, wash, rinse, *repeat*".
 - Ha ha ha!

Naturally, users would like something like this to be treated as a dialogue. We can either make the hyphen list look like... a hyphen list (but we can't define the exact rendering in Creole) or tell the user to format this in a special way:

 -- Hi there!\\
 -- Oh, hello...\\
 -- Do you know why does a programmer always use all the shampoo in the bottle?\\
 -- No, why?\\
 -- Because the instructions say: ``put some shampoo on your hair, wash, rinse, **repeat**''.\\
 -- Ha ha ha!

This will format it as a normal paragraph, with typographically correct en-dashes marking the dialogue and forced new lines to break it into voices. Of course, it would be best if the first example "just worked". It is really unfortunate that it's not easy to make a html list look like hyphen list with just CSS1 -- you either need to use graphics or CSS2 which is not supported by (duck!) TheMostCommonlyUsedBrowser:

 ul.hyphen > li { list-style: none }
 ul.hyphen > li:before { position: marker; content: &#8259 }

As for nesting -- you can already make at least three levels of nested lists using the numbered, bullet and hyphen lists. More if you use headings. If you need even more -- 7 or more levels of nesting -- then you're probably better off preparing a graphical illustration for the complicated problem -- MoinMoin even has a GraphWiz plugin for such occassions. Of course, a different way of marking nested lists can still be used -- like the repeating of the list character that is used now -- but probably best included in the Creole additions.

Add new attachment

Only authorized users are allowed to upload new attachments.

« This particular version was published on 25-Feb-2007 21:04 by