Menguasai Senarai Markdown: Piawaian Indentasi CommonMark & GitHub Flavored Markdown (GFM)
Asas Teknikal Persembahan Senarai Markdown
Markdown telah menetapkan dirinya sebagai bahasa penanda piawai untuk dokumentasi perisian moden, dokumen spesifikasi teknikal, asas pengetahuan peribadi, dan komunikasi pembangun. Walaupun senarai berbulet satu tahap (- item) dan senarai bernombor (1. item) kelihatan mudah, membina garis panduan dokumen bersarang multi-tahap memperkenalkan kerumitan pemformatan yang ketara. Pemproses Markdown yang berbeza—seperti CommonMark, GitHub Flavored Markdown (GFM), Python-Markdown, dan Pandoc—menguatkuasakan peraturan yang ketat dan halus mengenai pemilihan penanda senarai, nisbah tab-ke-ruang, dan takukan sub-blok.
Apabila senarai ditampal di pelbagai editor teks yang berbeza (seperti VS Code, Sublime Text, Xcode, Apple Notes, atau Microsoft Word), ralat takukan senyap berlaku. Ruang tunggal yang hilang pada sub-item menyebabkan pengkompil Markdown menafsirkan nod anak bersarang sebagai item peringkat teratas utama atau blok perenggan terasing. Pembedat Senarai Bersarang & Indentasi Utiliome menghapuskan keanehan pemprosesan ini dengan memproses struktur AST (Abstract Syntax Tree) teks input anda dan menjana semula Markdown yang standard dan mematuhi spesifikasi.
Peraturan Takukan: Garis Panduan 2-Ruang vs 4-Ruang
Salah satu perdebatan yang paling kerap dalam reka bentuk dokumentasi teknikal ialah sama ada mahu menakuk sub-senarai menggunakan 2 ruang atau 4 ruang bagi setiap tahap hierarki. Pilihan bergantung pada spesifikasi pemproses Markdown sasaran:
Peraturan Indentasi 2-Ruang (Standard GFM & Prettier): Dalam ekosistem dokumentasi web moden seperti GitHub, Docusaurus, Nextra, dan Obsidian, 2 ruang bagi setiap tahap takukan ialah piawaian yang diiktiraf. Konvensyen 2-ruang menyelaraskan kandungan anak di bawah permulaan teks item induk:
- Top-level item 1 - Nested child item 1.1 - Nested child item 1.2 - Deeply nested grandchild item 1.2.1 - Top-level item 2Peraturan Indentasi 4-Ruang (CommonMark Ketat & Python-Markdown): Pelaksanaan CommonMark yang ketat memerlukan blok anak, potongan kod, dan senarai bersarang di dalam senarai teratur ditakuk dengan 4 ruang (atau 1 hentian tab penuh) untuk menjamin pembendungan blok induk yang betul:
1. First ordered step in workflow - Associated sub-bullet A - Associated sub-bullet B 2. Second ordered step in workflowPerangkap Tab vs. Ruang: Mencampur aksara tab fizikal (
\t) dengan aksara ruang ASCII (\x20) adalah punca utama persembahan dokumentasi Markdown yang rosak. Enjin persembahan web menterjemahkan tab secara tidak konsisten (selalunya sebagai 4 atau 8 lajur paparan), menyebabkan item bersarang melompat keluar daripada penjajaran secara visual. Utiliome menukar semua aksara tab secara automatik kepada rentetan ruang seragam mengikut keutamaan konfigurasi anda yang jelas.
Menyelaraskan Penanda Bulet & Pembaikan Urutan Teratur
Markdown menyokong tiga aksara bulet yang berbeza untuk senarai tidak teratur: tanda sempang (-), tanda bintang (*), dan tanda tambah (+). Walaupun ketiga-tiga menghasilkan elemen HTML senarai tidak teratur yang sah (<ul>), mencampurkan jenis penanda dalam dokumen yang sama mewujudkan kekacauan visual dan gagal dalam pemeriksaan linter automatik (seperti peraturan markdownlint MD004).
Selain itu, penomboran senarai teratur kerap rosak semasa pengeditan berulang. Pengarang kerap menampal item ke tengah-tengah urutan bernombor atau bergantung pada sintaks 1. yang bertambah secara automatik:
<!-- Unformatted / Broken Input -->
* Feature A
- Feature B
+ Feature C
1. Initial step
1. Second step (copied from draft)
4. Out-of-order step
Pembedat Utiliome menyelaraskan semua penanda senarai tidak teratur kepada aksara disatukan pilihan anda (cth., menyelaraskan setiap item kepada -) dan nomborkan semula urutan teratur secara berurutan (1., 2., 3.) atau menyelaraskannya kepada penambahan digit tunggal yang bersih (1., 1., 1.) berdasarkan garis panduan gaya semakan kod pasukan anda.