At line 51 changed one line |
== Repeated asterisk with "smart" disambiguation == |
== Repeated asterisk, with "smart" disambiguation == |
At line 53 changed one line |
A list is marked with a single asterisk {{{*}}} or hash {{{#}}} on the beginning of a line, followed with any other character and optionally preceded with any number of spaces or tabs. Subsequent list items are marked with any combination of asterisks and hashes on the beginning of a line, optionally preceded by any number of spaces or tabs. The last character of the combination denotes the kind of list: asterisk means bullet lists while hash means numbered list. The length of the combination defines the nesting level of particular list item -- the more characters, the more nested the list is. If the combination is too long for the number of lists already introduced, the maximum possible nesting level is assumed. The list ends as soon as there is a line that doesn't start with a combination of asterisks and hyphens. |
A list is marked with a single asterisk {{{*}}} or hash {{{#}}} on the beginning of a line, followed with any other character and optionally preceded with any number of spaces or tabs. Subsequent list items are marked with any combination of asterisks and hashes on the beginning of a line, optionally preceded by any number of spaces or tabs. The last character of the combination denotes the kind of list: asterisk means bullet lists while hash means numbered list. The length of the combination defines the nesting level of particular list item -- the more characters, the more nested the list is. If the combination is too long for the number of lists already introduced, the maximum possible nesting level is assumed. If the type of list item (bullet/numbered) doesn't match the type of list on its level, a new nesting level is created for the item. |
The list ends as soon as there is a line that doesn't start with a combination of asterisks and hyphens. |
At line 61 changed one line |
* The second bullet list item, |
* The second bullet list item, |
At line 63 changed 5 lines |
**The second item of the numbered sublist, |
**** A first item of bullet subsublist |
*** Second item of the subsublist |
# Third item of the list |
#* A bullet sublist |
*#The second item of the numbered sublist, |
****A first item of bullet subsublist |
***Second item of the subsublist |
**# A firts item of a numbered subsubsubllist |
#First item of a numbered sublist |
#*A bullet subsublist |
At line 77 added one line |
* Even wikis that use indentation for marking list nesting can adapt this technique (in addition to their native markup) |
At line 79 added one line |
* Moving the list items around by copy-pasting (or cut-pasting) is pretty straightforward, even between different lists or pages -- except for the first list item, removal of which can cause the list to stop being parsed as list. |
At line 79 changed 2 lines |
* The research on WikiPedia indicates that in over 50% of cases users will not format the list for readability if only the rendering is correct |
* The markup is context-dependent -- user can't tell if it's bold text or list by just looking at a single line |
* The research on WikiPedia indicates that in over 50% of cases users will not format the list for readability if only the rendering is correct -- thus the lists become unintelligible easily |
* The markup is context-dependent -- user cannot tell if it's bold text or list by just looking at a single line |
* Allowing line breaks in list items leads to some additional ambiguities and potential spots for user mistakes |
* There are additional cases of ambiguity if the underlying engine uses on MixedMode the hash and asterisk characters for other markup -- like single asterisks for emphasizing single words |
* In MixedMode, engines are very likely to have a much simpler algorithm for recognizing lists, that must be dropped in order to implement Creole |
|
== Repeated asterisk, simple == |
Any line that starts with optional spaces or tabs followed by a combination of asterisks and hashes is considered a list item. The last character in the combination of the first item in given (sub)list denotes the kind of list. The number of characters in the combination denotes nesting -- if it's too high for existing lists, the maximum possible nesting is assumed. |
|
=== Example === |
{{{ |
Some text that is not a part of the list. |
**The first bullet list item, |
* The second bullet list item, |
##The first numbered sublist item, |
*#The second item of the numbered sublist, |
****A first item of bullet subsublist |
***Second item of the subsublist |
**# A third item of a bullet subsubllist |
#Third item of the bullet list |
#*A bullet sublist |
This is not a part of the list anymore. |
}}} |
|
=== Advantages === |
* Uses the character that is most popular for bullet lists among existing wiki engines |
* Items can be freely moved around. |
* The nesting rules are simple to explain and implement, as there is no creation of new nesting level when the list kinds don't match. |
* Whitespace is not meaningful, which helps implementing MixedMode in wikis that use indentation |
* No "wrong" or "erroneus" input |
* Implementing multi-line list items doesn't introduce additional conflicts |
* The basic, first-level lists work as intended in most wikis |
* The markup is not context-dependent, every line stands on its own |
=== Disadvantages === |
* Conflicts with any markup that uses asterisks or hashes and can appear at the beginning of a line -- in particular, with Creole's bold markup |
* To nest bullet list inside numbered list (or vice versa), you need to explicitly make one of them of higher nesting level |
* Readability of the code is entirely up to the user, research shows that users don't make the code readable if they don't have to. |
* Items with the same number of asterisks in front can end up in different levels of nesting. |
|
== Repeated asterisk, with space == |
Any line that starts with optional spaces or tabs, followed by a combination of asterisks and hashes, followed by at least one space or tab is considered a list item. The kind of list is determined by the last character in the combination of the first item in the (sub)list. The nesting level is determined by the number of characters in the combination. If this number is too high for existing lists, the maximum nesting level possible is assumed. |
|
=== Example === |
{{{ |
Some text that is not a part of the list. |
** The first bullet list item, |
* The second bullet list item, |
## The first numbered sublist item, |
*# The second item of the numbered sublist, |
**** A first item of bullet subsublist |
*** Second item of the subsublist |
**# A third item of a bullet subsubllist |
# Third item of the bullet list |
#* A bullet sublist |
This is not a part of the list anymore. |
}}} |
|
=== Advantages === |
* Uses the character that is most popular for bullet lists among existing wiki engines |
* Items can be freely moved around. |
* The nesting rules are simple to explain and implement, as there is no creation of new nesting level when the list kinds don't match. |
* Indenting is not meaningful, which helps implementing MixedMode in wikis that use indentation |
* No "wrong" or "erroneus" input |
* Implementing multi-line list items doesn't introduce additional conflicts |
* The basic, first-level lists work as intended in most wikis, except for when the users didn't put a space |
* The markup is not context-dependent, every line stands on its own |
* There are no conflicts with markups using asterisks or hashes, except for some very rare corner cases |
=== Disadvantages === |
* To nest bullet list inside numbered list (or vice versa), you need to explicitly make one of them of higher nesting level |
* Items with the same number of asterisks in front can end up in different levels of nesting. |
* The indenting of list, which is arbitrary, may be misleading and impact readability |
* Forces engines to use stricter rules for lists in their MixedMode |