Copy web content as clean Markdown with one right-click.
A Chrome extension that converts selected text, links, images, or entire pages into well-formatted Markdown and copies it to your clipboard.
- Selection → Markdown: Select any text on a page, right-click → "Copy Selection as Markdown"
- Link →
[text](url): Right-click any link → "Copy Link as Markdown" - Image →
: Right-click any image → "Copy Image as Markdown" - Full Page → Markdown: Right-click on page → "Copy Page as Markdown"
- Rich HTML Support: Tables, code blocks, nested lists, blockquotes, headings — all converted faithfully
- Absolute URL Resolution: Relative links and images are automatically resolved to absolute URLs
- Keyboard Shortcuts:
Cmd+Shift+C(copy selection),Cmd+Shift+M(copy page) - CSS-Isolated Notifications: Shadow DOM toast that works on any page without style interference
- Accessible: Screen reader support via
aria-livenotifications
src/
├── background.ts # Service Worker — context menu registration
├── content.ts # Content Script — DOM extraction & clipboard
├── lib/
│ ├── html-to-markdown.ts # Core conversion engine (no external deps)
│ └── templates.ts # Output formatting templates
└── popup/
├── popup.html # Extension popup UI
├── popup.ts # Popup event handling
└── popup.css # Popup styling (dark theme)
- Node.js 18+
- npm
npm install# Run all tests
npm test
# Watch mode
npm run test:watch# Build for Chrome
bash build.sh- Run
bash build.sh - Open
chrome://extensions/ - Enable Developer mode
- Click "Load unpacked" → select the
dist/directory - Right-click on any page to test
| Test Suite | Tests | Status |
|---|---|---|
| html-to-markdown.test.ts | 35 | ✅ |
| templates.test.ts | 10 | ✅ |
| scenario.test.ts | 12 | ✅ |
| Total | 57 | ✅ All Passing |
- Unit Tests: Core HTML→Markdown conversion (headings, inline elements, links, images, lists, tables, code blocks, blockquotes, HR, entities)
- Unit Tests: Template functions (page, link, image, selection)
- Scenario Tests: End-to-end user workflows (selection copy, page copy, complex article conversion)
| Component | Technology |
|---|---|
| API | Manifest V3 |
| Language | TypeScript |
| Build | esbuild |
| Testing | Vitest + jsdom |
| Styling | Vanilla CSS |
| HTML Element | Markdown Output |
|---|---|
<h1>–<h6> |
# – ###### |
<strong>, <b> |
**bold** |
<em>, <i> |
*italic* |
<del>, <s> |
~~strikethrough~~ |
<code> |
`inline code` |
<pre><code> |
```code block``` |
<a href="..."> |
[text](url) |
<img> |
 |
<ul>, <ol> |
- / 1. (with nesting) |
<blockquote> |
> |
<table> |
Markdown table |
<hr> |
--- |
<br> |
Line break |
MIT