How to add the blank line markdown lists need
- Step 1Load the document — Paste the Markdown or upload a
.md,.mdx,.markdown, or.txtfile. One document per run. - Step 2Know the one spacing rule — The tool inserts a single blank line before a list that follows a paragraph. It does not delete blank lines or add trailing spacing. That focus is what keeps the diff clean.
- Step 3Run it — Click Run. The spacing insertion and marker normalization happen together in one instant pass.
- Step 4Verify the gap appeared — Find each spot where a list used to sit directly under a paragraph — there should now be exactly one blank line between them.
- Step 5Handle the cases it skips, separately — For removing excess blank lines or reflowing overall whitespace, run the output through md-prettifier afterward.
- Step 6Copy or download — Copy the corrected Markdown back into your editor, or Download a new file. The original is untouched.
When a blank line is inserted
The rule fires only when a list item line directly follows a non-empty text line that is neither a list item nor a heading.
| Line above the list | Blank line inserted? | Why |
|---|---|---|
| A paragraph of text | Yes | This is the CommonMark-required gap that was missing |
A heading (# ...) | No | Headings are recognized; parsers handle a list right after a heading |
| Another list item | No | The list is already a contiguous block |
| A blank line (already present) | No | Spacing is already correct |
| Empty document / first line is the list | No | There is no preceding text to separate from |
Spacing cases this tool does NOT handle
Important for setting linting expectations — the tool only inserts the one leading blank line.
| Spacing case | Behaviour | Where to fix it |
|---|---|---|
| Extra blank lines between items | Left in place — never removed | Use md-prettifier to reflow whitespace |
| Missing blank line AFTER a list | Not added | Add it manually or via md-prettifier |
| Loose vs tight list (blank lines between items) | Not changed | Decide per list; not a single-rule fix |
| Trailing spaces at end of list lines | Left as-is | Use md-prettifier or md-minifier |
| Spacing inside code fences | Untouched | By design — code stays exact |
Cookbook
Spacing fragments from real linting cleanups, showing exactly where the blank line lands.
List jammed under a paragraph
The classic bug. Without a blank line the list renders as run-on text; the tool inserts the gap.
Before: The pipeline has three stages: - build - test - release After: The pipeline has three stages: - build - test - release
Numbered list under a sentence
Same rule applies to ordered lists. A 1. line directly under text gets the leading blank line.
Before: Follow these steps: 1. Open settings 2. Save After: Follow these steps: 1. Open settings 2. Save
List right after a heading is left alone
Headings are recognized, so no forced blank line is inserted between a heading and the list below it.
Before: ## Checklist - item one - item two After: ## Checklist - item one - item two (no blank line forced)
Spacing fix plus marker fold in one pass
A *-marked list under a paragraph is both given its blank line and folded to -.
Before: Goals for the quarter: * hire * ship After: Goals for the quarter: - hire - ship
Existing extra blank lines are kept
The tool only inserts; it never removes. A list with two blank lines between items keeps them.
Before: - a - b After: - a - b (extra blank lines preserved)
Edge cases and what actually happens
Extra blank lines are not removed
PreservedThe rule only inserts a blank line before a list that follows a paragraph. It never deletes blank lines, so two or three blank lines inside a list stay as written. For whitespace reflow, run the output through md-prettifier.
No blank line is added after a list
Not handledThe tool fixes the gap before a list, not after it. If the content immediately following a list needs separation, add that blank line yourself or use md-prettifier.
List directly under a heading
By designWhen the line above the list is a heading (#), no blank line is forced. The rule recognizes headings explicitly because parsers handle a list right after a heading without the extra gap.
Loose vs tight list spacing
Not handledWhether items are separated by blank lines (loose) or not (tight) is a stylistic choice the tool does not change. It will not collapse a loose list to tight or vice versa.
List is the first line of the document
PreservedIf a list begins the document with no text above it, there is nothing to separate, so no blank line is inserted. The list is left as written.
Consecutive list items
PreservedA blank line is only inserted at the boundary between text and the first list item. Items within the list are not separated by inserted blank lines — the list stays a contiguous block.
Spacing inside fenced code blocks
PreservedBlank lines inside a triple-backtick fence are passed through verbatim. The tool never modifies spacing inside code, so examples stay exact.
A list under a line that is itself a list item
PreservedIf the line above is already a list item, no blank line is inserted — the parser already sees a single list block, so the gap is unnecessary.
Trailing whitespace on list lines
Not handledThe tool does not trim trailing spaces from list lines. For trailing-whitespace cleanup, use md-prettifier or md-minifier.
File over the tier character limit
RejectedInputs above the per-tier character cap (Free 500,000, Pro 5,000,000, Pro-media 20,000,000, Developer unlimited) are rejected before processing. Split with md-splitter or upgrade the tier.
Frequently asked questions
Why don't my lists render in some tools?
The most common cause is a missing blank line between a paragraph and the list under it. Strict CommonMark parsers (GitHub, VS Code preview, many SSGs) need that blank line, or they keep reading the paragraph and your bullets become run-on text. This tool inserts that one blank line.
Will this affect nested list spacing?
It only inserts a blank line at the boundary between ordinary text and the first list item. It does not change spacing between nested items or between levels. Nested-item spacing (loose vs tight) is left as you wrote it.
Does it remove extra blank lines?
No. The rule only inserts a blank line where one is missing before a list; it never deletes blank lines. To collapse redundant blank lines or reflow whitespace document-wide, run the result through md-prettifier.
Does it add a blank line after the list too?
No — only before. The fix targets the leading gap that breaks list parsing. If you need separation after a list, add it manually or use md-prettifier.
What about a list right under a heading?
No forced blank line is inserted. The rule recognizes headings (#) and skips them, because a list directly after a heading parses fine without the extra gap.
Can I run this in CI?
This is a browser tool, so it is not a CLI you drop into a pipeline. For CI, use a Markdown linter like markdownlint with the blank-lines-around-lists rule (MD032). This tool is ideal for a quick interactive fix before commit, and the same transform is available via the public API for the slug if you script against it.
Does it fix loose vs tight lists?
No. Whether items are separated by blank lines is a stylistic choice the tool leaves alone. It neither tightens nor loosens an existing list.
Will it touch spacing inside code blocks?
No. Blank lines inside triple-backtick fences are passed through verbatim. Only prose outside fences is affected.
Does it also fix bullet markers while spacing the list?
Yes. The spacing insertion runs in the same pass as marker normalization, so a * item under a paragraph is both given its blank line and folded to - item.
Is my document uploaded anywhere?
No. It runs entirely in the browser, so you can lint internal docs without anything leaving your machine.
What file types and size are supported?
Paste Markdown or upload .md, .mdx, .markdown, or .txt. The character cap is Free 500,000, Pro 5,000,000, Pro-media 20,000,000, Developer unlimited; size caps are 1 MB / 10 MB / 50 MB / 500 MB.
What if I need broader linting than just spacing?
Pair this with md-lint for a wider rule check, md-prettifier for whitespace reflow, and md-table-repair for table alignment.
Is the output deterministic?
Yes. There are no options, so the same input always yields the same output. That makes it safe to diff a file before and after to confirm the spacing fix.
Privacy first
All Markdown processing runs locally in your browser using JavaScript. No file is ever uploaded to JAD Apps servers — only metadata counters are saved for signed-in dashboard stats.