Markdown Lists

Updated

Create an unordered list in Markdown by starting lines with a hyphen, asterisk, or plus sign (- item). Create an ordered list by starting lines with a number and period (1. item).

Unordered lists

Hyphens, asterisks, and plus signs are equivalent; pick one and stay consistent within a list.

- First item
- Second item
- Third item

Ordered lists

The numbers do not have to be sequential, since parsers renumber automatically. Writing "1." for every item is a common trick that keeps diffs clean when reordering.

1. Install the CLI
1. Run the converter
1. Download the PDF

Nested lists

Indent nested items so they align with the first character of the parent item text: 2 spaces for "-" lists, 3 for "1." lists. Four spaces always works in GFM.

- Fruits
  - Apples
  - Oranges
- Vegetables
  1. Carrots
  2. Peas

Bullet list inside a numbered list

Steps with sub-points are the most common mix. Indent the bullets three spaces under a "1." item so they line up with the step text; for items 10 and above, indent four.

1. Prepare the file
   - Check the headings
   - Fix broken tables
2. Convert to PDF
   - Pick a theme
   - Choose A4 or Letter
3. Share the result

Starting the numbering at any number

The first number sets the start and the rest count up from it, so a list that begins with 5. renders 5, 6, 7 even if you wrote 1. for the following items. Up to nine digits are allowed. The flip side: a line that starts with a number and a period, like a year, becomes a list unless you escape the period.

5. Fifth step
1. Sixth step
1. Seventh step

2026\. A year that is not a list item

In CommonMark, a numbered list that interrupts a paragraph without a blank line must start at 1. Leave a blank line before lists that start at another number.

Lettered and roman-numeral lists (a, b, c)

Markdown has no syntax for lettered lists: "a." at the start of a line is plain text. Use an HTML ordered list with the type attribute, which GitHub allows: type="a" for a, b, c, type="A" for capitals, and type="i" for roman numerals. The start attribute sets the first value. On GitHub specifically, nested numbered lists are already styled as i, ii, iii at the second level and a, b, c at the third.

<ol type="a">
  <li>First option</li>
  <li>Second option</li>
</ol>

<ol type="i" start="3">
  <li>Starts at iii</li>
</ol>

Hyphen vs asterisk vs plus

All three bullet markers produce identical HTML. Hyphens are the most common choice and the default in formatters such as Prettier; asterisks are easy to confuse with emphasis in the source. Switching markers in the middle of a list starts a new list, which can add unexpected spacing, so keep one marker per list. A line of * * * or - - - is a horizontal rule, not three empty bullets.

- Hyphen
- Hyphen

* Asterisk
* Asterisk

+ Plus
+ Plus

Frequently Asked Questions

Why is my nested Markdown list not rendering?

Insufficient indentation. Nested items must be indented enough to align with the parent item content. When in doubt, use four spaces. Tabs mixed with spaces are another frequent culprit.

How do I add a paragraph inside a list item?

Leave a blank line and indent the paragraph to match the list item content (typically 2–4 spaces). The same works for code blocks inside list items.

How do I make a lettered list (a, b, c) in Markdown?

Markdown cannot do it natively. Use HTML: <ol type="a"> with <li> items. GitHub renders the type attribute; on GitHub, a numbered list nested two levels deep is also shown with letters automatically.

How do I start a numbered list at a number other than 1?

Begin the list with the number you want, such as "4.". The following items count up from there regardless of the numbers you type, as long as a blank line separates the list from any paragraph above it.

Should I use - or * for bullet points?

Either. They render identically, but hyphens are the more common convention and cannot be confused with italic or bold markers. Whatever you pick, use one marker throughout a list.

Try it live

Paste this syntax into the free markdown to html converter and see the rendered output instantly. No signup, and everything runs in your browser.

Open Markdown to HTML Converter →

More Markdown syntax: