HTML to Markdown Converter

Convert HTML snippets into Markdown for documentation, release notes, and content cleanup.



Question

What is converting HTML to Markdown?

Converting HTML to Markdown turns web markup into a plain-text format that is easier to read, diff, store in documentation repositories, or paste into systems that accept Markdown. This tool is useful for quick drafts, release notes, documentation cleanup, content migration notes, and simple snippets copied from a web page or CMS.

The converter handles common content patterns such as headings, paragraphs, line breaks, simple lists, emphasis, and links. Complex pages may still need manual review after conversion: tables, nested layout markup, images, code blocks, custom elements, malformed HTML, and interactive content may not translate cleanly. Review the generated Markdown before publishing, especially when the source came from an untrusted page or contains links that readers may follow.


Lightbulb

Useful Resources


Code

Code Samples

Below are some code samples to convert HTML to Markdown in a number of popular programming languages

C#

CSharp

Convert HTML to Markdown in C# code sample

Based on: mysticmind/reversemarkdown-net

Below is a code sample of how to convert HTML into Markdown in Microsoft's C# programming language.

var config = new ReverseMarkdown.Config
{
    UnknownTags = Config.UnknownTagsOption.PassThrough,
    GithubFlavored = true,
    RemoveComments = true,
    SmartHrefHandling = true
};

var converter = new ReverseMarkdown.Converter(config);
string html = "This a sample <strong>paragraph</strong> from <a href="http://test.com">my site</a>";
string result = converter.Convert(html);
Go

Go

Convert HTML to Markdown in Go code sample

Based on: JohannesKaufmann/html-to-markdown

Below is a code sample of how to convert HTML to Markdown in Robert Griesemer, Rob Pike, and Ken Thompson's Go programming language.

import (
    "fmt"
    "log"

    md "github.com/JohannesKaufmann/html-to-markdown"
)

converter := md.NewConverter("", true, nil)
html := `<strong>Important</strong>`
markdown, err := converter.ConvertString(html)
if err != nil {
  log.Fatal(err)
}
fmt.Println("md ->", markdown)
Java

Java

Convert HTML to Markdown in Java code sample

Based on: furstenheim/copy-down

Below is a code sample of how to convert HTML to Markdown in James Gosling's Java programming language.

import io.github.furstenheim.CopyDown;
import io.github.furstenheim.Options;
import io.github.furstenheim.OptionsBuilder;

public class Main {
   public static void main (String[] args) {
       OptionsBuilder optionsBuilder = OptionsBuilder.anOptions();
       Options options = optionsBuilder.withBr("-").build();
       CopyDown converter = new CopyDown(options);
       String myHtml = "<h1>Some title</h1><div>Some html<p>Another paragraph</p></div>";
       String markdown = converter.convert(myHtml);
       System.out.println(markdown);
   }
}
JavaScript

JavaScript

Convert HTML to Markdown in JavaScript code sample

Based on: mixmark-io/turndown

Below is a code sample of how to convert HTML to Markdown in Brendan Eich's JavaScript programming language.

var TurndownService = require('turndown');
var turndownService = new TurndownService();
var markdown = turndownService.turndown('<h1>Hello world!</h1>');
Python

Python

Convert HTML to Markdown in Python code sample

Based on: matthewwithanm/python-markdownify

Below is a code sample of how to convert HTML to Markdown in Guido van Rossum's Python programming language.

from markdownify import markdownify as md
md('<b>Yay</b> <a href="http://github.com">GitHub</a>')
Scala

Scala

Convert HTML to Markdown in Scala code sample

Based on: tkqubo/scala-html-to-markdown

Below is a code sample of how to convert HTML into Markdown in Martin Odersky's Scala programming language.

import com.github.tkqubo.html2md.Html2Markdown

val html = "<h1>introduction</h1><p>this is a <b>converter</b>.</p>"
val markdown = Html2Markdown.toMarkdown(html)