Bir başlığı bağlantıya çeviren araçlar genelde metni önce küçük harfe çevirir — ama Türkçede İ harfinin küçüğü i̇ (noktalı), I harfinin küçüğü ise ı'dır (noktasız); yerel ayarı tanımayan bir dönüştürücü bu ayrımı kaçırıp "İstanbul" başlığından beklenmedik bir bağlantı üretebilir.
Temel söz dizimi
# Başlık—#karakterlerinin sayısına göre farklı seviyelerde başlıklar.**kalın**ve*italik*— metin vurgusu.[metin](url)— bir bağlantı.- öğeveya1. öğe— madde işaretli ve numaralı listeler.- ``` — dil adına göre söz dizimi vurgulamalı kod blokları.
"İstanbul" başlığı neden yanlış bağlantıya dönüşebilir
Çoğu Markdown işleyicisi bir başlıktan otomatik bağlantı (anchor) üretirken metni önce küçük harfe çevirir. Türkçede noktalı büyük İ harfinin küçüğü noktalı i'dir, ama yerel ayardan bağımsız (locale-unaware) bir küçük harfe çevirme işlemi bunu düz İngilizce i olarak ele alır. Sonuç olarak ## İstanbul Ofisi başlığından üretilen bağlantı, beklenen #i̇stanbul-ofisi yerine farklı bir dizgeye dönüşebilir — bu, yalnızca Markdown'a değil, Türkçe metin işleyen hemen her yazılıma özgü, iyi bilinen bir hatadır.
Orijinal Markdown'da tablo diye bir şey yoktu
John Gruber'ın 2004'te yayımladığı Markdown, biçimsel bir dilbilgisi değil düz yazıyla yapılmış bir açıklamaydı ve tablo, üstü çizili metin ya da dil vurgulamalı kod bloğu tanımlamıyordu. On yıl boyunca her uygulama orijinal metnin belirsiz bıraktığı noktaları kendince yorumladı, ta ki 2014'te CommonMark kesin bir dilbilgisi tanımlayana kadar — GitHub Flavored Markdown (GFM) da bunun üzerine, bugün her README'de sıradan görünen tablo ve görev listesi gibi eklentileri getirdi.
HTML'ye dönüştürme ve geri dönüştürme
Markdown → HTML dönüşümü doğrudandır: bir ayrıştırıcı sözdizimsel yapıları tanır ve karşılık gelen etiketleri oluşturur. Ters dönüşüm HTML → Markdown, HTML temel Markdown'dan çok daha fazla biçimlendirme seçeneği desteklediği için daha zordur, bu yüzden bazı işaretlemeler (karmaşık tablolar, iç içe stiller) basitleştirilebilir veya kaybolabilir.
Buna neden ihtiyaç duyulur
- Bir Markdown dosyasının nasıl renderlanacağını yayınlamadan hızlıca önizlemek.
- Bir sayfanın veya belgenin içeriğini sürüm kontrolünde saklamak için Markdown'a dönüştürmek.
- Yalnızca Markdown kabul eden bir uygulamaya eklemek için HTML içeriği hazırlamak.