Title · Sentence · UPPER · lower for headings

Convert Markdown heading case

Normalize every heading in a Markdown document to one casing style — Title Case, Sentence case, UPPER, or lower — while leaving body text untouched.

Heading Case Converter
Input
144 B
11 lines
Output
144 B
11 lines
Status
ready
live
Ratio
1.00×
out/in
input · markdown
output · recased
# My Title Here

Some body text.

## Another Section

More body.

### The Way It Works

Even more body text. The headings here are inconsistent.
Quick Start

How to recase headings

Detects ATX (#) headings line-by-line and applies the chosen casing rule. Title Case keeps small words (a, an, the, of...) lowercase except at the start and end.

  1. 01

    Paste Markdown

    Any doc with ATX headings.

    Parsing runs through marked with GFM extensions enabled — tables, task lists, strikethrough, and fenced code blocks all match GitHub’s rendering.

    inputGFMmarkedCommonMarklive
    input · markdownmd · GFM
    # my title
    loaded · GFMGFM · ready
  2. 02

    Pick a case

    Title, Sentence, UPPER, or lower.

    Soft-break behaviour is configurable: by default a single newline becomes a space (CommonMark), toggle on for chat-style <br> insertion.

    casesoft-breaksoptionsconfiglive
    mode · optionstitle · live
    Title Case
    options applied · livelive
  3. 03

    Apply

    Only heading text is changed; body stays as written.

    The preview is scoped under a .mde class so its CSS doesn’t bleed into the rest of the page. Output HTML is whitespace-controlled for clean diffs.

    applypreviewscoped CSSrenderstable
    out · renderedmd · ready
    # My Title
    rendered · liverendered
  4. 04

    Commit

    Push a clean, consistent doc.

    Export covers both raw Markdown and rendered HTML; downloads stream as text/markdown or text/html via Blob + object URL.

    exportclipboard.md.htmlblob
    ✓ · exportedmd · done
    ✓ shipped
    shipped · ready to shipsuccess
Pro tips

Author Markdown that renders everywhere

GFM is the safe default

GitHub-Flavored Markdown is the de-facto baseline (tables, task lists, strikethrough). CommonMark is stricter but ubiquitous as a fallback.

Soft-break behaviour varies

A single newline is a space in CommonMark, a <br> in GFM. Toggle soft breaks when source matters.

Escape inside code fences

Backticks inside fenced blocks need a longer fence — three becomes four. Use ~~~ if your content has many backticks.

Anchors are slugified

GitHub lowercases, strips punctuation, and joins with hyphens. Duplicate headings get -1, -2 suffixes.

Tables need a header row

The dash row sets alignment (:---, :-:, ---:). Use Table Aligner for diff-friendly columns.

Front matter is YAML

Triple-dash blocks at the top of files are parsed by static-site generators. Use the Front-Matter Validator to catch syntax errors.

Use Cases

When to recase headings

Enforce a style guide across a docs repo.

Style guides

Some teams require sentence case in docs. Render path uses marked with GFM extensions enabled (tables, task lists, strikethrough, autolinks), so what you preview matches what GitHub publishes bit-for-bit. Soft-break behaviour is configurable for chat-style vs prose Markdown.

GFM-compliant

Marketing copy

Title Case in landing pages. Pairs cleanly with the Markdown Cheatsheet for syntax you can't quite remember — callout blocks, footnotes, definition lists. Output stays diff-friendly so style-only changes don't drown out real edits in PRs.

GitHub-perfect

Doc imports

Normalize after pulling content from another tool. Cross-platform safe: anchors, code fences, and tables behave identically on GitHub, GitLab, Bitbucket, and Gitea. Heading-anchor slugs follow GitHub's lowercase-and-hyphenate rules so deep links survive a docs migration.

diff-friendly

PR hygiene

Remove a class of style-only diffs. No server roundtrip — perfect for proprietary content you can't paste into a public tool. The full marked + GFM bundle ships with the page, so it works offline once loaded.

render-stable

Audits

Spot inconsistent headings before publishing. Front matter (YAML / TOML / JSON) passes through unchanged so static-site pipelines (Jekyll, Hugo, Astro, Eleventy) read it correctly. Pair with the Front-Matter Validator to catch syntax errors before deploy.

cross-platform

Translation prep

Consistent source casing helps reviewers. Output is reproducible: identical input always produces identical Markdown, so doc-generation scripts can rely on it for snapshot tests and embedded into release workflows.

i18n
FAQ

Frequently asked questions

Capitalize every word except common small words (a, an, and, of, the...) — and always capitalize the first and last word.
No — only ATX (#) headings are recased.
The text passes through case conversion; **bold** markers stay intact but the inner text is recased.
GitHub-style anchors are lowercase — recasing won't change the rendered anchor on GitHub. Other renderers may differ.
No. Conversion runs locally in your browser.
Suggest a tool

Something missing?

Tell us what you need. We ship the top requests every two weeks.

Sent straight to the maintainers · no account needed
47 in queue·8 shipped this month
Request queued. Thanks!