Markdown diff: compare two Markdown files
See the exact source diff and the Markdown structure that changed — headings, lists, tables, front matter and moved sections.
- SECURE
- NO UPLOADS
- NO SIGNUP
- BROWSER BASED
- FREE
- FOREVER.
Support us with a link or a share
Exact source stays authoritative. Structure labels never use semantic matching.
A Markdown diff needs two truths at once
Markdown is source text, so the exact source diff has to remain visible. A changed space, list marker or table delimiter can alter the file even when a rendered preview looks the same. This comparison never normalizes either document before deciding which lines differ.
Source alone still leaves a second job: finding the structural change inside a long diff. The structure receipt labels changed headings, list items, table rows and front matter, then shows each value in a form that resembles what the Markdown describes. The source line remains directly beneath it, so the preview cannot hide the evidence it came from.
What “moved” means here
A section is called moved only when its heading and every source line beneath it match exactly on both sides, and its order among the other exact sections changed. An edited paragraph is not “probably the same section”. Duplicate blocks are not paired by guesswork. Those cases stay as additions and removals in the raw diff.
That narrow rule is deliberate. Semantic comparison can be useful for reviewing prose, but it answers a different question and can change its mind. This tool reports reproducible facts about two files. Run the same source through it tomorrow and the contract is identical.
Front matter, tables and syntax variants
YAML front matter is recognized only when it starts the document and has a closing delimiter. GFM-style tables need a header and delimiter row. ATX headings and ordinary ordered or unordered list markers are labeled. Everything else still appears in the exact diff even when it has no structure card; unsupported syntax is never discarded.
Styled review and raw source are two views of one result
Styled changes is the fast reading view. A heading looks like a heading, a list item sits in a list, a table row keeps its cells and a front-matter field is split into its key and value. These are deliberately small previews of the changed construction rather than two complete rendered documents. The comparison can therefore point to the exact source line that supports every label.
Raw source is the audit view. It includes every unchanged, removed and added line, retains whitespace, and reports document-level differences such as a UTF-8 byte order mark, mixed line endings or a missing final newline. A rendered document can look unchanged while a link target, comment or delimiter changed, so Styled never replaces Raw as evidence.
The full Markdown change artifact
Download full artifact creates a deterministic JSON report. It contains both complete source strings, source origin, filenames when opened from files, line-ending facts and file-BOM evidence when those bytes are known. It also includes the lossless edit script, readable line comparison, every supported structure change and every exact move. The report is not called a patch: it is a review artifact, and it does not claim that another program can apply it to a repository. Keeping both sources inside it makes the record complete even when a future viewer knows more Markdown syntax than this one does today.
Use text compare when Markdown structure is irrelevant and you need character-level inspection or named invisible characters. Use the Markdown editor when the review is over and you want to change one document. This page stays read-only by design: it compares two versions but never merges one into the other.
Your files stay in this tab
Both files are read and compared locally by the browser. There is no upload step and no server-side analysis. You can also paste the source directly, edit either side and swap the comparison direction without starting again.
Questions
How is this different from a plain text diff?
The raw line diff stays the source of truth, but this tool also labels changed Markdown structures: headings, list items, table rows, front matter and sections that moved without being rewritten. It does not use AI or guess whether two sentences mean the same thing.
Can it tell that a section moved?
Only when the heading and every source line in that section are exactly the same on both sides but their order changed. An edited or ambiguous section is shown as ordinary additions and removals instead of being called a move.
Does the comparison change or render my Markdown?
No. The exact diff compares the source lines you supplied, including markers and indentation. The structure view is a second receipt derived from those same lines; it never replaces the raw result.
Are my Markdown files uploaded?
No. File reading and comparison run in this browser tab. Nothing is sent to a server.