Fetch
Markdown

Turn any web page into clean, structured Markdown with one click.

Chrome Extension Manifest V3 Turndown + GFM 25+ Sites MIT
github.com/shafiqimtiaz/fetch-markdown
What it does

Right-click any page. Get clean Markdown with structure intact.

Fetch Markdown doesn't blindly strip HTML. It detects 25+ site types — GitHub, Wikipedia, Reddit, Stack Overflow, blogs, docs, news — and applies a tailored extraction strategy for each. Code blocks, headings, lists, and links come out exactly as they should. One click, copy, paste.

Overview
02
Features

What you get

01

Confidence-scored detection

25+ candidate site types scored in parallel. Highest score wins, so weak signals combine to identify sites we've never seen.

02

Right-click anywhere

Convert the full page, a text selection, a link, or an image. Every context covered, no hunting for the toolbar button.

03

Keyboard shortcuts

Ctrl/Cmd + Shift + M for the page. Ctrl/Cmd + Shift + S for the selection. Customizable at chrome://extensions/shortcuts.

04

Rich popup with preview

One click converts. Live stats (chars, words, lines, headings). Rendered preview, copy, or download as .md — all in one place.

05

Code-aware output

Fenced blocks and inline code are split out before cleanup, left untouched, then reassembled. Your code comes out exactly as it was.

06

YAML front matter

Optionally prepend title, URL, date, author, and more. Built-in template or your own — placeholders like {title}, {site_type}, {keywords}.

07

Conversion history

The last 50 conversions saved locally. Quick copy or download per entry — no re-converting pages you already pulled.

08

Privacy-first

No network calls. No telemetry. No account. The page never leaves your browser — only Turndown runs in the content script.

Features
03
How it works

Detect, extract, convert

Trigger

User action

Popup, context menu, or keyboard shortcut.

Content script

Site detection

25+ candidates scored in parallel. Best match wins.

DOM walker

Extract

Site-specific selectors, then Readability-style fallback.

Turndown

Convert

HTML to Markdown with GFM rules and custom handlers.

Output

Popup

Preview, copy, or download as .md.

FALLBACK No site-specific match? A density scorer walks the DOM and picks the densest content node — the same approach Mozilla Readability uses.
Architecture
04
Pipeline

Page in, Markdown out

01

Trigger

Popup, context menu, or Ctrl+Shift+M / Ctrl+Shift+S.

02

Build context

Host, URL, meta tags, and DOM probes gathered once.

03

Score 25+ sites

Parallel scoring. Highest confidence wins. Low confidence falls through.

04

Extract

Site-specific selectors. Generic fallback uses density scoring.

05

Clean DOM

Strip nav, ads, cookie banners, modals. Unwrap lazy-load images.

06

Site transforms

Wikipedia infoboxes to defs. GitHub tasks to [x] syntax. More.

07

Turndown

HTML to Markdown with GFM. Custom rules for kbd, mark, sub, sup, abbr, details, figure.

08

Code-aware cleanup

Split out code, clean the rest, reassemble. Punctuation and headings fixed only in prose.

Pipeline
05
Site detection

25+ types, one extension

Each site type gets its own extraction strategy. Wikipedia infoboxes become definition lists. GitHub issues keep the task list syntax. Discourse threads get clean quoted blocks. Wrong site type, wrong output — so we get it right.

GitHub GitLab Bitbucket Stack Overflow Reddit Twitter / X LinkedIn YouTube Wikipedia Notion Confluence Discourse Hacker News Blog News Documentation Product Page Academic Forum Webmail ChatGPT Claude Generic
UNSEEN SITES Never seen the site before? Multiple weak signals combine to identify it correctly. If nothing scores, the Readability-style density scorer walks the DOM and picks the densest content.
Site detection
06
Privacy

No backend.
No account.
No data store.

The page never leaves your browser. Turndown runs in the content script. Your conversion history lives in chrome.storage.local. Nothing is sent anywhere.

Local-only execution
All conversion runs in your browser. No API, no proxy.
No telemetry
No analytics. No usage tracking. No "phone home".
Minimal permissions
activeTab, scripting, clipboard, contextMenus, storage, notifications.
Your history
Last 50 conversions in chrome.storage.local. Stays on your device.
Privacy
07
Install

Load unpacked

1

Open chrome://extensions in Chrome

2

Enable Developer mode (top right)

3

Click Load unpacked, select the fetch-markdown directory

4

Pin to toolbar. Right-click any page. Done.

Star on GitHub
~ / fetch-markdown
# Optional: package for sharing
$ npm install
$ npm run zip
→ dist/fetch-markdown-v4.0.0.zip
✓ packaged
WEB STORE Packaged distribution via the Chrome Web Store is planned. Track shafiqimtiaz/fetch-markdown for the release.
Install
08
Tech stack

Under the hood

HTML → Markdown
Turndown
+ turndown-plugin-gfm for tables, strikethrough, task lists
Markdown preview
Marked
Live rendering in the popup editor
Platform
Chrome MV3
Manifest V3 · Service worker
Storage
chrome.storage
Settings + last 50 conversions
Detection
Parallel scoring
25+ candidates · Mozilla-style density fallback
Typography
Darker Grotesque + JetBrains Mono
Popup UI fonts
Tech stack
09
Fetch Markdown logo

Fetch Markdown.

25+ sites · Code-aware · Privacy-first · Zero dependencies

10
01 / 10