Best Markdown Converter

Markdown Lists Explained Bullets Numbers and Neste

·10 min read·Best Markdown Converter

Markdown lists are simple to write but tricky to master, especially when you want nested or mixed types of lists. One confusing fact is that Markdown engines don’t always agree on how to handle different bullet characters or nested numbering, so the same Markdown code can sometimes render differently. For anyone writing documentation, README files, or technical notes, understanding these subtle differences can save hours of frustration and messy formatting.

How to Create Bulleted and Numbered Lists in Markdown

Markdown supports two main types of lists: unordered lists (bullets) and ordered lists (numbers). They each have straightforward syntax, but the details are key.

Unordered Lists

Unordered lists use any of these three characters as item markers:

MarkerExample MarkdownRendered Item
** Item 1• Item 1
-- Item 2• Item 2
++ Item 3• Item 3

Markdown allows you to create unordered lists using *, -, or + characters. — Source: [Medium]

You can mix these markers, but it's not recommended. Some Markdown processors (like GitHub Flavored Markdown) tolerate mixed bullets, while others may render inconsistently or produce unexpected spacing.

Ordered Lists

Ordered lists require numbers followed by a period:

1. First item
2. Second item
3. Third item

Be sure to prefix each item with the correct number if you want that number to display literally. Otherwise, many Markdown engines will auto-renumber lists starting from 1.

For compatibility, always prefix ordered lists with 1. to avoid renumbering issues. — Source: [Julio Merino]

This means writing:

1. Step one
1. Step two
1. Step three

will display as numbers 1, 2, 3 automatically in many processors. This is helpful when adding or removing items without changing all list numbers.

How to Nest Lists: Indentation Rules That Matter

Nesting lists means putting a list inside an item of another list. This allows multi-level lists useful for outlining or detailed steps.

The main rule: indent nested list items by two spaces or one tab beneath the parent list item.

Example:

- Parent item 1
  - Child item 1.1
  - Child item 1.2
- Parent item 2
  1. Nested ordered 1
  2. Nested ordered 2

Renders as:

  • Parent item 1
    • Child item 1.1
    • Child item 1.2
  • Parent item 2
    1. Nested ordered 1
    2. Nested ordered 2

Two points to note here:

  • You can nest unordered lists inside ordered lists and vice versa.
  • Indentation controls nesting. Missing or extra spaces break the nested formatting.

For nested ordered lists, numbering restarts by default. To continue numbering from previous levels consistently, many markdown processors do not support this natively—you may need manual numbering or extensions.

Best Practices for Formatting Lists: Spacing, Indentation, and Consistency

Formatting lists well means your Markdown stays readable even before rendering and avoids errors across different editors.

  • Use consistent bullet characters in a single list. Mixing * and - in the same list can confuse readers and rendering engines.
  • Indent nested list items exactly two spaces or one tab. Don’t use four or inconsistent spaces.
  • Add a blank line before lists to separate them cleanly from prior paragraphs, especially in some Markdown processors.
  • For ordered lists, prefer all items starting with ‘1.’ This avoids renumbering headaches when updating the list.
  • Avoid mixing tabs and spaces for indentation to prevent rendering errors.

These simple rules improve cross-platform compatibility and reduce troubleshooting time.

Including Other Elements Within List Items

Markdown lets you add more than just text inside list items. This includes:

  • Paragraphs: Indent continued lines by at least 4 spaces or one tab.
  • Code blocks: Use fenced code blocks or indent by 4 spaces inside a list item.
  • Blockquotes: Nest blockquotes inside lists by combining > with proper indentation.

Example with code block inside a list item:

- Step 1: Run this command:
 
    ```bash
    npm install package-name
    ```

Rendered, this shows the code block inside the list item cleanly.

Markdown allows multiple paragraphs and block-level content within list items. — Source: [Pandoc]

This flexibility is useful for technical documentation where commands, notes, or explanations belong to list steps.

Common Pitfalls and How to Troubleshoot Markdown Lists

Despite the simple syntax, many get tripped by subtle errors:

PitfallSymptom in RenderingFix
Incorrect indentation on nested listsItems not nested; show at main levelUse exactly 2 spaces or 1 tab indentation
Mixing bullet markers in the same listInconsistent bullet styles or layoutStick to one bullet marker per list
Using numbers other than 1 in ordered listsLists render with literal numbers, causing gapsUse 1. for all ordered items to let engine auto-number
Forgetting blank line before listList not rendered properlyInsert blank line above list
Indenting code blocks incorrectly in listCode merges with list text or breaksUse fenced code blocks or 4-space indent inside list

The quirks vary depending on the Markdown processor you use, so testing your Markdown in the target environment is always worthwhile.

Markdown applications don’t agree on how to handle different delimiters in the same list. — Source: [Markdown Guide]

How Different Markdown Processors Handle Lists

Markdown is simple, but support differs across tools:

FeatureGitHub Flavored Markdown (GFM)Standard MarkdownPandoc
Supports *, -, + bullets interchangeably in same listYes (tolerant)VariesYes
Auto-renumbering ordered lists when using all 1.'sYesVariesYes
Nested lists with 2 space indentSupportedSupportedSupported
Multiple paragraphs within list itemSupportedLimitedSupported
Nested ordered list continuing numbering across levelsNo, restarts numberingNoPossible with extensions
Task lists (- [ ], - [x])SupportedNoNo

If you use Markdown for collaboration (e.g., GitHub READMEs), prefer GFM syntax rules to maximize compatibility.

How to Use Checklists and Task Lists in Markdown

Task lists are a special kind of list for tracking progress. GFM introduced this with a simple syntax:

  • [ ] for unchecked boxes
  • [x] (or [X]) for checked boxes

Example:

- [ ] Write documentation
- [x] Fix bugs
- [ ] Release new version

Renders as interactive checklists (in supporting environments like GitHub).

Compared to regular lists, task lists give you built-in tracking functionality useful for project management and open-source issues.

Nested Numbered Lists with Letters or Mixed Styles

Markdown by default doesn’t support automatic lettered lists (a., b., c.) or mixing numbered and lettered lists reliably.

To simulate this, many writers:

  • Use manual letters in the Markdown text.
  • Apply CSS styling after conversion to HTML.
  • Use Pandoc or other advanced processors that can handle custom numbering styles.

Example of manually coded lettered nested list:

1. Main item
   a. Sub-item A
   b. Sub-item B
2. Another main item

This shows as:

  1. Main item
    a. Sub-item A
    b. Sub-item B
  2. Another main item

But this is static text, not auto-generated letters.

How Markdown List Formatting Affects Version Control and Code Reviews

In environments like GitHub, Markdown list formatting isn’t just a display issue—it impacts collaboration:

  • Consistent list markers reduce diff noise. For example, switching between - and * in bullets can clutter pull request diffs unnecessarily.
  • Improper indentation breaks diff alignment, making changes harder to follow.
  • Auto-renumbering ordered lists make adding new items simpler and cleaner in diffs.
  • Nested lists should avoid mixing tabs and spaces; inconsistent indentation often flags as errors in CI or linter tools.

In my experience, teams that adopt strict Markdown list styles find that code reviews go more smoothly and documentation updates are less error-prone.

Specific formatting styles for lists enhance readability during collaborative editing. — Source: Julio Merino

Summary Table: Markdown List Syntax Quick Reference

List TypeSyntax ExampleNotes
Unordered list- Item or * Item or + ItemUse consistent marker
Ordered list1. ItemUse all 1. for auto-numbering
Nested unorderedIndent by 2 spaces under parent bulletCan mix with ordered nested
Nested orderedIndent by 2 spaces under parent numberResets numbering by default
Task list- [ ] Unchecked / - [x] CheckedGFM only; interactive tracking
Code block inside listIndent 4 spaces or fenced code blockEssential for readability

Troubleshooting Markdown List Formatting Issues: Tips and Tricks

You may hit strange behavior depending on your Markdown editor:

  • List items suddenly lose formatting: Check for missing blank lines before the list.
  • Nested lists render as one flat list: Verify indentation is exactly 2 spaces or 1 tab.
  • Code blocks inside lists shift left or right: Use fenced triple backticks instead of space indentation if your processor supports it.
  • List numbers don’t increment as expected: Use all 1. in ordered lists to let auto-numbering handle it.
  • Mixed bullet markers look messy: Stick to one marker style per list for cleaner output.

If your Markdown processor offers a preview feature, use it frequently to catch formatting issues early.


Final Thoughts

Markdown lists are deceptively simple but can cause headache if you overlook indentation, list markers, or processor differences. Mastering lists unlocks clear, professional documentation and notes that render consistently across tools.

  • Use consistent markers within lists.
  • Indent nested items by two spaces.
  • Use all 1. prefixes in ordered lists to avoid numbering surprises.
  • Test in your main Markdown tool before committing.

And remember: writing good Markdown lists isn’t about complexity. It’s about predictable, simple patterns that work everywhere. That’s the real power of Markdown.

Frequently Asked Questions

Q: What are the main types of lists supported by Markdown?

A: Markdown supports two main types of lists: unordered lists, which use bullet characters like *, -, or +, and ordered lists, which use numbers followed by a period.

Q: How do I properly nest lists in Markdown?

A: To nest lists in Markdown, indent the nested list items by exactly two spaces or one tab beneath the parent list item.

Q: What should I do to avoid renumbering issues in ordered lists?

A: To avoid renumbering issues in ordered lists, always prefix each item with '1.' so that Markdown engines can auto-number the list correctly.

Q: Can I mix bullet characters in the same unordered list?

A: While you can mix bullet characters in unordered lists, it is not recommended as it may lead to inconsistent rendering across different Markdown processors.

Q: What are common pitfalls when formatting Markdown lists?

A: Common pitfalls include incorrect indentation on nested lists, mixing bullet markers, using numbers other than 1 in ordered lists, and forgetting a blank line before the list.

Q: How can I include code blocks within list items?

A: To include code blocks within list items, use fenced code blocks or indent the code by four spaces inside the list item.

Q: What are task lists in Markdown and how do I create one?

A: Task lists in Markdown are special lists for tracking progress, created using '- [ ]' for unchecked boxes and '- [x]' for checked boxes, primarily supported in GitHub Flavored Markdown.

Ready to convert your documents?

Try our free Markdown to Word converter →