For Creole 0.4 I'd like to bring out the issue of spaces after the bullets. The current (0.3) draft and previous specs have this ugly special case:
About unordered lists and bold: a line starting with (including optional whitespace before and afterwards), immediately following an unordered list element a line above, will be treated as a nested unordered list element. Otherwise it will be treated as the beginning of bold text. Also note that bold and/or italics cannot span lines in a list._
I think it's ugly and complicates the parser needlessly. Also, many wikis already have very similar list markup, just without this special case -- making them accept both Creole and native markup at the same time would require some sort of a hack (I can't even imagine it currently). One possible way of getting rid of that special case and still keeping list markup unambigous with bold markup is requiring a space after the bullet.
Now, this is a different case than with space before the bullet. There are wiki engines that don't allow space before the bullet, and those that require it -- making it optional is really the only way to make them agree. On the other hand, no wiki engine I know prohibits the space after the bullet. Some require it.
Moreover, putting a space after most punctuation characters is a tradition, and for many people -- a reflex. I can see nothing unnatural in requiring it -- and it simplifies the parsers and the specs -- making Creole both easier to implement and to teach.
For consistency's sake, it would also apply to the numbered lists and indentation (if included) -- that resolves a conflict with #pragma syntax that some wikis use.
We can also drop the requirement of emphasis not spanning lines with this.
Advantages to NOT requiring space after bullet #
- more user freedom
- less ongoing user frustration (user will keep forgetting to add the required space)
- already in Creole 0.4
- less keypresses
- less space taken up by the raw text in the (possibly narrow) textarea
Advantages to requiring space after bullet #
- makes parsers easier to write
- no ambiguity with bold
- no ambiguity with #pragma or ##comment
- more readable (and nicer, heh) raw text
- leaves more space for extending Creole (eg. using different characters for bullets), solves the ambiguity problem once and for all
- consistent with the tradition of putting a space after punctuation characters
- consistent with the practice of using at least two characters for markup
- consistent with the (both default and traditional) presentation
- already used in thousands of text documents