Meta tags:
description= Write markdown lists that render everywhere: bullet and numbered lists, the exact nesting indentation, task list checkboxes, loose vs tight spacing and fixes.;
Headings (most frequently used words):
the, and, lists, markdown, that, list, number, fixing, nesting, checkboxes, indentation, actually, code, blank, two, are, not, bullets, numbers, unordered, three, bullet, characters, ordered, lazy, numbering, works, paragraphs, quotes, inside, item, task, loose, tight, why, lines, change, spacing, common, mistakes, their, fixes, frequently, asked, questions, related, answers, keep, learning, rules, optional, every, after, first, is, ignored, starting, at, other, than, spaces, or, four, tab, trap, second, paragraph, block, blockquote, where, boxes, clickable, looseness, belongs, to, whole, line, missing, space, under, note, splits, debugging, will, render, links, complete, guide, github, flavored, tools, learn, reference, platforms, company,
Text of the page (most frequently used words):
the (174), #markdown (87), and (66), list (55), spaces (32), lists (26), that (24), item (22), two (22), one (20), blank (18), github (17), line (16), text (16), under (16), code (15), not (14), three (14), every (13), space (13), first (13), your (13), all (12), html (12), #editor (12), with (12), bullet (12), items (11), are (11), marker (11), number (11), then (11), what (10), paragraph (10), can (10), which (10), inside (10), nesting (10), reference (9), you (9), render (9), table (8), into (8), indented (8), block (8), parent (8), four (8), for (8), this (8), step (8), tables (7), generator (7), loose (7), lines (7), commonmark (7), content (7), use (7), second (7), ordered (7), indentation (7), because (7), characters (7), obsidian (6), platforms (6), links (6), flavored (6), task (6), why (6), where (6), change (6), back (6), work (6), column (6), indent (6), child (6), never (6), most (6), renders (6), broken (6), fixing (6), fork (6), after (6), syntax (5), guide (5), from (5), out (5), between (5), only (5), renderers (5), clickable (5), checkboxes (5), file (5), works (5), but (5), note (5), starting (5), bullets (5), whole (5), tab (5), cortado (5), flat (5), white (5), espresso (5), blockquotes (4), blocks (4), headings (4), images (4), rules (4), keep (4), other (4), literal (4), fence (4), level (4), mix (4), hyphen (4), markers (4), always (4), follows (4), starts (4), fixed (4), prepare (4), milk (4), eggs (4), parser (4), above (4), mistakes (4), tight (4), than (4), paragraphs (4), has (4), spacing (4), actually (4), same (4), numbering (4), wide (4), numbers (4), 2026 (3), about (3), faq (3), reddit (3), discord (3), notion (3), readme (3), glossary (3), footnotes (3), bold (3), italic (3), cheat (3), sheet (3), learn (3), toc (3), viewer (3), pdf (3), tools (3), browser (3), how (3), somewhere (3), looseness (3), just (3), stray (3), them (3), there (3), including (3), gitlab (3), write (3), read (3), plain (3), new (3), letter (3), mkdocs (3), renderer (3), everywhere (3), tabs (3), raw (3), rule (3), page (3), people (3), will (3), ends (3), repository (3), clone (3), top (3), missing (3), python (3), anything (3), short (3), more (3), looks (3), makes (3), belongs (3), gfm (3), release (3), tag (3), any (3), blockquote (3), next (3), here (3), ignored (3), unordered (3), made (2), mdeditor (2), live (2), preview (2), plus (2), try (2), inline (2), complete (2), intact (2), wrapped (2), applies (2), extra (2), they (2), issues (2), fenced (2), stays (2), does (2), numbered (2), older (2), may (2), per (2), many (2), should (2), identically (2), formatters (2), normalize (2), gets (2), confused (2), switching (2), mid (2), separate (2), emphasis (2), real (2), form (2), paste (2), last (2), nearly (2), debugging (2), remember (2), save (2), third (2), renumbers (2), its (2), own (2), indenting (2), splits (2), enough (2), pops (2), version (2), dash (2), shopping (2), lets (2), interrupt (2), quietly (2), several (2), too (2), before (2), common (2), their (2), fixes (2), wrong (2), suits (2), some (2), fifteen (2), push (2), different (2), check (2), unfamiliar (2), extension (2), usually (2), site (2), edit (2), far (2), boxes (2), fails (2), bracket (2), exactly (2), pair (2), way (2), covers (2), worth (2), reset (2), install (2), marked (2), changes (2), quotes (2), insert (2), trap (2), original (2), expanded (2), stops (2), habit (2), like (2), count (2), needs (2), also (2), writing (2), git (2), preheat (2), oven (2), 180c (2), dry (2), ingredients (2), fold (2), melted (2), butter (2), lazy (2), optional (2), thing (2), taiwan, rights, reserved, terms, service, privacy, policy, search, contact, blog, company, editors, compared, template, free, private, deepest, library, web, dialect, behind, autolinks, strikethrough, element, order, worked, examples, anchor, escaping, urls, learning, behave, structured, layout, turn, related, answers, entire, separated, remove, add, consistently, anywhere, supports, tool, interactive, while, show, outside, something, ended, started, usual, culprits, whose, was, interrupting, restart, middle, align, satisfies, build, nested, community, convention, matters, consistency, creates, character, frequently, asked, questions, support, data, verified, carry, meaning, format, explains, our, keeps, sibling, references, cover, often, put, card, designed, delete, until, removed, culprit, value, aligned, easier, spot, wikis, produces, gaps, mixed, shallowly, prints, absorbed, five, account, almost, neither, scannable, sentence, choose, deliberately, consistent, explanations, airier, meant, containing, among, detail, catches, now, margins, apart, compiles, compact, sitting, directly, each, identical, visibly, cause, have, noticed, rely, readers, see, rendered, disabled, inputs, static, generators, saved, apps, nothing, anyone, who, ticking, rewrites, underlying, updates, progress, counter, pull, requests, discussions, comments, rendering, interactivity, things, box, appears, widely, ticked, exact, none, capital, fine, ordinary, ship, draft, notes, bump, sign, normal, followed, empty, unchecked, checked, quoted, material, though, means, wants, section, when, specification, blunt, contain, kind, classic, failure, escapes, restarts, steps, suddenly, fences, bash, npm, import, entry, itself, commit, message, body, longer, resumes, hold, requirement, leave, set, class, bug, disappears, correct, slow, debug, over, turns, grey, monospace, levels, collapse, double, unpredictably, jump, stop, jumps, depends, were, already, causes, problems, safe, treated, converted, choice, audience, ever, lives, wiki, might, powers, both, those, want, full, forget, arithmetic, single, memorising, tip, make, need, fruit, apples, oranges, navel, blood, orange, vegetables, come, differently, modern, simple, must, least, caveat, cannot, instead, delimiter, publish, changelog, announce, respected, resume, earlier, stopped, adding, removing, touches, less, bookkeeping, hand, later, twenty, modified, hide, cleaner, diffs, better, stored, reasons, part, surprises, emits, well, period, becomes, elements, get, odd, gap, behaviour, deliberate, since, place, practice, pasted, parses, changing, required, produce, bulleted, modifier, key, prettier, used, throughout, nest, lining, safer, pick, switch, accepts, treats, updated, everyone, learns, breaks, type, nests, reliably, fits, flatten, example, watch, home, open, skip,
Text of the page (random words):
content md editor tw markdown editor tools markdown to html table generator markdown to pdf markdown viewer html to markdown table to markdown toc generator markdown guide cheat sheet learn markdown syntax what is markdown github flavored markdown markdown tables markdown vs html markdown lists markdown links markdown images markdown headings bold italic code blocks blockquotes footnotes markdown glossary faq platforms all platforms markdown in notion markdown in obsidian markdown in discord markdown in reddit open editor markdown editor tools markdown to html table generator markdown to pdf markdown viewer html to markdown table to markdown toc generator markdown guide cheat sheet learn markdown syntax what is markdown github flavored markdown markdown tables markdown vs html markdown lists markdown links markdown images markdown headings bold italic code blocks blockquotes footnotes markdown glossary faq platforms all platforms markdown in notion markdown in obsidian markdown in discord markdown in reddit home markdown syntax markdown lists bullets numbers nesting and checkboxes markdown lists bullets numbers nesting and checkboxes lists are the second thing everyone learns in markdown and the first thing that quietly breaks this page covers every list type the indentation that nests reliably what fits inside a list item and the mistakes that flatten a list into plain text paste any example into the live editor to watch it render last updated 2026 07 23 on this page unordered lists and the three bullet characters two rules that are not optional ordered lists and lazy numbering every number after the first is ignored starting at a number other than 1 nesting the indentation that actually works two spaces or four the tab trap paragraphs code and quotes inside a list item a second paragraph a code block a blockquote task lists and checkboxes where the boxes are actually clickable loose and tight lists why blank lines change the spacing looseness belongs to the whole list common mistakes and their fixes fixing the blank line and the missing space fixing indentation under a number fixing a note that splits the list debugging a list that will not render unordered lists and the three bullet characters an unordered list is a marker a space then your text markdown accepts three markers and treats them identically espresso cortado flat white espresso cortado flat white espresso cortado flat white in short all three bullet characters render the same so pick the hyphen and never switch numbers after the first are ignored which is why writing every item as 1 is safer in git nest by lining the child marker up under the first letter of the parent s text one stray blank line makes the whole list loose and spaces out every item all three produce the same bulleted list so use the hyphen it needs no modifier key it never gets confused with emphasis in raw text and it is what prettier and most formatters normalize to it is also the marker used throughout the complete markdown guide two rules that are not optional first the space after the marker is required espresso renders as literal text not a bullet second changing the marker starts a new list this looks like one list but parses as two espresso cortado flat white in html that becomes two ul elements so you get an odd gap between cortado and flat white the behaviour is deliberate since it is the only way to place two lists back to back in practice it is nearly always pasted text ordered lists and lazy numbering an ordered list is a number a period a space then your text 1 preheat the oven to 180c 2 mix the dry ingredients 3 fold in the melted butter every number after the first is ignored here is the part that surprises people the renderer emits an ol and lets the browser count so this renders as 1 2 3 as well 1 preheat the oven to 180c 1 mix the dry ingredients 1 fold in the melted butter writing every item as 1 is a better habit for anything stored in git for two reasons cleaner diffs insert a step into a hand numbered list and every later line changes so twenty modified lines hide one real edit less bookkeeping with all 1 numbering adding or removing a step touches exactly one line starting at a number other than 1 the first number is respected so a list can resume where an earlier one stopped 5 tag the release 6 publish the changelog 7 announce it that renders starting at 5 one caveat applies in commonmark and github flavored markdown an ordered list starting at anything but 1 cannot interrupt a paragraph so it always needs a blank line above it you can also write 1 instead of 1 and switching delimiter mid list starts a second list nesting the indentation that actually works nesting is where most broken lists come from because renderers count spaces differently the modern rule is simple in commonmark which github follows a child item must be indented to at least the column where the parent s text starts is two characters wide so two spaces is enough fruit apples oranges navel blood orange vegetables 1 is three characters wide so you need three 1 prepare the repository fork it clone your fork 2 make the change tip forget the arithmetic and line the child marker up under the first letter of the parent s text that single habit works under under 1 and under a four wide parent like 10 and it is the one rule worth memorising from this whole syntax reference two spaces or four two spaces work on github and every commonmark parser four work everywhere including python markdown which powers mkdocs and the original markdown pl both of those want a full four spaces per level so the choice is about audience use two if the file only ever lives on github use four if a site generator or an unfamiliar wiki might render it renderer nesting under nesting under 1 tab characters github gitlab gfm 2 spaces 3 spaces expanded to 4 column stops commonmark markdown it marked 2 spaces 3 spaces expanded to 4 column stops python markdown mkdocs 4 spaces 4 spaces converted to 4 spaces original markdown pl 4 spaces 4 spaces treated as 4 spaces safe everywhere 4 spaces 4 spaces do not use tabs the tab trap a tab is not four spaces to a parser it is a jump to the next tab stop and how far it jumps depends on the column you were already in that causes three separate problems mix tabs and spaces in one list and levels collapse or double up unpredictably some renderers read an over wide indent inside an item as an indented code block so your bullet turns into grey monospace the raw file looks correct in your editor and wrong in the browser which makes it slow to debug set your editor to insert spaces and the whole class of bug disappears paragraphs code and quotes inside a list item a list item can hold any block content several paragraphs a fenced code block a blockquote the requirement never changes leave a blank line then indent the extra content to the parent s content column a second paragraph keep the commit message short the body can be longer and it belongs to the same bullet because it is indented two spaces the next bullet resumes here a code block indent the fence itself not just the code three spaces here because the parent is an ordered item 1 install the parser bash npm install marked 2 import it in your entry file under indenting the fence is the classic failure the code block escapes the list the list ends and the next item restarts the numbering at 1 if your steps suddenly reset check the indentation of the fence just above the reset there is more on fences in the code blocks reference a blockquote the specification is blunt about this a list item can contain any kind of block including other lists quoted material inside a list follows the marker rules from the blockquotes reference on top of the indentation above tables work the same way though a table inside a list item usually means the content wants its own section and the tables reference covers when that is worth it task lists and checkboxes task lists are a gfm extension a normal bullet followed by a bracket pair an empty pair is unchecked an x is checked draft the release notes x bump the version number tag the release x sign the tag push it the spacing is exact marker space then a space or an x then then a space then the text fails because the marker has no space after it x ship it fails because the bracket has none a capital x is fine on github and nesting works exactly as it does for ordinary bullets where the boxes are actually clickable rendering and interactivity are different things the box appears far more widely than it can be ticked github issues pull requests discussions and comments clickable for anyone who can edit the item ticking one rewrites the underlying markdown and updates the progress counter a readme md on github or gitlab renders but read only because there is nothing to write the change back to obsidian vs code preview and most note apps clickable and the change is saved into your file static site generators usually rendered as disabled inputs plain commonmark renderers no extension at all so readers see the literal characters check the gfm reference before you rely on task lists somewhere unfamiliar loose and tight lists why blank lines change the spacing two lists with identical items can render with visibly different spacing the cause is a blank line you may not have noticed a tight list has no blank lines between items one two three it compiles to compact html with the text sitting directly inside each item ul li one li li two li ul a loose list has a blank line somewhere inside it one two three now every item is wrapped in a paragraph and paragraph margins push the items apart ul li p one p li li p two p li ul looseness belongs to the whole list this is the detail that catches people out one stray blank line among fifteen bullets spaces out all fifteen an item containing two paragraphs makes the list loose too that is why a list with explanations under some items always looks airier than you meant neither form is wrong tight suits short scannable items loose suits items of a sentence or more choose deliberately and keep the blank lines consistent common mistakes and their fixes five mistakes account for almost every list that will not render no blank line before the list so the first bullet is absorbed into the paragraph above no space after the marker which prints the dash as text nesting indented too shallowly under a number so the child pops back to the top level an un indented note between items which ends the list and renumbers what follows mixed markers in one list which quietly produces several lists with gaps fixing the blank line and the missing space github s parser lets a bullet list interrupt a paragraph python markdown markdown pl many wikis and most older renderers do not and an ordered list starting at anything but 1 never can broken then fixed shopping list milk eggs shopping list milk eggs the missing space is easier to spot because the broken version renders as literal text dash and all broken then fixed milk eggs milk eggs fixing indentation under a number two spaces is not enough for an ordered parent so the child pops back out to the top level broken then fixed with three spaces aligned under the p of prepare 1 prepare the repository fork it clone your fork 1 prepare the repository fork it clone your fork fixing a note that splits the list an un indented paragraph ends the list what follows starts a new one and renumbers from its own first value broken then fixed by indenting the note so it stays inside item 2 1 first step 2 second step remember to save your work 1 third step 1 first step 2 second step remember to save your work 3 third step debugging a list that will not render paste the list into the editor and delete items until it renders the last one you removed is the culprit and it is nearly always a space a blank line or an indent blank lines carry real meaning in this format which what markdown is designed to do explains our markdown reference card keeps every list form on one page and the sibling references for links and images cover what people most often put inside list items support data verified 2026 07 23 frequently asked questions which bullet character should i use for markdown lists use the hyphen all three markers render identically but the hyphen is the community convention is what most formatters normalize to and never gets confused with emphasis in raw text the rule that matters is consistency switching markers mid list creates two separate lists how many spaces should i indent a nested list align the child marker under the first letter of the parent s text two spaces under a bullet three under a 1 number that satisfies commonmark and github if mkdocs or an older renderer may build the file use four spaces per level which works everywhere never mix tabs and spaces why does my numbered list restart at 1 in the middle something ended the list and started a new one the usual culprits are an un indented paragraph between items or a fenced code block whose fence was not indented to the item s content column indent the interrupting content to line up with the item text and the list stays intact do task list checkboxes work outside github they render anywhere that supports github flavored markdown including gitlab obsidian and vs code they are clickable only where the tool can write the change back so github issues are interactive while a readme is read only plain commonmark renderers show the literal why is there extra space between my list items a blank line somewhere in the list made it loose so every item is wrapped in a paragraph looseness applies to the entire list not just the item you separated so one stray blank line spaces out all of them remove the blank lines or add them consistently related answers turn a list into a table tables the other structured layout how lists behave in obsidian keep learning markdown links inline reference and anchor links plus the escaping rules that keep urls intact the complete markdown guide every element in order from headings to inline html with worked examples github flavored markdown the dialect behind task lists tables autolinks and strikethrough try the editor try the editor md editor tw a free private in browser markdown editor with live preview plus the deepest markdown reference library on the web tools markdown to html table generator markdown to pdf markdown viewer html to markdown table to markdown toc generator learn what is markdown markdown guide cheat sheet github flavored markdown markdown vs html reference markdown syntax markdown tables markdown lists markdown links markdown images markdown headings bold italic code blocks blockquotes footnotes markdown glossary readme template editors compared platforms all platforms markdown in notion markdown in obsidian markdown in discord markdown in reddit company blog faq about contact search privacy policy terms of service 2026 mdeditor tw all rights reserved made in...
|