Markdown Validator

Paste or type Markdown to instantly validate for common errors and bad syntax — with line numbers and a live preview.

Paste some Markdown to start validating.

❌ Errors Detected

  • × Unclosed code fence — a ``` block was opened but never closed.
  • × Broken link syntax[text](url is missing the closing ).

⚠️ Warnings & ℹ️ Info

  • ! Heading missing space##Title should be ## Title.
  • ! Empty link text[](url) has no descriptive text.
  • ! Image missing alt text![](url) reduces accessibility.
  • ! Duplicate headings — two headings with identical text can confuse navigation.
  • ! Mixed list markers — using both - and * in the same list.
  • i Trailing whitespace, tab indentation, lines >120 chars.

Frequently Asked Questions

What does this validator check?

It checks for 10 common Markdown issues: unclosed code fences, broken link syntax, heading formatting, empty links, missing image alt text, duplicate headings, trailing whitespace, mixed list markers, tab indentation, and lines over 120 characters.

Why is two trailing spaces not flagged?

Two trailing spaces are valid Markdown — they create a hard line break (<br>). Only three or more trailing spaces are flagged as unintentional whitespace.

Is my content sent anywhere?

No — all validation and preview rendering happens entirely in your browser. Nothing is sent to any server.

What Markdown flavour is used for the preview?

The preview uses marked with GFM (GitHub Flavored Markdown) enabled — the same renderer used by GitHub READMEs.

About Markdown Validator

The Markdown Validator is a free online linter that checks your Markdown files for syntax errors, accessibility issues, and style problems in real time — complete with a live rendered preview powered by GitHub Flavored Markdown.

  • Detects 10 categories of issues: errors, warnings, and info-level hints
  • Pinpoints problems with exact line numbers for fast navigation
  • Live preview renders your Markdown exactly as GitHub would
  • Validates unclosed code fences, broken links, missing alt text, and more
  • Shows word count and line count at a glance
  • 100% client-side — your content never leaves your browser

How to Use the Markdown Validator

  1. 1

    Paste or type your Markdown

    Paste your .md content into the left editor, or click "Sample Markdown" to load an example with intentional errors.

  2. 2

    Review the Issues panel

    The Issues tab lists all detected problems grouped by severity (Errors, Warnings, Info) with the line number shown for each.

  3. 3

    Fix errors in the editor

    Edit the Markdown directly in the left panel. The validator re-runs automatically after a short pause so you see issues clear as you fix them.

  4. 4

    Check the Preview tab

    Switch to Preview to see how your Markdown renders as HTML — identical to how GitHub displays README files.

  5. 5

    Copy the validated content

    Click "Copy Input" to copy your clean Markdown back to the clipboard, ready to paste into your project.

Tip: Load the sample document first to see all issue types in action before pasting your own content.

Common Use Cases

GitHub README Files

  • • Catch broken link syntax before pushing
  • • Ensure images have alt text for accessibility
  • • Verify all code fences are properly closed

Documentation Sites

  • • Lint MkDocs, Docusaurus, or VitePress pages
  • • Detect duplicate headings that break anchor links
  • • Keep line lengths readable across devices

Blog & Content Writing

  • • Validate Ghost, Jekyll, and Hugo post front matter
  • • Check heading hierarchy before publishing
  • • Spot trailing whitespace that causes unexpected line breaks

Pull Request Descriptions

  • • Preview how PR descriptions will look on GitHub
  • • Ensure checklists and code blocks render correctly
  • • Catch empty link text in change log entries

Technical Writing

  • • Validate API reference and tutorial docs
  • • Ensure mixed list markers are consistent
  • • Verify tab indentation is replaced with spaces

Learning Markdown

  • • Experiment with syntax and see instant feedback
  • • Understand the difference between errors and warnings
  • • Use the preview to compare source vs rendered output

More Questions About Markdown Validation

What is Markdown linting?

Markdown linting is the process of analysing Markdown source files for style inconsistencies, syntax errors, and accessibility issues. It helps keep documents consistent and prevents rendering problems across different Markdown parsers.

What is the difference between an error, a warning, and an info notice?

Errors indicate broken syntax that will cause rendering failures (e.g., an unclosed code fence). Warnings flag issues that are technically valid but harmful to quality or accessibility (e.g., missing alt text). Info notices highlight stylistic issues that are best practice to fix but do not affect rendering.

Does this tool support CommonMark or only GitHub Flavored Markdown?

The live preview uses GFM (GitHub Flavored Markdown) via the marked library, which is a superset of CommonMark. The syntax linting rules apply to any Markdown flavour since they target universal formatting conventions.

How do I lint Markdown files automatically in my project?

Use markdownlint-cli (Node.js) or markdownlint as a VS Code extension for automated checking in CI pipelines or pre-commit hooks. This online tool is best for quick manual checks.

Why should images always have alt text?

Alt text is read by screen readers for visually impaired users and displayed when an image fails to load. Search engines also use alt text to understand image content. Writing ![description](url) instead of ![](url) improves both accessibility and SEO.

Is there a file size limit for validation?

There is no enforced limit. Since all processing runs in your browser, very large documents (hundreds of KB) may feel slightly slower, but typical README and documentation files validate instantly.

Is my Markdown content safe to paste here?

Yes. All validation and preview rendering happens entirely client-side using the marked library. Nothing is transmitted to any server, logged, or stored. You can safely paste private documentation or internal notes.