A Markdown list stripper
The parser walks line by line and strips a prefix matching `(^[\s>]*)(?:[-*+]|\d+[.)])\s+` - that catches every common Markdown list marker: dashes, asterisks, plusses, numbered with dot or paren, and blockquote-wrapped variants (`> - item`). Any leading indentation is eaten too, so a nested sublist flattens into the same flat output as its parent.
What it does not do: parse Markdown syntax beyond the list markers. Emphasis (`*bold*`), inline code, links, and headings all survive as literal text. Lines that do not match a list-marker pattern are dropped entirely - they do not pollute the output with non-list content.
Standard post-processing: Trim (default on) strips edge whitespace; Dedupe (default off) drops duplicates case-insensitively. Both apply after the marker strip, so you get the cleanest possible flat list out.
How to use convert markdown to a list
- 1Paste your Markdown list into the input panel
- 2Output is each list item with the marker removed, one per line
- 3Toggle Trim to control whitespace stripping (on by default)
- 4Toggle Dedupe to collapse duplicates
- 5Nested sublists flatten automatically - the output is a single flat list
Keyboard shortcuts
Drive ListShift without touching the mouse.
What this parser actually does
Regex-based marker strip, no Markdown rendering.
Strips every common list marker
Matches `- `, `* `, `+ `, numbered `1. `, numbered `2) `, and any leading whitespace + blockquote `> ` wrappers. A line like ` > - item` becomes `item`.
Flattens nested lists
Indentation is consumed along with the marker, so a sublist item comes out at the same level as its parent. The output is always a flat list regardless of input nesting depth.
Drops non-list lines
Lines that do not match a list-marker pattern are filtered out entirely. Headings, paragraphs, horizontal rules, and blank lines do not land in the output.
Does not render Markdown syntax inside items
Bold (`**text**`), italics (`*text*`), inline code, links, and references survive as literal text - the parser only strips the leading list marker, it does not interpret inline Markdown. If you need actual HTML output with bold / italic / link tags, run the source through a dedicated Markdown renderer (pandoc, marked, a GitHub-flavored tool); ListShift's convert-a-list-to-html just wraps lines in `<li>` tags and does not render Markdown.
Trim + Dedupe post-processing
Trim (on by default) strips leading/trailing whitespace per item. Dedupe (off by default) drops duplicate items case-insensitively. Both run after the marker strip.
Worked example
Dashes, nested sub-items, a blockquote-wrapped item, and a numbered item all collapse into a flat list.
- Apples - Oranges - Valencia - Cara Cara - Cherries > - Quoted item 1. Plums
Apples Oranges Valencia Cara Cara Cherries Quoted item Plums
Settings reference
How each option shapes the output using the sample above.
| Setting | What it does | Effect on the sample |
|---|---|---|
| Marker strip (automatic) | Removes `-`, `*`, `+`, `1.`, `2)`, blockquote `>` prefixes plus indentation | Seven items emitted, none with a leading bullet |
| Non-matching lines (automatic) | Lines without a list marker are dropped | Headings, blanks, or stray paragraphs would not appear in the output |
| Trim: on (default) | Strips leading/trailing whitespace per item | No visible change on the sample |
| Dedupe: on | Drops duplicates case-insensitively | No duplicates in sample - no change |