Markdown sedang menghambat Anda
(newsletter.bphogan.com)- Markdown, yang banyak digunakan untuk menulis dokumentasi pengembangan, populer berkat kesederhanaan dan aksesibilitasnya, tetapi memiliki keterbatasan untuk dokumentasi teknis berskala besar karena kurangnya daya ekspresi struktural
- Markdown bekerja seperti sistem tipe implisit, sehingga konsistensi maupun validasi skema tidak dimungkinkan, dan juga ada masalah kompatibilitas di antara berbagai varian Markdown (flavor)
- Sintaks ekstensi seperti MDX meningkatkan daya ekspresi, tetapi justru menambah kompleksitas karena portabilitas dan standardisasi antar sistem yang kurang
- reStructuredText, AsciiDoc, DocBook, DITA dan lainnya menyediakan struktur eksplisit serta semantic markup yang memperkuat kemudahan penggunaan ulang dan keterbacaan oleh mesin
- Untuk dokumen kecil, Markdown sudah memadai, tetapi untuk pengelolaan dokumentasi berskala besar dan multikanal, diperlukan peralihan ke format yang terstruktur
Keterbatasan struktural Markdown
- Markdown memiliki sintaks sederhana yang mudah dibaca manusia, sehingga dapat membuat dokumen yang enak dilihat di GitHub atau situs statis
- Namun, ia tidak dapat menjelaskan makna konten sehingga kekurangan informasi struktur yang dapat dipahami mesin
- Mesin pencari, LLM, IDE, agen AI, dan lainnya memanfaatkan struktur semantik dokumen, tetapi Markdown hanya menghasilkan tag HTML yang terbatas
- Markdown menimbulkan masalah inkonsistensi saat penggunaan ulang atau integrasi konten karena perbedaan sintaks antar platform
- Akibatnya, Markdown pada dasarnya adalah format pada tingkat penyebut bersama terendah, sehingga tidak cocok untuk pengelolaan dokumen yang kompleks
Masalah tipe implisit pada Markdown
- Markdown adalah format tanpa skema eksplisit atau definisi tipe, sehingga judul atau daftar yang sama bisa memiliki makna berbeda tergantung konteks
- Ada berbagai varian Markdown (flavor), sehingga muncul perbedaan rendering antar alat
- Contoh: beberapa alat mendukung catatan kaki, sementara alat lain mengabaikannya
- MDX memperluas daya ekspresi dengan menyisipkan komponen React, tetapi portabilitasnya rendah karena masalah kompatibilitas antar sistem
- Ekstensi seperti ini adalah upaya untuk menutupi keterbatasan Markdown, tetapi pada akhirnya hanya solusi sementara yang tidak terstandarisasi
Pentingnya semantic markup
- Semantic markup menjelaskan makna konten, bukan bentuknya
- Contoh: “langkah (step)” dan “item daftar” bisa terlihat sama secara visual, tetapi maknanya berbeda
- HTML5 memperkuat representasi struktural dengan memperkenalkan tag berbasis makna seperti
<section>,<article>,<aside> - Keunggulan utama semantic markup
- Transformasi dan penggunaan ulang: konten yang sama dapat diubah ke berbagai format seperti HTML, PDF, dan ePub
- Keterbacaan oleh mesin: LLM atau agen dapat mengenali struktur dengan jelas dan memberikan respons yang lebih akurat
- Karena Markdown tidak menyediakan informasi struktur semacam ini, terjadi kehilangan informasi saat pascapemrosesan atau konversi
Perbandingan format alternatif
- reStructuredText
- Format yang digunakan di Sphinx dalam ekosistem Python, mengekspresikan makna struktural melalui directive dan role
- Mendukung elemen struktur eksplisit seperti blok kode, catatan (
note), dan referensi silang (:ref:) - Cocok untuk dokumentasi teknis berskala besar dan mendukung pembuatan HTML serta PDF
- AsciiDoc
- Format teks semantik yang menyediakan attribute, konten kondisional, dan fitur include
- Mendukung ekspresi yang dioptimalkan untuk dokumentasi teknis seperti
NOTE,WARNING, elemen UI, dan penulisan pintasan keyboard - Dapat dikonversi ke HTML, PDF, ePub, DocBook, dan lainnya melalui AsciiDoctor
- DocBook (XML)
- Model berbasis XML untuk publikasi teknis yang menyediakan sistem tag bermakna seperti
<command>,<note>,<xref> - Mencakup tag yang dibutuhkan untuk dokumen profesional seperti glosarium, indeks, elemen UI, dan nama fungsi
- Dapat dikonversi ke berbagai format keluaran melalui stylesheet XSLT
- Menguntungkan untuk validasi struktur dokumentasi berskala besar dan pembuatan indeks
- Model berbasis XML untuk publikasi teknis yang menyediakan sistem tag bermakna seperti
- DITA (Darwin Information Typing Architecture)
- Struktur modular berbasis XML yang digunakan sebagai standar dokumentasi teknis perusahaan
- Arsitektur XML berbasis topik yang mendefinisikan dengan jelas struktur prosedural seperti
<task>,<step> - Digunakan sebagai standar pengelolaan dokumentasi perusahaan untuk penggunaan ulang konten (conref), pemfilteran, dan penerbitan multikanal
- Mendukung otomatisasi rendering dan konversi melalui DITA Open Toolkit
Mengapa XML tetap diperlukan meski terlihat merepotkan
- Markdown memang ringan, tetapi merupakan solusi sementara yang tidak memiliki struktur, standar, dan konsistensi
- Jika Anda menambah kompleksitas pada Markdown dengan MDX, plugin, dan skrip kustom,
mengadopsi format terstruktur secara langsung akan lebih stabil dalam jangka panjang
Jadi, apa yang sebaiknya dilakukan?
- Untuk dokumen kecil seperti README atau dokumen sekali pakai, Markdown sudah cukup, tetapi
untuk dokumentasi berskala besar, dapat digunakan ulang, dan multikanal, reStructuredText, AsciiDoc, DocBook, dan DITA lebih cocok - Jika Anda membutuhkan dokumen perencanaan, dokumentasi pengembang, penggunaan ulang, dan pengelolaan skala besar, pertimbangkan reST/AsciiDoc lalu DocBook/DITA
- Pendekatan yang ideal adalah menggunakan format dengan struktur paling kaya sebagai sumber, lalu mengonversinya ke Markdown bila perlu
- Markdown berguna sebagai format keluaran, tetapi jika digunakan sebagai sumber utama (source of truth), perluasan struktural akan sulit
- Yang optimal adalah menyimpan sumber dalam format dengan struktur makna yang kaya, dan menggunakan Markdown sebagai keluaran downstream
7 komentar
Apakah rst itu format berbasis XML? Baru kali ini saya dengar. Ringkasannya aneh.
Sepertinya judulnya ditulis seperti itu karena dalam ringkasan dibahas kriteria pemilihan sambil mengelompokkannya bersama format XML lainnya.
Saya sudah memperbaikinya agar sesuai dengan teks aslinya.
Kalau perlu di Markdown pakai
htmllalu tempelkanmermaiddi situ, kurang lebih jadi sih.. selebihnya rasanya malah jadi pekerjaan membuat dokumen demi pekerjaan dokumentasi itu sendiriManusia lebih dulu daripada AI. Jangan mencuri apa yang kutulis. Ngomong apa soal semantik.
Kalau harus memakai sintaks khusus, akan muncul kurva belajar baru lagi, alat parsing khusus, viewer, editor, dan semuanya harus didukung dengan lancar agar bisa dipakai.. kalau sudah sampai segitu, mungkin lebih baik pakai Google Docs atau Notion saja yang bisa terhubung dengan lancar ke sebagian besar layanan AI
Pendapat Hacker News
Inti dari Markdown adalah dukungan yang sangat luas yang tidak dimiliki bahasa lain Sebagian besar alternatif memerlukan alat terpisah, dan tidak bisa dipakai di lingkungan yang sudah mendukung Markdown Bahkan Google Docs mendukung paste Markdown sebagai fitur tersembunyi Meski tidak sempurna, keunggulannya adalah bisa dipakai “di mana saja” Seperti HTML yang lebih sederhana daripada SGML namun menjadi standar karena didukung browser, Markdown juga bisa berkembang seiring waktu Ambiguitas standardisasi, kekurangan fitur, dan masalah kompatibilitas mirip dengan situasi HTML4 dulu Menurut saya, evolusi bertahap lebih realistis daripada menggantinya sepenuhnya
Markdown bisa menyertakan tag HTML di mana saja Ini juga dinyatakan di dokumentasi resmi Jadi batasan yang disebut penulis sebenarnya tidak ada
atau, tidak ada alasan memakai Markdown Jika jawabannya pada akhirnya “pakai saja HTML”, maka alasan keberadaan Markdown hilangSaat kuliah mengambil jurusan fisika, saya menulis makalah dengan LaTeX Jurusan kimia memakai Word, jadi standarnya berbeda-beda menurut bidang Nomor versi TeX mengekspresikan tingkat kelengkapan targetnya dengan mendekati nilai π Versi saat ini adalah 3.141592653, dan telah dipertahankan stabil selama 47 tahun Lihat wiki TeX, penjelasan versi Pi Untuk alat CLI, format manpage juga berguna
Markdown itu seperti produk minimum yang layak (MVP) Mudah dipelajari, dan tetap mudah dibaca meski belum dirender Untuk membuat PDF saya pindah dari AsciiDoc ke Typst, yang menyelesaikan masalah aksesibilitas Tetapi bahasa markup apa pun tidak akan otomatis meningkatkan kualitas tulisan Mengganti pena tidak membuat tulisan jadi lebih baik
Nada tulisan ini adalah klaim bahwa “Markdown menghambat perkembangan LLM” Tetapi asumsi bahwa kekayaan semantik bisa diperoleh secara otomatis itu tidak realistis Di dalam tim, kami juga tidak punya waktu untuk pekerjaan seperti itu, dan Markdown sudah cukup Seperti diskusi tentang semantic web, pada akhirnya ini soal siapa yang mengelola datanya
Saya menulis blog dengan Org-mode + Emacs Yang paling saya suka adalah kemampuan menghubungkan code block dan menjalankannya di dalam dokumen Saya juga pernah memakai platform seperti Blorgit dan lazyblorg, tetapi konfigurasinya merepotkan jadi saya ekspor langsung ke HTML dan mengunggahnya ke server dengan rsync Saya menambahkan indeks dengan skrip Ruby lalu mendistribusikannya Ini jauh lebih ekspresif dan alami daripada Markdown
Saya sebagian setuju dengan klaim bahwa “Markdown kurang struktur”, tetapi saya kurang suka pendekatan yang terlalu dikotomis Sebelum memilih format, seharusnya kebutuhan strukturnya dipahami dulu Karena itu saya agak tidak nyaman, tetapi juga sulit untuk sepakat sepenuhnya
Menyodorkan DITA sebagai alternatif Markdown adalah klaim yang sangat meleset DITA adalah sistem XML perusahaan berskala besar, dan tujuannya sama sekali berbeda dari Markdown Ini hanya cocok di lingkungan seperti organisasi dengan lebih dari 5.000 orang atau lini produk multibahasa Jika situasinya cocok memakai Markdown, DITA jelas tidak cocok Keduanya sama-sama buang waktu
Saya sudah memakai Markdown lebih dari 10 tahun dan masih berfungsi dengan baik Klaim dalam tulisan itu juga tidak sepenuhnya salah, tetapi ini bukan masalah yang dirasakan pengguna Markdown Kalau perlu, pakai saja yang lain Meski begitu, judulnya bagus jadi saya membacanya sekitar 5 menit
Agak aneh menyebut MyST sebagai salah satu bentuk Markdown, lalu kembali memberi contoh reStructuredText (rST) Padahal tujuan MyST memang sebagai pengganti rST Sintaksnya bergaya Markdown, tetapi tetap mendukung makna struktural, directive, role, dan sebagainya Ada juga diskusi terkait di isu Sphinx
Akhir-akhir ini tulisan seperti ini sering terlihat.
File teks, Markdown, format yang lebih terstruktur
Seiring perubahannya, tidak ada satu jawaban yang mutlak; cukup gunakan format yang tepat pada saat yang tepat.
Dan karena masalah akan muncul jika selalu berusaha melakukan semuanya dalam satu file, pada akhirnya kita memang perlu mengelompokkan dan menatanya secara sistematis sesuai topiknya.