Semua artikel

Markdown: mengapa sintaks teks sederhana mengalahkan editor teks kaya

Markdown adalah bahasa markup ringan yang memungkinkan Anda memformat teks — judul, daftar, tautan, penekanan — dengan karakter biasa, sambil tetap mudah dibaca dalam bentuk mentahnya, berbeda dengan HTML yang sulit dibaca tanpa rendering.

Sintaks dasar

  • # Judul — judul di berbagai level berdasarkan jumlah karakter #.
  • **tebal** dan *miring* — penekanan teks.
  • [teks](url) — sebuah tautan.
  • - item atau 1. item — daftar berpoin dan bernomor.
  • ``` — blok kode dengan penyorotan sintaks berdasarkan nama bahasa.

Markdown asli tidak pernah mendefinisikan tabel

Markdown yang dirilis John Gruber pada 2004 hanyalah deskripsi berupa prosa, bukan tata bahasa formal, dan sama sekali tidak mendefinisikan tabel, teks dicoret, atau blok kode dengan bahasa yang disorot. Selama satu dekade, setiap implementasi (PHP Markdown, Python-Markdown, dan lainnya) menafsirkan sendiri bagian yang ambigu dari teks asli itu — sampai CommonMark hadir pada 2014 untuk menetapkan tata bahasa yang presisi dengan ratusan kasus uji.

GFM: ekstensi yang benar-benar dipakai semua orang

GitHub Flavored Markdown (GFM) dibangun di atas CommonMark dan menambahkan fitur yang terus-menerus dipakai developer tapi tak pernah didefinisikan Markdown polos: tabel dengan |, daftar tugas (- [ ] / - [x]), coret teks (~~teks~~), dan tautan otomatis untuk URL polos. Karena begitu banyak dokumentasi proyek open source — termasuk dari komunitas developer Indonesia di GitHub — hidup dalam bentuk issue dan README, GFM inilah yang menjadi patokan de facto kebanyakan parser, bukan aturan asli Gruber tahun 2004.

Mengonversi ke HTML dan sebaliknya

Konversi Markdown → HTML bersifat langsung: parser mengenali konstruksi sintaks dan menghasilkan tag yang sesuai. Konversi sebaliknya, HTML → Markdown, lebih sulit, karena HTML mendukung jauh lebih banyak opsi pemformatan daripada Markdown dasar, sehingga sebagian markup (tabel kompleks, gaya bersarang) bisa disederhanakan atau hilang.

Untuk apa ini dibutuhkan

  • Melihat pratinjau cepat bagaimana berkas Markdown akan dirender, tanpa mempublikasikannya.
  • Mengonversi konten halaman atau dokumen ke Markdown untuk disimpan dalam sistem kontrol versi.
  • Menyiapkan konten HTML untuk disisipkan ke aplikasi yang hanya menerima Markdown.
Coba alat