creatorvalet

Markdown formatter

Format Markdown tables, check source, or renumber ordered lists with exact selectable edits and a source diff before applying.

  • SECURE
  • NO UPLOADS
  • NO SIGNUP
  • BROWSER BASED
  • FREE
  • FOREVER.

Support us with a link or a share

SourcePasted Markdown

Paste source is the exact string supplied by this browser field; original clipboard line-ending bytes are not available.

Align strict GFM tables and make conservative whitespace fixes.

A Markdown formatter should not own your document

Most formatters take a document apart, build an internal tree and serialize the whole tree again. That can be convenient when the parser understands every extension in the file. It is risky when the document contains frontmatter, MDX, a site-specific directive, wiki links, citations, math or a footnote flavor the parser does not know. A round trip can alter source that was never meant to be formatted.

This formatter works from physical source spans instead. It proposes explicit replacements, each carrying the exact text expected at its location. Untouched source is never rendered and re-created. Before Apply selected changes anything, the complete source fingerprint and every selected before-slice must still match the analysis. If you type after analyzing, the plan is stale and the tool asks you to analyze again instead of applying offsets to different text.

Format, Checks and Renumber are three separate jobs

Format aligns strict GFM pipe tables, removes trailing whitespace only when it is not plausibly a Markdown hard break, and reduces a run longer than two blank lines. Table cells remain raw inline Markdown tokens. Escaped pipes and pipes inside matched code spans do not become new columns, and a ragged row blocks the table edit rather than being padded with invented cells.

Checks reports malformed tables, list sequences, whitespace candidates and unclosed protected blocks. It always produces zero mutation edits. Renumber changes only decimal digits in ordered-list markers. Each indentation and delimiter style has its own starting number; indentation, the period or parenthesis, following whitespace and item content remain byte-for-byte source.

Why some syntax is deliberately frozen

YAML frontmatter is frozen from an exact top-of-file delimiter through its closer, including block scalars whose contents may resemble lists or tables. Fenced code uses the actual marker and run length, so a four-backtick block is not closed by three backticks inside its example. CommonMark HTML blocks and comments are similarly opaque. Directives, JSX and MDX signals, wiki links, citations, math and footnotes are frozen conservatively because their grammars belong to extensions rather than one universal Markdown standard.

Frozen does not mean deleted or ignored in the exported file. It means the source remains exactly as supplied and the receipt counts the lines the formatter declined to interpret. This is the useful failure mode for an unfamiliar construct: the formatter does less, while the document keeps everything.

The diff previews the patch; it does not define it

Every checkbox selects a concrete source edit. The Selected source diff reuses the same exact Markdown comparison as the Markdown diff tool, but only as a review view of the current selection. The edit spans and their before-text guards remain the authority when Apply runs. This keeps a readable line diff from quietly becoming a fuzzy merge algorithm.

Apply selected changes updates the source box and enables one-step Undo, which restores the complete prior source. Copy result and Download Markdown use the entire selected result, never only the visible diff. Download report writes a deterministic JSON receipt with both complete sources, origin, selected edit identifiers, line-ending facts, frozen counts and the readable diff. Use the Markdown editor for authored content changes or the Markdown table generator when you want to build cells visually rather than re-align an existing table.

BOM, mixed line endings and final newlines stay observable

A local file is decoded with fatal UTF-8 validation. Invalid bytes produce an error rather than replacement characters. A UTF-8 byte order mark, CRLF, LF, lone CR and the presence or absence of a final newline remain in the source. An applied edit can replace only its declared span; physical endings elsewhere do not pass through a normalizer. Pasted text has a narrower claim: the browser supplies a string, so the tool can preserve that string but cannot recover clipboard byte flavors or line-ending bytes that the text field did not expose.

Local processing, including large files

Opening, scanning, diffing, applying, copying and downloading all happen in this browser tab. The analysis engine is loaded only after Analyze Markdown. Every analysis, including a small source, runs in a local worker so scanning and diffing never monopolize the page. Size advice describes memory risk before analysis; it is not a rejection threshold. No file contents, report or source fragment is sent to a server, and there is no account or model call involved. When a finished source instead needs exact, reproducible parts without cutting recognized fenced code or GFM tables, use the Markdown chunker and keep its reassembly manifest with the output.

Questions

What does the Markdown formatter change?

Format mode aligns strict GFM pipe tables, removes unambiguous trailing whitespace and reduces runs longer than two blank lines. It does not parse and rewrite the whole document. Every proposed source span is shown before you apply it.

What is the difference between Format, Checks and Renumber?

Format proposes table and conservative whitespace edits. Checks reports the same source concerns without creating any mutation. Renumber changes only the digits in ordered-list markers, preserving indentation, delimiters, content and each nesting level’s starting number.

Will it change frontmatter, HTML, MDX or extensions?

No. Frontmatter, fenced code, HTML blocks, directives, MDX and JSX signals, wiki links, citations, math and footnotes are frozen conservatively. Unknown syntax remains exact source rather than being round-tripped through a Markdown serializer.

Can I choose which fixes to apply?

Yes. Each source edit has a checkbox. The diff is recalculated for that selection, and Apply refuses a stale plan if you edited the source after analysis.

Does analysis block the page?

No. The analysis code is loaded only after you press Analyze Markdown, then every source size runs through the same local worker. There is no hidden size threshold or server fallback.

Are my Markdown files uploaded?

No. UTF-8 file reading, analysis, diffing and export all run locally in this browser tab. No content is sent to a server.