Convert a list to Markdown

Paste one item per line and get a Markdown list back - bulleted with `-`, `*`, `+`, or auto-numbered with `1.`. Blank lines are dropped; there is no escaping because Markdown list items accept literal text. Runs in your browser.

Input
Ready
Output
Live

A flat Markdown list generator

This tool produces a single-level Markdown list. Every non-blank input line becomes one list item, prefixed with your chosen bullet character and a single space. There is no nesting, no task-list checkboxes, and no content-level escaping - Markdown renderers accept `&`, `<`, `>`, and most punctuation inside list items as-is, so we do not touch them.

The Numbered option (`1.`) is a special case: instead of prefixing every line with the literal text `1.`, the tool actually numbers each line sequentially (`1.`, `2.`, `3.` and so on). Most Markdown renderers also auto-renumber `1.`-prefixed lists, but explicit numbering makes the source readable in plain text too, so that is what we emit.

Blank and whitespace-only input lines are skipped before emission. That means a stray trailing return in your paste does not produce an empty bullet `- ` in the output, and a paragraph break in your input does not create a numbered gap in the output list.

How to use convert a list to markdown

  1. 1Paste your list into the input panel, one value per line
  2. 2Pick a bullet character: `-` (default, canonical), `*`, `+`, or `1.` for numbered
  3. 3Output updates live; blank lines are dropped automatically
  4. 4Copy the Markdown or download it as a .md file from the output panel

Keyboard shortcuts

Drive ListShift without touching the mouse.

Shortcut Action
Ctrl ZUndo last input change
Ctrl Shift ZRedo
Ctrl Shift EnterToggle fullscreen focus on the editor
EscExit fullscreen
Ctrl KOpen the command palette to jump to any tool
Ctrl SSave current pipeline draft Plus
Ctrl PRun a saved pipeline Plus

What this generator actually does

One option and a handful of fixed behaviors.

Four bullet styles

Dash (`-`) is the default and the one CommonMark-compliant renderers produce when you round-trip. Asterisk (`*`) and plus (`+`) are semantically identical in Markdown - pick whichever your team standardises on. Numbered (`1.`) auto-increments per line for an ordered list.

Sequential numbering in `1.` mode

With Numbered selected, line 1 gets `1.`, line 2 gets `2.`, and so on. This produces Markdown source that is already readable as a numbered list in plain text, not just after rendering. Most renderers also accept all-`1.` source and auto-increment, but explicit numbering plays nicer with diff tools and grep.

Blank lines dropped

Empty and whitespace-only input lines are filtered out. That avoids emitting empty `- ` bullets when your paste has a trailing newline, and keeps numbered lists contiguous (`1. 2. 3.`) even if your source has paragraph breaks between items.

No content escaping

List-item text is emitted verbatim. Markdown renderers accept raw `&`, `<`, `>`, and most punctuation inside list items, so the tool does not transform them. If you want HTML-safe output, follow up with the convert-a-list-to-html tool.

Runs in your browser

The conversion is client-side JavaScript. Your list never leaves the tab - matters if you are pasting meeting notes, internal IDs, or anything else that should not round-trip to a third-party service.

Worked example

The blank line between Bananas and Cherries is dropped in the output.

Input
Apples
Bananas

Cherries
Output
- Apples
- Bananas
- Cherries

Settings reference

One option - Bullet style. Blank-line dropping and no-escape behavior are fixed.

Setting What it does Effect on the sample
Bullet: `-` (dash) Default CommonMark bullet; each line prefixed with `- ` `- Apples` / `- Bananas` / `- Cherries`
Bullet: `*` (asterisk) Alternative unordered bullet - semantically identical `* Apples` / `* Bananas` / `* Cherries`
Bullet: `+` (plus) Third legal unordered bullet; use only if your team standardises on it `+ Apples` / `+ Bananas` / `+ Cherries`
Bullet: `1.` (numbered) Ordered list; each line numbered sequentially starting at 1 `1. Apples` / `2. Bananas` / `3. Cherries`
Blank lines (automatic) Empty and whitespace-only input lines are skipped before emission The blank line between `Bananas` and `Cherries` is dropped

FAQ

Which bullet should I use?
If you are not sure, stick with `-` (dash). It is the CommonMark canonical form and what most Markdown renderers produce when they round-trip a list. `*` and `+` render identically. Use `1.` only when you actually want a numbered list.
Does `1.` produce literal `1.` on every line, or sequential numbering?
Sequential. Line 1 gets `1.`, line 2 gets `2.`, and so on. This keeps the Markdown source readable as a numbered list in plain text - many renderers also accept all-`1.` source, but explicit numbering diffs cleaner.
What happens to blank lines in my input?
They are skipped. A blank line does not produce an empty `- ` bullet in the output, and in numbered mode it does not break the counter - `1. 2. 3.` stays contiguous regardless of blank lines in the source.
Does the tool escape Markdown-special characters like `*` or `_`?
No. List-item content is emitted verbatim. Markdown renders most text inside list items literally, so escaping is rarely needed. If you paste a line like `**bold**` you will get it emitted as `- **bold**`, which renders as a bold bullet - that is usually what you want.
Can I convert Markdown back into a list?
Yes, use convert-markdown-to-a-list tool - it strips bullets, numbered prefixes, and checkboxes and returns one line per item.