HTML to Markdown converter - works in browser and Node.js
npm install site2mdHTML to Markdown converter. Works in browser and Node.js.
``bash`
npm install site2md
`js
import { htmlToMarkdown, markdownToHTML } from 'site2md'
// HTML → Markdown
const md = htmlToMarkdown('
World
')// Markdown → HTML
const html = markdownToHTML('# Hello\n\nWorld')
// Output:
World
#### React example
`jsx
import { htmlToMarkdown } from 'site2md'function MarkdownPreview({ html }) {
const markdown = htmlToMarkdown(html)
return
{markdown}
}
`#### Options
`js
htmlToMarkdown(html, {
source: 'auto' // 'auto' | 'medium' | 'devto' | 'notion' | 'generic'
})
`$3
The command is
md:`bash
From URL
md --url "https://some-blog.com/post"From file
md article.htmlPipe
curl -s "https://site.com" | mdSave to file
md --url "https://site.com" -o output.mdReverse (markdown to HTML)
md --html README.mdRender JS first (for SPAs like React/Next.js)
md --url "https://spa-site.com" --render
`#### CLI Options
`
--url Fetch URL and convert
--render Use headless browser to render JS first (requires Chrome)
--output, -o Write to file instead of stdout
--source Platform hint: auto, medium, devto, notion, generic
--html Reverse mode: markdown to HTML
--help Show help
``- Code blocks with language detection
- Nested lists
- Tables
- Images (including images inside links)
- Blockquotes
- HTML entities
- Platform-specific markup (Medium, dev.to, Notion exports)
| Feature | Browser/React | CLI |
|---------|--------------|-----|
| htmlToMarkdown() | ✓ | ✓ |
| markdownToHTML() | ✓ | ✓ |
| Fetch URLs | ✗ | ✓ |
| Render JS (--render) | ✗ | ✓ |
The core converter is dependency-free and works everywhere. The CLI adds URL fetching and optional JS rendering via puppeteer.
MIT