Markdown Listelerinde Uzmanlaşma: CommonMark ve GitHub Flavored Markdown (GFM) Girinti Standartları
Markdown Liste İşlemenin Teknik Temeli
Markdown; modern yazılım dokümantasyonu, teknik şartnameler, kişisel bilgi tabanları ve geliştirici iletişimi için standart işaretleme dili olarak kendini kanıtlamıştır. Tek seviyeli madde işaretli listeler (- öge) ve numaralı listeler (1. öge) basit görünse de, derinlemesine iç içe geçmiş çok katmanlı doküman taslakları oluşturmak ciddi biçimlendirme karmaşıklığı getirir. CommonMark, GitHub Flavored Markdown (GFM), Python-Markdown ve Pandoc gibi farklı Markdown ayrıştırıcıları; liste işaretçisi seçimi, sekme-boşluk oranları ve alt blok girintilemesi konusunda katı kurallar uygular.
Listeler farklı metin düzenleyiciler (VS Code, Sublime Text, Xcode, Apple Notes veya Microsoft Word gibi) arasında kopyalanıp yapıştırıldığında gizli girinti hataları oluşur. Bir alt ögedeki tek bir eksik boşluk, Markdown derleyicisinin iç içe geçmiş bir alt düğümü birincil üst düzey öge veya bağımsız bir paragraf bloğu olarak yorumlamasına neden olur. Utiliome'un Nested List & Indentation Formatter aracı, girdi metni yapısı AST'nizi (Soyut Sözdizimi Ağacı) ayrıştırarak ve standartlara uygun Markdown'ı yeniden üreterek bu ayrıştırma anormalliklerini ortadan kaldırır.
Girinti Kuralları: 2 Boşluk ve 4 Boşluk Yönergeleri
Teknik dokümantasyon tasarımında en sık yapılan tartışmalardan biri, alt listelerin hiyerarşik katman başına 2 boşluk mu yoksa 4 boşluk mu kullanılarak girintileneceğidir. Seçim, hedef Markdown ayrıştırıcı spesifikasyonuna bağlıdır:
2 Boşluklu Girinti Kuralı (Standart GFM ve Prettier): GitHub, Docusaurus, Nextra ve Obsidian gibi modern web dokümantasyon ekosistemlerinde girinti seviyesi başına 2 boşluk kabul gören standarttır. 2 boşluk kuralı, alt içeriği üst ögenin metin başlangıcının altında hizalar:
- Üst düzey öge 1 - İç içe alt öge 1.1 - İç içe alt öge 1.2 - Derin iç içe torun öge 1.2.1 - Üst düzey öge 24 Boşluklu Girinti Kuralı (Katı CommonMark ve Python-Markdown): Katı CommonMark uygulamaları; alt blokların, kod parçacıklarının ve sıralı listeler içindeki iç içe listelerin, doğru kapsama sağlamak için 4 boşluk (veya 1 tam sekme durağı) kadar girintilenmesini gerektirir:
1. İş akışındaki ilk sıralı adım - İlişkili alt madde A - İlişkili alt madde B 2. İş akışındaki ikinci sıralı adımSekme (Tab) ve Boşluk (Space) Tuzakları: Fiziksel sekme karakterlerini (
\t) ASCII boşluk karakterleriyle (\x20) karıştırmak, bozuk Markdown dokümanı işlenmesinin başlıca nedenidir. Web işleme motorları sekmeleri tutarsız bir şekilde çevirir ve iç içe geçmiş ögelerin görsel olarak hizadan kaymasına neden olur. Utiliome, tüm sekme karakterlerini açık yapılandırma tercihinize göre otomatik olarak tek tip boşluk dizelerine dönüştürür.
Madde İşaretlerini Standartlaştırma ve Sıralı Dizi Düzeltme
Markdown, sırasız listeler için üç farklı madde işareti karakterini destekler: tire (-), yıldız (*) ve artı (+). Her üçü de geçerli sırasız liste HTML ögeleri (<ul>) üretse de, aynı doküman içinde işaretçi türlerini karıştırmak görsel karmaşa yaratır ve otomatik linter kontrollerinden (MD004 kuralı gibi) geçemez.
Ayrıca, sıralı liste numaralandırması düzenleme sırasında sık sık bozulur. Yazarlar genellikle ögeleri numaralı dizilerin ortasına yapıştırır veya otomatik artan 1. sözdizimlerine güvenir:
<!-- Biçimlendirilmemiş / Bozuk Girdi -->
* Özellik A
- Özellik B
+ Özellik C
1. İlk adım
1. İkinci adım (taslaktan kopyalandı)
4. Sırası bozuk adım
Utiliome'un biçimlendiricisi, tüm sırasız liste işaretçilerini seçtiğiniz tek bir karaktere dönüştürür (örneğin her ögeyi - olarak standartlaştırır) ve sıralı dizileri sıralı olarak yeniden numaralandırır (1., 2., 3.) veya ekibinizin kod inceleme kurallarına göre tek haneli artışlara dönüştürür.