MDConverter
Universal In-Browser Converter
100% Client-Side Private

Markdown Lists: Bullet Points, Numbered Lists and Nested Lists

By the MDConverter team · Updated · 2 min read

Quick answer

Start a line with -, * or + and a space for a bullet point, or with a number followed by a period (1.) for a numbered list. Indent a line so it lines up with the text of the item above (usually 2 spaces for bullets, 3 for numbers) to nest it. Numbered lists count from the first number you type, so you can write every item as 1. and the renderer numbers them for you.

Bullet lists

Any of -, * or + followed by a space starts a bullet. Pick one and use it consistently — switching markers in the middle starts a new list.

Markdown
- Milk
- Eggs
- Bread
Result
  • Milk
  • Eggs
  • Bread

Numbered lists

Write a number, a period (or a closing parenthesis) and a space. Only the first number matters: the list counts up from it.

Every item numbered "1." still renders 1, 2, 3
Markdown
1. Preheat the oven
1. Mix the ingredients
1. Bake for 25 minutes
Result
  1. Preheat the oven
  2. Mix the ingredients
  3. Bake for 25 minutes
Writing 1. for every item means you never have to renumber when you insert a step.
Start at another number
Markdown
7. Seventh step
8. Eighth step
Result
  1. Seventh step
  2. Eighth step

Nested lists

Indent the child item so its marker lines up with the text of the parent item. For - that is 2 spaces; for 1. it is 3 spaces; for 10. it is 4. Four spaces works for most cases in most apps.

Markdown
1. Fruit
   - Apples
   - Pears
2. Vegetables
   - Carrots
     - Orange
     - Purple
Result
  1. Fruit
    • Apples
    • Pears
  2. Vegetables
    • Carrots
      • Orange
      • Purple

Paragraphs, code and quotes inside a list item

Indent follow-up content to the item's text and leave a blank line before it. The content then belongs to that item instead of ending the list.

Markdown
1. Install the package:

   ```bash
   npm install marked
   ```

2. Import it in your file.

   > Tip: use the ESM build in browsers.
Result
  1. Install the package:

    npm install marked
  2. Import it in your file.

    Tip: use the ESM build in browsers.

Tight vs loose lists

If any items are separated by a blank line, the whole list becomes "loose" and every item is wrapped in a paragraph — which adds space between all items. Keep items on consecutive lines for a compact list.

Markdown
- Tight
- List

Text between the lists.

- Loose

- List
Result
  • Tight
  • List

Text between the lists.

  • Loose

  • List

Ending a list (or keeping two lists apart)

A list ends at a blank line followed by unindented text. To place two separate lists next to each other, put something between them — a short sentence, or an HTML comment <!-- --> which renders as nothing.

To start a line with a number and period without creating a list (for example 2026. What a year.), escape the period: 2026\. What a year.

Lists in Word, Google Docs and email

Converters keep list structure: Markdown to Word produces real Word numbering and bullets with the nesting levels intact (not typed "1." characters), and the same lists paste correctly into Google Docs and Gmail or Outlook. For a checklist, see task lists.

List support by app

AppSupportedNotes
GitHub, GitLab, VS CodeYesFull CommonMark rules: nesting by indentation, any start number.
ObsidianYesTab indents a list item; supports collapsing nested items.
NotionYesTyping - or 1. creates a list block; Tab nests.
DiscordYesBullets and numbers, nested with indentation.
SlackPartlyThe message editor creates lists when you type - or 1. ; pasted Markdown lists stay as text.
WhatsAppPartlySince 2024 - / * bullets and 1. numbers are formatted; no nesting.

Common mistakes and how to fix them

ProblemFix
Nested item shows at the top levelIndent it further — to line up with the parent’s text (3+ spaces under 1.).
Numbering restarts at 1 after a code blockIndent the code block (and the blank lines around it) to the item’s text so it stays inside the item.
A sentence starting with "2026." became a listEscape the period: 2026\..
Big gaps between list itemsRemove blank lines between items to make the list tight.

Tools for this

Frequently Asked Questions

Frequently Asked Questions About Lists

Comprehensive answers to common technical, formatting, security, and compatibility questions.

Enough to line up with the text of the parent item: 2 spaces under "- ", 3 under "1. ", 4 under "10. ". Four spaces works in almost every app, which is why many people use it everywhere.

Sources

← All Markdown lessons · Markdown cheat sheet