Text to list

Turn lines or a comma-separated string into a bullet or HTML list.

Your inputs stay on your deviceFREE · NO SIGN-UP
List style
Split items on

Each line becomes one item. Blank lines are skipped rather than becoming empty bullets. A line that already starts with a bullet or a number has that marker replaced, not doubled. Up to 200,000 characters.

Result

Start typing and the result appears here. No button needed.

THE LITTLE DETAILS

Text to list, without the extra steps.

Turn a run of text into a list you can paste somewhere. Split the items on lines, commas, semicolons, or tabs, then choose Markdown bullets, a numbered list, or ready-to-paste HTML. Quoted values survive splitting whole, and an item that already carries a bullet has that marker replaced instead of stacked.

How to use this tool

  1. 1Paste the text — one item per line, or a run separated by commas, semicolons, or tabs.
  2. 2Choose where items split and which list style you want. The result updates automatically.
  3. 3Check the item count, then select Copy result.

When Text to list is the right tool

  • A colleague sends the agenda as one comma-separated sentence and the meeting notes need it as bullets.
  • A spreadsheet row copied as tab-separated values has to become a list in a document or a ticket.
  • A CMS field takes HTML, and you have a plain list of features that needs to arrive as a proper ul.
  • An existing bulleted list has to become a numbered one, without ending up as 1. - item.

A quoted value is one item, not two

Text pasted out of a spreadsheet or an export carries the convention that a value containing the separator is wrapped in double quotes. Splitting naively on every comma turns "Smith, John" into two items and quietly corrupts a name, an address, or a number with a thousands separator. When you split on commas, semicolons, or tabs, quoted values are kept whole and their quotes removed, with a doubled quote inside becoming a single one. Splitting on lines leaves quotes exactly as typed, because there is no separator for them to hide.

Converting a list replaces its markers

Turning bullets into numbers is the most common reason to use this tool on text that is already a list, and stacking a new marker on the old one is never what anybody wants. An item beginning with -, *, •, or a number followed by a dot or bracket loses that marker before the new style is applied, and the count of replacements is shown. The marker must be followed by whitespace to count, so -5 degrees keeps its minus sign and 3.5 kg keeps its decimal.

HTML output is escaped, not just wrapped

An item that reads R&D <strong> is text, not markup. Emitting it raw would either break the page it is pasted into or inject a tag nobody asked for, so &, < and > are escaped before the li is built. The list is indented one level and each item sits on its own line, which is what makes it readable in a template, a CMS source view, or a code review. Items are all at one level; nesting would need indentation rules this tool deliberately does not guess at.

GOOD TO KNOW

A few quick answers.

Yes. When splitting on commas, semicolons, or tabs, a value wrapped in double quotes is kept whole, so "Smith, John" stays one item rather than two. The quotes themselves are removed, and a doubled quote inside the value becomes a single one, matching the way spreadsheets export text.

An item that starts with -, *, •, or a number followed by a dot or bracket has that marker removed before the new one is added, so converting bullets to numbers renumbers the list instead of producing 1. - item. The count of replaced markers is shown so you can see it happened.

The item text is escaped, so &, < and > become &amp;, &lt; and &gt; and cannot break out of the list or inject markup. The output is indented one level, with each item on its own line, so it reads normally in a template or a CMS source view.

No. A line break always ends an item, even when you are splitting on commas, because a wrapped paste would otherwise merge two rows into one item. If your items genuinely contain line breaks, join them first with Remove line breaks, then split on the separator you actually want.

Two separators in a row, a trailing comma, or a blank line leaves nothing between them, and an empty bullet is never useful. Those are dropped and counted in the summary, so a list of ten items that reports two skipped tells you the paste had a trailing separator rather than losing content silently.

Not here — every item comes out at the same level. Nesting requires deciding what indentation in the source means, and guessing wrong produces a structure that looks right but is not. Build the top level here and indent the children in your editor, where you can see the result.

Back to all tools