Markdown List Generator

Pick a list type, type your items, and copy clean bullet, numbered or nested Markdown. Everything runs locally in your browser.

Free · No sign-up · Runs in your browserLast updated

How do you create a list in Markdown?

Start each line with `-`, `*`, or `+` for a bulleted list, or with `1.` for a numbered list, always followed by a space. Indent a child line by two spaces to nest it. Leave a blank line before the first item so the list separates from the paragraph above.

markdown
- Bulleted item
- Another item
  - Nested item

1. Numbered item
2. Second item

The first block renders as a bulleted <ul> containing one indented child; the second renders as a numbered <ol> starting at 1.

Try the Markdown List Generator

List items

Settings

List type
Bullet style
0

Output

Markdown list syntax explained

Markdown has exactly two list types, but most of the trouble people hit comes from three details: the space after the marker, the blank line before the list, and how far you indent a child item.

Unordered (bullet) lists

Start the line with a hyphen, asterisk or plus, then a space. All three markers render as the same bullet, so pick one and stay consistent — changing the marker mid-list silently starts a brand new list.

markdown
- Install the CLI
- Run the migration
- Deploy the app

* Asterisks work too
+ So do plus signs

The first three lines become one bulleted list. The last two use different markers, so they become two further lists rather than joining the first.

Ordered (numbered) lists

Use a number, then a period or a closing parenthesis, then a space. Only the first number is read: Markdown renumbers everything after it sequentially, which is why writing 1. on every line is a common trick in documentation.

markdown
1. Clone the repo
1. Install dependencies
1. Run the tests

5. Starts at five
6. Then six

The first block renders as 1, 2, 3 even though every line says 1. The second block starts at 5 because the first item does.

Nested lists and indentation

Indent a child item under its parent and keep that indentation for every item at the same depth. Two spaces is enough under a bullet; under a numbered item use three, so the child lines up with the parent's text. Never mix tabs and spaces in one list.

markdown
- Frontend
  - Components
    - Buttons
- Backend

1. Frontend
   1. Components
      1. Buttons
2. Backend

Three levels of bullets, then three levels of numbers where each nested level restarts its own count at 1.

Mixing ordered and unordered lists

Nesting is not limited to one list type. A bulleted item can contain a numbered sub-list and vice versa, which is how most outlines and release checklists are written.

markdown
- Release checklist
  1. Bump the version
  2. Tag the commit
  3. Publish the package
- After release
  - Announce it
  - Watch the error rate

A bulleted outer list whose first item holds a numbered sub-list and whose second holds a bulleted one.

Paragraphs and code inside a list item

Extra content belongs to an item only if it is indented to line up with that item's text, with a blank line before it. Forget the indentation and the block ends the list, restarting the numbering at the next item.

markdown
1. Install the package

   ```bash
   npm install mdutil
   ```

2. Import it and you are done.

A two-step numbered list where step 1 contains a fenced code block that stays inside the item instead of breaking the list in half.

Task lists (checkboxes)

GitHub Flavored Markdown extends bullets with checkboxes: the marker, a space, then [ ] or [x], then another space. Useful for issue templates, PR descriptions and daily notes.

markdown
- [x] Write the spec
- [ ] Review with the team
- [ ] Ship it

Three checkbox items with the first one ticked. Renderers without the extension show the brackets as plain text.

Where Markdown lists work

Basic bullets and numbers are universal, but nesting depth, task lists and the blank-line rule are where platforms diverge. Check the target before you publish a deep outline.

PlatformSupportNotes
GitHub / GitLabFullAll markers, unlimited nesting and - [ ] task lists. Two-space indent is enough.
DiscordPartialBullets and 1. numbers render, nesting is capped at a few levels, task lists are not supported.
SlackPartialThe composer has its own list buttons; pasted Markdown list syntax is not converted.
ObsidianFullEvery list type plus task lists, with automatic continuation when you press Enter.
NotionFullTyping "- " or "1. " creates a native list block; Tab and Shift+Tab change the nesting level.
RedditFullBullets and numbers work, but you must leave a blank line before the list or it merges upward.

How to make a list in Markdown

  1. Choose the list type

    Select Unordered for bullet points or Ordered for a numbered sequence, depending on whether the order of your items carries meaning.

  2. Pick a marker style

    Choose a hyphen, asterisk or plus for bullets, or numbers, letters and Roman numerals with a dot or parenthesis for ordered lists.

  3. Enter your items

    Edit each item field, add more rows with the add button, and remove the ones you do not need.

  4. Set the indentation

    Use the nesting slider to indent the list, and turn on custom indent size if your renderer expects something other than two spaces.

  5. Copy the result

    Copy the Markdown, switch to the HTML tab if you need <ul> or <ol> markup, and confirm the preview before publishing.

Frequently Asked Questions

What is the difference between an ordered and an unordered list in Markdown?

An unordered list uses a bullet marker — a hyphen, asterisk or plus — and compiles to <ul>. An ordered list uses a number followed by a period or parenthesis and compiles to <ol>. Use ordered lists when the sequence matters, such as installation steps, and unordered lists when it does not.

How do I create a nested list in Markdown?

Indent the child item under its parent, then keep exactly that indentation for every item at the same depth. Two spaces is enough under a bullet; under a numbered item use three so the child aligns with the parent's text. You can nest several levels deep and mix bullets and numbers freely.

How many spaces should I indent a Markdown list?

Two spaces per level is the safest choice for bulleted lists and is accepted by GitHub, Obsidian, Notion and Reddit. Under an ordered item use three spaces so the child lines up after the marker. Four spaces also works under a hyphen bullet, but never mix tabs and spaces inside the same list.

Why is my Markdown list not rendering correctly?

The four usual causes are: no blank line between the list and the paragraph above it, so the first item gets swallowed; a missing space after the marker, since -item is plain text while - item is a list; inconsistent indentation on nested items; and a marker change mid-list, which quietly starts a second list.

Do the numbers in a Markdown ordered list have to be sequential?

No. Markdown reads only the first number to decide where the list starts, then renumbers the rest sequentially. Writing 1. on every line still renders 1, 2, 3, which keeps diffs small because inserting a step in the middle does not renumber every line below it.

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

Set the first item to that number. A list beginning with 5. renders as 5, 6, 7 and so on. CommonMark and GitHub Flavored Markdown both honour the offset, though a few older renderers ignore it and always start at 1.

Can I use letters or Roman numerals in a Markdown ordered list?

Not in standard Markdown. Markers like a. or i. are treated as literal text by CommonMark, and the output is still an ordinary numbered list. Use CSS with the list-style-type property, or a raw HTML <ol> element with its type attribute, when you genuinely need lettered or Roman numbering.

How do I add a paragraph or code block inside a list item?

Leave a blank line, then indent the extra content so it lines up with the list item's text — two spaces under a hyphen bullet, three under a numbered item. Paragraphs, fenced code blocks, images and tables all attach to the item this way. Without the indentation the block ends the list.

How do I create a checkbox or to-do list in Markdown?

Write a bullet, a space, then [ ] for unchecked or [x] for checked, then another space and the item text. This is a GitHub Flavored Markdown extension: GitHub, GitLab, Obsidian and VS Code render clickable checkboxes, while CommonMark-only renderers show the brackets literally.

Does Markdown support definition lists?

Not in standard Markdown or GitHub Flavored Markdown. Definition lists come from extensions such as PHP Markdown Extra, MultiMarkdown and Pandoc, where the term goes on one line and the definition on the next starting with a colon and a space. Elsewhere, use raw HTML <dl>, <dt> and <dd> tags.