Documentation version diff
Compare two versions of a Markdown documentation set section by section and see which sections were added, removed, moved or rewritten, with a word diff for each change.
Up to 2,000 files and 1,000,000 characters for both versions together, and word diffs of up to 300 edits per section. Everything runs in your browser and nothing is uploaded. Downloads: Markdown summary and JSON report. Put each earlier file under before/ and each later file under after/, using header lines such as ==> before/guide.md <==. Up to 1,000,000 characters. Review the settings before running.
Your result
How to use Documentation version diff
- Paste the earlier files with paths that start with before/, such as ==> before/guide.md <==.
- Paste the later files with paths that start with after/, such as ==> after/guide.md <==.
- Run the comparison and read the summary of added, removed, moved and changed sections.
- Download the Markdown summary or the JSON report with word level changes.
Useful next steps
What it does
The diff splits every Markdown file at its headings and gives each section a key made of the file path and the trail of headings above it, such as guide.md > Setup > Install. Sections with the same key in both versions are compared, and the rest are reported as added or removed.
How changes are detected
A changed section gets a word diff from the diff package, with counts of added and removed words and up to 20 changed passages. A removed section whose text appears unchanged under a new key, for example after a heading rename or a move to another file, is reported as moved. Whitespace only changes still count as changes because the section text differs.
Limits
Word diffs stop after 300 word edits in one section. A section rewritten beyond that is still marked changed, with diffTooLarge set and no word counts. Moved detection needs identical text. Content before the first heading forms its own section. Files under node_modules, .git, dist, build and other build folders are skipped unless you turn that off, and you can add your own exclude patterns in gitignore syntax.