ToolDeck

HTML to Markdown

Konversi HTML ke format Markdown

Coba contoh

Input HTML

Output Markdown

Berjalan lokal · Aman untuk menempel rahasia
Output Markdown akan muncul di sini…

Apa itu Konversi HTML ke Markdown?

Konversi HTML ke Markdown mengubah markup HTML menjadi Markdown, sintaks pemformatan teks biasa yang ringan yang dibuat oleh John Gruber pada tahun 2004. Markdown dirancang agar mudah dibaca tanpa perlu di-render. HTML menggunakan tag pembuka dan penutup seperti <strong> dan <a href="">, sedangkan Markdown menggunakan karakter singkat: **tebal**, [tautan](url), dan # heading. Mengonversi HTML ke Markdown menghasilkan file yang lebih mudah dibaca, diedit, dan dikontrol versinya dibandingkan HTML mentah.

Proses konversi memetakan elemen HTML ke padanan Markdown-nya. Tag <h2> menjadi ##, elemen <ul><li> menjadi - item, dan tag <a> menjadi [teks](url). Beberapa elemen HTML tidak memiliki padanan langsung di Markdown, seperti <div>, <span>, atau atribut data kustom. Konverter biasanya menghapus tag-tag ini atau meneruskannya sebagai HTML mentah, tergantung konfigurasi.

Markdown telah menjadi format penulisan standar untuk dokumentasi developer (GitHub, GitLab, Bitbucket), static site generator (Hugo, Jekyll, Astro), aplikasi catatan (Obsidian, Notion), dan blog teknis. Mengonversi konten HTML yang sudah ada ke Markdown adalah langkah umum saat migrasi website, mengimpor konten CMS, atau mengarsipkan halaman web dalam format yang portabel. Berbeda dengan HTML, file Markdown menghasilkan diff yang bersih dalam version control, sehingga tinjauan kode untuk perubahan dokumentasi menjadi lebih praktis.

Mengapa Menggunakan Konverter HTML ke Markdown?

Menulis ulang HTML sebagai Markdown secara manual membutuhkan waktu lama dan rawan kesalahan, terutama untuk halaman dengan daftar bertingkat, tabel, atau puluhan tautan. Konverter otomatis menangani pemetaan struktur secara instan dan konsisten.

Konversi instan di browser
Tempel HTML dan dapatkan output Markdown dalam hitungan milidetik. Tidak ada perjalanan ke server, tidak perlu menunggu antrean pemrosesan. Konversi berjalan sepenuhnya di browser menggunakan JavaScript.
🔒
Data Anda tetap privat
HTML Anda tidak pernah meninggalkan perangkat Anda. Semua pemrosesan terjadi di sisi klien, sehingga tidak ada unggahan, tidak ada pencatatan, dan tidak ada akses pihak ketiga ke konten Anda.
📝
Mempertahankan struktur dokumen
Heading, daftar, tautan, gambar, blok kode, dan tabel dipetakan ke padanan Markdown yang tepat. Struktur bertingkat dan pemformatan inline ditangani secara rekursif.
🔀
Tanpa akun atau instalasi
Buka alat ini dan mulai konversi. Tidak ada yang perlu diinstal, tidak ada API key yang perlu dikonfigurasi, dan tidak ada formulir pendaftaran. Berfungsi di perangkat apa pun dengan browser modern.

Kasus Penggunaan HTML ke Markdown

Frontend Developer: Migrasi CMS
Ekspor posting blog atau halaman dari WordPress, Drupal, atau headless CMS sebagai HTML, lalu konversi ke Markdown untuk digunakan dengan static site generator seperti Next.js, Astro, atau Hugo.
Backend Engineer: Dokumentasi API
Konversi dokumentasi API HTML yang dibuat otomatis menjadi file Markdown yang disimpan bersama kode sumber Anda. Dokumen Markdown terintegrasi dengan rendering GitHub dan dapat diberi versi bersama kode yang dijelaskannya.
DevOps: Konversi Runbook
Ubah halaman wiki internal (Confluence, SharePoint) yang diekspor sebagai HTML menjadi runbook Markdown yang tersimpan di repositori Git Anda bersama kode infrastruktur yang dijelaskannya.
QA Engineer: Dokumentasi Test Case
Konversi laporan pengujian HTML atau rencana pengujian manual dari alat berbasis web menjadi file Markdown yang dapat ditinjau dalam pull request bersama perubahan kode yang diverifikasinya.
Data Engineer: Pembersihan Web Scraping
Hapus boilerplate HTML dari halaman web yang di-scrape dan hasilkan teks Markdown yang bersih. Ini menghilangkan navigasi, iklan, dan markup layout sambil mempertahankan konten dan struktur artikel.
Mahasiswa: Catatan Penelitian
Salin konten dari sumber web dan konversi HTML ke Markdown untuk diimpor ke Obsidian, Notion, atau sistem pencatatan berbasis Markdown lainnya. Mempertahankan heading, tautan, dan pemformatan.

Referensi Elemen HTML ke Markdown

Tabel di bawah menunjukkan bagaimana elemen HTML umum dipetakan ke padanan Markdown-nya. Pemetaan ini mengikuti konvensi GitHub-Flavored Markdown (GFM), yang memperluas spesifikasi CommonMark dengan tabel, strikethrough, dan daftar tugas. Elemen yang tidak tercantum di sini (seperti <div>, <form>, atau web component kustom) tidak memiliki padanan Markdown dan akan dihapus atau diteruskan sebagai HTML mentah.

Elemen HTMLSintaks MarkdownCatatan
<h1>...<h6># ... ######ATX headings, level matches tag number
<p>Blank line separationDouble newline between paragraphs
<strong>, <b>**text**Bold / strong emphasis
<em>, <i>*text*Italic / emphasis
<a href="url">[text](url)Inline link with optional title
<img src="url">![alt](url)Image with alt text
<ul><li>- itemUnordered list with dash or asterisk
<ol><li>1. itemOrdered list, numbers restart per block
<blockquote>> textBlock quote, nestable with >>
<code>`code`Inline code span
<pre><code>```lang\ncode\n```Fenced code block with optional language
<hr>---Horizontal rule (three dashes)
<table>| col | col |GFM table syntax with alignment
<del>, <s>~~text~~Strikethrough (GFM extension)

Varian Markdown: GFM vs CommonMark vs Original

Tidak semua Markdown sama. Format output penting karena berbagai platform mengurai Markdown secara berbeda. Tiga varian yang paling umum adalah GitHub-Flavored Markdown (GFM), CommonMark, dan Markdown original karya Gruber.

GitHub-Flavored Markdown (GFM)
Varian yang paling banyak digunakan. Menambahkan tabel (sintaks pipe), strikethrough (~~teks~~), daftar tugas (- [x]), dan URL yang ditautkan otomatis. Digunakan oleh GitHub, GitLab, dan sebagian besar alat developer. Konverter ini menghasilkan Markdown yang kompatibel dengan GFM secara default.
CommonMark
Spesifikasi ketat yang menyelesaikan ambiguitas dalam sintaks Markdown original. Mendefinisikan aturan eksplisit untuk kelanjutan daftar, penguraian penekanan, dan penyarangan level blok. Digunakan sebagai dasar GFM dan banyak static site generator.
Markdown Original
Spesifikasi John Gruber tahun 2004. Tidak mendukung tabel, blok kode berpagar, atau strikethrough. Sebagian besar alat modern memperlakukannya sebagai subset dari CommonMark. Jarang digunakan sebagai format target saat ini.

Contoh Kode

Contoh praktis dalam JavaScript (Turndown), Python (markdownify dan html2text), Go, dan Pandoc di command line.

JavaScript (Turndown)
import TurndownService from 'turndown'

const turndown = new TurndownService({ headingStyle: 'atx' })
const html = '<h1>Title</h1><p>A <strong>bold</strong> paragraph.</p>'
const md = turndown.turndown(html)
console.log(md)
// → "# Title\n\nA **bold** paragraph."
Python (markdownify)
from markdownify import markdownify

html = '<h2>Section</h2><ul><li>First</li><li>Second</li></ul>'
md = markdownify(html, heading_style='ATX')
print(md)
# → "## Section\n\n- First\n- Second"
Python (html2text)
import html2text

converter = html2text.HTML2Text()
converter.body_width = 0  # disable line wrapping

html = '<p>Visit <a href="https://example.com">Example</a> for details.</p>'
md = converter.handle(html)
print(md)
# → "Visit [Example](https://example.com) for details."
Go (html-to-markdown)
package main

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

func main() {
	converter := md.NewConverter("", true, nil)
	html := `<h3>Go Example</h3><p>Code: <code>fmt.Println()</code></p>`
	markdown, _ := converter.ConvertString(html)
	fmt.Println(markdown)
	// → "### Go Example\n\nCode: `fmt.Println()`"
}
CLI (Pandoc)
# Convert an HTML file to Markdown
pandoc input.html -f html -t markdown -o output.md

# Pipe HTML from stdin
echo '<p>Hello <em>world</em></p>' | pandoc -f html -t markdown
# → Hello *world*

# Use GitHub-Flavored Markdown output
pandoc input.html -f html -t gfm -o output.md

Pertanyaan yang Sering Diajukan

Elemen HTML apa yang tidak dapat dikonversi ke Markdown?
Markdown tidak memiliki padanan untuk <div>, <span>, <form>, <input>, <iframe>, atau elemen apa pun dengan class dan style CSS kustom. Sebagian besar konverter menghapus tag ini dan hanya menyimpan teks dalamnya. Beberapa konverter dapat meneruskan HTML yang tidak didukung tanpa perubahan, yang valid karena spesifikasi Markdown secara eksplisit mengizinkan HTML inline. Jika Anda perlu mempertahankan elemen tersebut, konfigurasikan konverter Anda untuk menyimpan HTML mentah daripada menghapusnya.
Bagaimana tabel HTML dikonversi ke Markdown?
Tabel HTML dipetakan ke sintaks tabel pipe GFM: | Header | Header | dengan baris pemisah | --- | --- |. Tabel GFM tidak mendukung colspan, rowspan, atau styling tingkat sel. Tabel kompleks dengan sel yang digabung akan diratakan, yang dapat kehilangan informasi struktural. Untuk tabel data sederhana, konversinya tidak merusak data.
Apakah konversi dari HTML ke Markdown bersifat lossless?
Tidak. Markdown adalah subset dari HTML, sehingga beberapa informasi selalu hilang selama konversi. Class CSS, style inline, atribut data, elemen form, dan tag semantik seperti <article> atau <section> tidak memiliki padanan Markdown. Konten teks dan struktur dasar (heading, daftar, tautan, penekanan) dipertahankan secara akurat. Untuk sebagian besar alur kerja dokumentasi dan migrasi konten, elemen yang dipertahankan adalah yang paling penting.
Apa perbedaan antara HTML ke Markdown dan HTML ke teks biasa?
HTML ke teks biasa menghapus semua pemformatan dan menghasilkan teks mentah tanpa struktur. HTML ke Markdown mempertahankan struktur dokumen: heading tetap sebagai heading, tautan menyimpan URL-nya, daftar tetap sebagai daftar, dan penekanan dipertahankan. Output Markdown dapat di-render kembali ke HTML dengan struktur logis yang sama.
Bisakah saya mengonversi Markdown kembali ke HTML?
Ya. Setiap prosesor Markdown (marked, markdown-it, Python-Markdown, goldmark) mengonversi Markdown ke HTML. Perjalanan bolak-balik ini adalah salah satu alasan Markdown populer: Anda menulis dalam format yang mudah dibaca dan me-render ke HTML untuk web. Perjalanan bolak-balik tidak simetris secara sempurna karena konversi HTML ke Markdown menghapus elemen yang tidak didukung.
Bagaimana konverter menangani HTML dengan CSS inline atau JavaScript?
CSS inline (atribut style) dan blok <style> dihapus selama konversi karena Markdown tidak memiliki sintaks styling. JavaScript (tag <script> dan event handler seperti onclick) juga dihapus. Konverter hanya mengekstrak konten dan struktur dokumen. Hal ini menjadikan konversi HTML ke Markdown sebagai langkah sanitasi yang berguna saat mengimpor konten HTML yang tidak tepercaya ke dalam dokumentasi Anda.
Varian Markdown mana yang harus saya gunakan untuk proyek saya?
Gunakan GitHub-Flavored Markdown (GFM) jika konten Anda akan ditampilkan di GitHub, GitLab, atau sebagian besar platform dokumentasi. Gunakan CommonMark jika Anda memerlukan kepatuhan spesifikasi yang ketat dan penguraian yang dapat diprediksi di berbagai renderer. Markdown original hanya relevan untuk sistem lama. GFM adalah pilihan default yang paling aman untuk sebagian besar proyek.