# Alternative (1) ordered list syntax

**URL:** <https://talk.commonmark.org/t/alternative-1-ordered-list-syntax/742>\
**Category:** Spec\
**Created:** [October 1, 2014, 2:26am UTC](https://talk.commonmark.org/t/alternative-1-ordered-list-syntax/742 "2014-10-01T02:26:09Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![chrisalley](https://cdn.commonmark.org/user_avatar/talk.commonmark.org/chrisalley/32/906_2.png) [@chrisalley](https://talk.commonmark.org/u/chrisalley)\
**Post date:** [October 1, 2014, 2:26am UTC](https://talk.commonmark.org/t/alternative-1-ordered-list-syntax/742/1 "2014-10-01T02:26:09Z")

</div>

John Gruber’s syntax guide defines the ordered list syntax as follows:

> Ordered lists use numbers followed by periods:

> 1. Bird
> 2. McHale
> 3. Parish

Unlike the unordered list syntax, there is only one variation.

However, it is common for writers to use brackets to define list items instead of periods. My suggestion is to add two variations to the ordered list syntax:

> 1. Bird
> 2. McHale
> 3. Parish

and

> (1) Bird  
> (2) McHale  
> (3) Parish

This syntax has likely been implemented in other Markdown flavours already, but I think we should discuss if and how it should be added to CommonMark - as an extension or as part of the core syntax?

This suggestion applies to [letter-order lists](http://talk.commonmark.org/t/letter-ordered-lists/173/10) as well.

---

<div class="post-metadata">

**Author:** ![chrisalley](https://cdn.commonmark.org/user_avatar/talk.commonmark.org/chrisalley/32/906_2.png) [@chrisalley](https://talk.commonmark.org/u/chrisalley)\
**Post date:** [October 1, 2014, 3:11am UTC](https://talk.commonmark.org/t/alternative-1-ordered-list-syntax/742/2 "2014-10-01T03:11:25Z")

</div>

It looks like `1)` style lists are already mentioned [in the spec](http://jgm.github.io/stmd/spec.html#lists). I’m not sure about `(1)` style.

---

<div class="post-metadata">

**Author:** ![lu\_zero](https://cdn.commonmark.org/user_avatar/talk.commonmark.org/lu_zero/32/557_2.png) [@lu\_zero](https://talk.commonmark.org/u/lu_zero)\
**Post date:** [October 1, 2014, 5:05am UTC](https://talk.commonmark.org/t/alternative-1-ordered-list-syntax/742/3 "2014-10-01T05:05:40Z")

</div>

I wouldn’t support (1) since 1) is already there and is more common.

---

<div class="post-metadata">

**Author:** ![chrisalley](https://cdn.commonmark.org/user_avatar/talk.commonmark.org/chrisalley/32/906_2.png) [@chrisalley](https://talk.commonmark.org/u/chrisalley)\
**Post date:** [October 1, 2014, 5:07am UTC](https://talk.commonmark.org/t/alternative-1-ordered-list-syntax/742/4 "2014-10-01T05:07:26Z")

</div>

Is there a reason not to use `(1)` as well? The writer may wish to use this style.

---

<div class="post-metadata">

**Author:** ![lu\_zero](https://cdn.commonmark.org/user_avatar/talk.commonmark.org/lu_zero/32/557_2.png) [@lu\_zero](https://talk.commonmark.org/u/lu_zero)\
**Post date:** [October 1, 2014, 5:09am UTC](https://talk.commonmark.org/t/alternative-1-ordered-list-syntax/742/5 "2014-10-01T05:09:36Z")

</div>

Making the people writing the parser easier. I’d restrict it to a single way (e.g. only `1.`) even.

---

<div class="post-metadata">

**Author:** ![chrisalley](https://cdn.commonmark.org/user_avatar/talk.commonmark.org/chrisalley/32/906_2.png) [@chrisalley](https://talk.commonmark.org/u/chrisalley)\
**Post date:** [October 1, 2014, 5:18am UTC](https://talk.commonmark.org/t/alternative-1-ordered-list-syntax/742/6 "2014-10-01T05:18:40Z")

</div>

I take the view that it is better to make the parser more complicated if it makes life easier for the writer. This is consistent with Markdown’s approach elsewhere. E.g. with unordered lists, some writers may find it more intuitive to use `*`, for others `-` is more natural.

---

<div class="post-metadata">

**Author:** ![lu\_zero](https://cdn.commonmark.org/user_avatar/talk.commonmark.org/lu_zero/32/557_2.png) [@lu\_zero](https://talk.commonmark.org/u/lu_zero)\
**Post date:** [October 1, 2014, 5:23am UTC](https://talk.commonmark.org/t/alternative-1-ordered-list-syntax/742/7 "2014-10-01T05:23:28Z")

</div>

1. making the parser fast makes the user life easier.
2. making the syntax small makes the user life easier.
3. adding a seldomly used variant of an already supported feature might not help much if it goes against 1 and 2.

vs

(1) is more typing  
(2) is surely more visually apparent  
(3) might be (more) noisy though ().

---

<div class="post-metadata">

**Author:** ![chrisalley](https://cdn.commonmark.org/user_avatar/talk.commonmark.org/chrisalley/32/906_2.png) [@chrisalley](https://talk.commonmark.org/u/chrisalley)\
**Post date:** [October 1, 2014, 6:04am UTC](https://talk.commonmark.org/t/alternative-1-ordered-list-syntax/742/8 "2014-10-01T06:04:19Z")

</div>

> [@lu\_zero](#):
>
> making the parser fast makes the user life easier.

Computers are fast and are only going to get faster. Parsing a Markdown file does not seem like a process that would be particularly resource intensive.

Are their real world examples of slow Markdown parsers causing performance issues?

> [@lu\_zero](#):
>
> making the syntax small makes the user life easier.

In this case, the writer already knows the three different variations because they are used outside of Markdown. All three variations are used in books, articles, manuals, etc. By supporting all three variations, if the writer intends to write an ordered list there is a good chance that she or he is going to use one of the three formats. That’s without looking at a Markdown syntax guide. If we require the writer to check which variation is supported, we’ve made their life harder.

> [@lu\_zero](#):
>
> (1) is more typing

I think that’s okay. No one is being forced to use `(1)` instead of `1)` or `1.` All three would be supported, so you could choose a variation that requires less typing. It’s like how you don’t have to use unlined headings, but they are an option if that visual preference is a priority over quickness of typing. It’s quite a subjective decision.

---

<div class="post-metadata">

**Author:** ![lu\_zero](https://cdn.commonmark.org/user_avatar/talk.commonmark.org/lu_zero/32/557_2.png) [@lu\_zero](https://talk.commonmark.org/u/lu_zero)\
**Post date:** [October 1, 2014, 9:47am UTC](https://talk.commonmark.org/t/alternative-1-ordered-list-syntax/742/9 "2014-10-01T09:47:41Z")

</div>

> [@chrisalley](#):
>
> Are their real world examples of slow Markdown parsers causing performance issues?

Yes, plenty =) Anything that renders a page from markdown from a website e.g. flask-flatpages.

btw we also have `*1` `1>` `<1>` and an another arbitrary amount of different markups to signal ordered lists, I wouldn’t consider all of them.

---

<div class="post-metadata">

**Author:** ![chrisalley](https://cdn.commonmark.org/user_avatar/talk.commonmark.org/chrisalley/32/906_2.png) [@chrisalley](https://talk.commonmark.org/u/chrisalley)\
**Post date:** [October 1, 2014, 10:24am UTC](https://talk.commonmark.org/t/alternative-1-ordered-list-syntax/742/10 "2014-10-01T10:24:20Z")

</div>

> [@lu\_zero](#):
>
> Yes, plenty =) Anything that renders a page from markdown from a website e.g. flask-flatpages.

It would be good to see some stats on this. Maybe adding this particular feature wouldn’t degrade performance significantly.

> [@lu\_zero](#):
>
> btw we also have \*1 1\> \<1\> and an another arbitrary amount of different markups to signal ordered lists, I wouldn’t consider all of them.

Are these examples commonly used though? I don’t recognise them from any texts I’ve read. `1.`, `1)`, and `(1)` seem to be the most common (along with Roman numerals).

---

<div class="post-metadata">

**Author:** ![HansBKK](https://cdn.commonmark.org/user_avatar/talk.commonmark.org/hansbkk/32/264_2.png) [@HansBKK](https://talk.commonmark.org/u/HansBKK)\
**Post date:** [October 1, 2014, 5:02pm UTC](https://talk.commonmark.org/t/alternative-1-ordered-list-syntax/742/11 "2014-10-01T17:02:49Z")

</div>

Note the 1) syntax is already supported

+1 adding ‘(1)’, perhaps as (part of) a flavor extension

as long as there aren’t major implementation headaches involved, which the dev’s would of course be aware of more than most of us

---

<div class="post-metadata">

**Author:** ![lu\_zero](https://cdn.commonmark.org/user_avatar/talk.commonmark.org/lu_zero/32/557_2.png) [@lu\_zero](https://talk.commonmark.org/u/lu_zero)\
**Post date:** [October 1, 2014, 7:20pm UTC](https://talk.commonmark.org/t/alternative-1-ordered-list-syntax/742/12 "2014-10-01T19:20:30Z")

</div>

(1) would map to ① btw.

---

<div class="post-metadata">

**Author:** ![chrisalley](https://cdn.commonmark.org/user_avatar/talk.commonmark.org/chrisalley/32/906_2.png) [@chrisalley](https://talk.commonmark.org/u/chrisalley)\
**Post date:** [October 2, 2014, 9:46am UTC](https://talk.commonmark.org/t/alternative-1-ordered-list-syntax/742/13 "2014-10-02T09:46:08Z")

</div>

What is the use case for `①`?

---

<div class="post-metadata">

**Author:** ![hobarrera](https://cdn.commonmark.org/user_avatar/talk.commonmark.org/hobarrera/32/154_2.png) [@hobarrera](https://talk.commonmark.org/u/hobarrera)\
**Post date:** [October 3, 2014, 9:31am UTC](https://talk.commonmark.org/t/alternative-1-ordered-list-syntax/742/14 "2014-10-03T09:31:19Z")

</div>

> [@chrisalley](#):
>
> Is there a reason not to use (1) as well? The writer may wish to use this style.

This looks **a lot** more like a footnote or something alike, rather than an ordered list. I’ve never seen this syntax, either in markdown, or elsewhere, except for lists with not linebreak between items.

---

<div class="post-metadata">

**Author:** ![chrisalley](https://cdn.commonmark.org/user_avatar/talk.commonmark.org/chrisalley/32/906_2.png) [@chrisalley](https://talk.commonmark.org/u/chrisalley)\
**Post date:** [October 3, 2014, 9:50am UTC](https://talk.commonmark.org/t/alternative-1-ordered-list-syntax/742/15 "2014-10-03T09:50:36Z")

</div>

Apple Pages auto creates new list items for all three ordered list types:

![](https://cdn.commonmark.org/uploads/default/463/34e060e5eb61e744.png)

Microsoft Word behaves the same way:

![](https://cdn.commonmark.org/uploads/default/464/770722ed4b6f0364.png)

---

<div class="post-metadata">

**Author:** ![lu\_zero](https://cdn.commonmark.org/user_avatar/talk.commonmark.org/lu_zero/32/557_2.png) [@lu\_zero](https://talk.commonmark.org/u/lu_zero)\
**Post date:** [October 6, 2014, 6:19am UTC](https://talk.commonmark.org/t/alternative-1-ordered-list-syntax/742/16 "2014-10-06T06:19:25Z")

</div>

And (again) they are both wrong and propagating this won’t make it any right.

© ™ (1) (2) … all map to unicode entities if you really want to parse them and while surely ① would work great for ordered lists, I’m not convinced that it should be core commonmark. Probably adding it to the extra flavour would be a good idea.

---

<div class="post-metadata">

**Author:** ![mofosyne](https://cdn.commonmark.org/user_avatar/talk.commonmark.org/mofosyne/32/1438_2.png) [@mofosyne](https://talk.commonmark.org/u/mofosyne)\
**Post date:** [October 6, 2014, 7:00am UTC](https://talk.commonmark.org/t/alternative-1-ordered-list-syntax/742/17 "2014-10-06T07:00:52Z")

</div>

While it doesn’t really matter much, I recently noticed that in the email “[Request for input: text/markdown media type](http://www.reddit.com/r/LightWeightMarkup/comments/2iadyi/request_for_input_textmarkdown_media_type/)”, there is a list that looks like:

```
...
(2) ...etc...
(3) The solution in (2) above further raises the question ...
...

```

Where `(2)` is used as an inline ‘visual reference’ to a list item number. So for some writers it’s probably done for stylistic consistency.

---

<div class="post-metadata">

**Author:** ![chrisalley](https://cdn.commonmark.org/user_avatar/talk.commonmark.org/chrisalley/32/906_2.png) [@chrisalley](https://talk.commonmark.org/u/chrisalley)\
**Post date:** [October 6, 2014, 8:23am UTC](https://talk.commonmark.org/t/alternative-1-ordered-list-syntax/742/18 "2014-10-06T08:23:18Z")

</div>

I raised a question earlier about the use case for ①; I’ll wait for response to that before discussing the point about mapping to unicode characters.

---

<div class="post-metadata">

**Author:** ![Matthijs\_Kooijman](https://cdn.commonmark.org/letter_avatar_proxy/v2/letter/m/3bc359/32.png) [@Matthijs\_Kooijman](https://talk.commonmark.org/u/Matthijs_Kooijman)\
**Post date:** [October 7, 2014, 6:02am UTC](https://talk.commonmark.org/t/alternative-1-ordered-list-syntax/742/19 "2014-10-07T06:02:04Z")

</div>

> [@lu\_zero](#):
>
> (c) ™ (1) (2) … all map to unicode entities

Huh? Is this in the CommonMark spec anywhere? I’m pretty sure I did not see this when I read the spec yesterday?

As for the problem at hand - I’d welcome the use of (1) as a ordered list bullet, it actually looks nice to me. Especially the example @mofosyne gives, referring back to an earlier number in running text is IMHO nicer as (1) than using 1. above or 1) above.

The counterargument to this, though, is that this looks good in markdown source, but in the rendered HTML, the list will always (at least usually) end up having 1. markers, which then no longer correspond with the (1) backreference…

---

<div class="post-metadata">

**Author:** ![chrisalley](https://cdn.commonmark.org/user_avatar/talk.commonmark.org/chrisalley/32/906_2.png) [@chrisalley](https://talk.commonmark.org/u/chrisalley)\
**Post date:** [October 7, 2014, 8:35am UTC](https://talk.commonmark.org/t/alternative-1-ordered-list-syntax/742/20 "2014-10-07T08:35:21Z")

</div>

> [@Matthijs\_Kooijman](#):
>
> The counterargument to this, though, is that this looks good in markdown source, but in the rendered HTML, the list will always (at least usually) end up having 1. markers, which then no longer correspond with the (1) backreference…

I think that’s fine. The styling could be changed with CSS anyway. Consider this example:

```html
<ol type="1">
  <li>One</li>
  <li>Two</li>
  <li>Three</li>
</ol>

```

Any of the three numeric ordered lists could output this HTML. The web designer could then customise the appearance of the ordered list, for example by adding a zero to the front of each list item with CSS:

```css
ol {
  list-style-type: decimal-leading-zero;
}

```

Because Markdown and HTML are agnostic about how elements are presented, this is fine. They could even change it to Roman numerals (`list-style-style: lower-roman`) or a number of other list styles. The designer could even change the numbers to bullets (normally used in unordered lists).

The reason for having `(1)` is not because it needs to map 1:1 with the output, but rather for predictability while writing it.

[Next page](https://talk.commonmark.org/t/alternative-1-ordered-list-syntax/742.md?page=2)
