A powerful, bidirectional converter between HTML and Markdown with both CLI and VS Code extension support.
- ๐ Bidirectional Conversion: Convert HTML to Markdown and Markdown to HTML
- ๐ป CLI Tool: Easy-to-use command-line interface
- ๐จ VS Code Extension: Integrate seamlessly into your workflow
- โก Fast & Reliable: Built on Turndown and markdown-it
- ๐ ๏ธ Customizable: Configure conversion options to suit your needs
- ๐ฆ Zero Config: Works out of the box with sensible defaults
Install globally to use from anywhere:
npm install -g html-md-converterOr use locally in your project:
npm install html-md-converterSearch for "HTML-Markdown Converter" in the VS Code Extensions marketplace, or install from the command palette:
- Open VS Code
- Press
Cmd+Shift+P(Mac) orCtrl+Shift+P(Windows/Linux) - Type "Install Extensions"
- Search for "HTML-Markdown Converter"
# Convert a file
html-to-md input.html
# Specify output file
html-to-md input.html -o output.md
# Output to stdout
html-to-md input.html --stdout
# Customize heading style
html-to-md input.html --heading-style setext
# Customize code block style
html-to-md input.html --code-block-style indented# Convert a file
md-to-html input.md
# Specify output file
md-to-html input.md -o output.html
# Output to stdout
md-to-html input.md --stdout
# Disable HTML tags in source
md-to-html input.md --no-html
# Disable automatic link detection
md-to-html input.md --no-linkifyimport { htmlToMarkdown, markdownToHtml } from 'html-md-converter';
// HTML to Markdown
const html = '<h1>Hello World</h1><p>This is a paragraph.</p>';
const markdown = htmlToMarkdown(html);
console.log(markdown);
// # Hello World
//
// This is a paragraph.
// Markdown to HTML
const md = '# Hello World\n\nThis is a paragraph.';
const htmlOutput = markdownToHtml(md);
console.log(htmlOutput);
// <h1>Hello World</h1>
// <p>This is a paragraph.</p>// HTML to Markdown with options
const markdown = htmlToMarkdown(html, {
headingStyle: 'setext', // 'atx' or 'setext'
codeBlockStyle: 'indented', // 'fenced' or 'indented'
bulletListMarker: '-', // '-', '+', or '*'
emDelimiter: '_', // '_' or '*'
strongDelimiter: '**' // '**' or '__'
});
// Markdown to HTML with options
const html = markdownToHtml(markdown, {
html: true, // Enable HTML tags in source
linkify: true, // Auto-detect URLs and convert to links
typographer: true, // Enable smart quotes and other typographic replacements
breaks: false // Convert '\n' in paragraphs into <br>
});Once installed, the extension provides the following commands:
- Convert HTML to Markdown
- Open an HTML file or select HTML content
- Press
Cmd+Shift+P(Mac) orCtrl+Shift+P(Windows/Linux) - Type "Convert HTML to Markdown"
- Convert Markdown to HTML
- Open a Markdown file or select Markdown content
- Press
Cmd+Shift+P(Mac) orCtrl+Shift+P(Windows/Linux) - Type "Convert Markdown to HTML"
The extension also provides:
- Context menu options for quick conversion
- Keyboard shortcuts:
Ctrl+Alt+Mfor HTMLโMD,Ctrl+Alt+Hfor MDโHTML - Real-time preview panel
| Option | Description | Default |
|---|---|---|
-o, --output <file> |
Output file path | Auto-generated (.md) |
-s, --stdout |
Output to stdout | false |
--heading-style <style> |
Heading style (atx/setext) | atx |
--code-block-style <style> |
Code block style (fenced/indented) | fenced |
| Option | Description | Default |
|---|---|---|
-o, --output <file> |
Output file path | Auto-generated (.html) |
-s, --stdout |
Output to stdout | false |
--no-html |
Disable HTML tags in source | false |
--no-linkify |
Disable auto link detection | false |
--no-typographer |
Disable typographic replacements | false |
We welcome contributions! Please see our Contributing Guidelines for details.
# Clone the repository
git clone https://github.com/jasdeepkhalsa/html-md-converter.git
cd html-md-converter
# Install dependencies
npm install
# Run tests
npm test
# Run linter
npm run lint
# Format code
npm run formathtml-to-md blog-post.html -o blog-post.mdmd-to-html README.md -o index.html# Convert all HTML files in a directory
for file in *.html; do html-to-md "$file"; done
# Convert all Markdown files
for file in *.md; do md-to-html "$file"; done# Fetch HTML from URL and convert
curl https://example.com | html-to-md /dev/stdin --stdout
# Convert and preview in browser
md-to-html README.md --stdout | open -f -a "Google Chrome"# Run all tests
npm test
# Run tests in watch mode
npm run test:watch
# Run with coverage
npm test -- --coverageThis project is licensed under the MIT License - see the LICENSE file for details.
- Turndown - HTML to Markdown converter
- markdown-it - Markdown parser and renderer
- ๐ Report a bug
- ๐ก Request a feature
- ๐ Documentation
- Add support for custom Turndown rules
- Add support for markdown-it plugins
- Batch conversion UI
- Configuration file support (.converterrc)
- Support for more input/output formats
- Interactive CLI mode
- Web-based converter interface
Made with โค๏ธ by the open source community