Markdown
Markdown'ın Büyüsü: Geliştiriciler Onu Neden Seviyor?
5 min read
Markdown'ın Büyüsü: Geliştiriciler Onu Neden Seviyor?
Bir GitHub deposu için README dosyası yazdıysanız, Reddit'te bir gönderiyi biçimlendirdiyseniz, Discord'da sohbet ettiyseniz veya Obsidian veya Notion gibi araçlarda not aldıysanız, Markdown kullanmışsınızdır. Modern internet çağının tartışmasız en başarılı işaretleme dilidir (markup language) ve her gün milyonlarca belgenin ve milyarlarca mesajın biçimlendirilmesine sessizce güç verir.
Yaygınlığına rağmen, çoğu insan sadece bir kelimeyi kalın (bold) yapmak için etrafına yıldız işareti koymak gibi en temel özellikleri bilir. Ancak Markdown, insan tarafından okunabilen metin ile mükemmel biçimlendirilmiş HTML arasındaki boşluğu doldurmak için tasarlanmış inanılmaz derecede güçlü ve zarif bir sistemdir.
Bu nihai rehberde, Markdown'ın tarihini, diğer biçimlendirme dillerinin başarısız olduğu yerlerde neden başarılı olduğunu, sözdiziminde (syntax) nasıl ustalaşacağınızı, gelişmiş varyasyonlarını ve geliştiriciler ile yazarların onu neden bu kadar çok sevdiğini keşfedeceğiz.
Markdown Nedir?
Özünde Markdown, düz metin belgelerine biçimlendirme öğeleri eklemek için kullanabileceğiniz hafif (lightweight) bir işaretleme dilidir. John Gruber tarafından (Aaron Swartz'ın katkılarıyla) 2004 yılında yaratılan Markdown, şu anda dünyanın en popüler işaretleme dillerinden biridir.
"Ne Görürsen Onu Alırsın" (WYSIWYG) arayüzü kullanan Microsoft Word veya Google Docs gibi yoğun özellikli kelime işlemcilerin aksine, Markdown biçimlendirme komutlarını açıkça yazmanızı gerektirir. Örneğin, bir kelimeyi italik yapmak için bir düğmeye tıklamak yerine, onu alt çizgiler arasına alırsınız: _bunun gibi_.
Markdown'ın gerçek büyüsü temel felsefesinde yatar. Yaratıcısı John Gruber'a göre:
"Markdown'ın biçimlendirme sözdizimi için birincil tasarım hedefi, onu olabildiğince okunabilir kılmaktır. Fikir şudur ki, Markdown ile biçimlendirilmiş bir belge, etiketler veya biçimlendirme talimatlarıyla işaretlenmiş gibi görünmeden, olduğu gibi, düz metin olarak yayınlanabilmelidir."
Ham HTML koduna bakarsanız, karmaşıktır ve bir insanın hızlıca okuması zordur. <p>Bu <strong>kalın</strong> bir ifadedir.</p> cümlesi etiketlerle (tag) doludur. Markdown karşılığı olan Bu **kalın** bir ifadedir. ise inanılmaz derecede temizdir.
Tarihçe: Neden Yaratıldı?
2000'li yılların başlarında blog yazarları ve web yazarları hayal kırıklığı içindeydi. Uygun biçimlendirmeye sahip (başlıklar, listeler, bağlantılar, vurgular) bir blog yazısı yazmak için ham HTML'i elle yazmak zorundaydılar. Sıkıcıydı, hataya açıktı ve görsel olarak dikkat dağıtıcıydı.
Web tarayıcıları için zengin metin (rich-text) editörleri oluşturmak için bazı girişimlerde bulunuldu, ancak bunlar genellikle yavaştı, (gereksiz satır içi stillerle dolu) korkunç HTML kodları ürettiler ve sık sık bozuluyorlardı.
Bir yazar ve teknoloji yorumcusu olan John Gruber, ham haliyle okunması kolay olan ancak anında ve mükemmel bir şekilde temiz, anlamsal olarak (semantically) doğru HTML'ye dönüşebilen metin yazmanın bir yolunu istedi. 2004 yılında, resmi sözdizimi kurallarının yanı sıra Markdown.pl adlı bir Perl betiği (script) yayınladı. Web için yazma sürtünmesini tamamen ortadan kaldırdığı için geliştiriciler ve teknik yazarlar arasında orman yangını gibi yayıldı.
Markdown'ı Neden Seviyoruz?
1. Taşınabilir ve Platform Bağımsızdır
Bir Markdown dosyası yalnızca düz bir metin dosyasıdır (genellikle .md uzantılıdır). Açmak için tescilli bir yazılım lisansı gerektirmez. 15 yıl önce oluşturulmuş bir Markdown dosyasını bugün herhangi bir işletim sistemindeki kelime editöründe açabilirsiniz ve mükemmel çalışacaktır. Aynı şeyi eski bir .doc dosyası için her zaman söyleyemezsiniz.
2. Ellerinizi Klavyede Tutar
Hızlı klavye kullananlar ve geliştiriciler için, bir fareyi kavramak, metni vurgulamak ve bir "Kalın" düğmesine tıklamak için bir eli klavyeden kaldırmak zorunda kalmak odağı ve akışı bozar. Markdown ile biçimlendirme satır içinde gerçekleşir. Belgenizi biçimlendirmek için yazmayı asla bırakmak zorunda kalmazsınız.
3. HTML'e Mükemmel Dönüştürülür
Markdown esasen HTML için bir kısayoldur. Bir sistem (GitHub, statik site oluşturucu veya bir blog platformu gibi) bir Markdown dosyasını işlediğinde, sözdizimini doğrudan temiz HTML etiketlerine çevirir. Bir Markdown başlığı # Başlık, güvenilir bir şekilde <h1>Başlık</h1> haline gelir.
4. Sürüm Kontrolü (Version Control) İçin Mükemmeldir
Markdown sadece düz metin olduğundan, Git gibi sürüm kontrol sistemleriyle mükemmel çalışır. Bir ekiple bir Markdown belgesi üzerinde işbirliği yapıyorsanız, değiştirilen, eklenen veya kaldırılan kesin satırları görebilirsiniz; bu, Word belgeleri gibi ikili (binary) dosyalarda imkansızdır.
Temel Markdown Sözdiziminde Ustalaşmak
Zamanın %99'unda kullanacağınız temel sözdizimine bir göz atalım.
Başlıklar (Headers)
Başlık oluşturmak için diyez sembollerini (#) kullanın. Diyez sayısı başlık seviyesini belirler (HTML'deki h1 ile h6 arasına eşdeğerdir).
# Başlık 1 (En büyük)
## Başlık 2
### Başlık 3
#### Başlık 4
Vurgu (Emphasis)
Vurgu için yıldız işareti veya alt çizgi kullanabilirsiniz.
*Bu metin italik olacaktır*
_Bu da italik olacaktır_
**Bu metin kalın (bold) olacaktır**
__Bu da kalın olacaktır__
***Bu metin kalın ve italik olacaktır***
Listeler
Sırasız (madde işaretli) listeler yıldız, artı veya tire işareti kullanır.
* Madde 1
* Madde 2
* İç içe Madde 2a
Sıralı (numaralı) listeler yalnızca rakamlar ve ardından nokta kullanır.
1. Birinci madde
2. İkinci madde
3. Üçüncü madde
Bağlantılar (Links) ve Resimler
Bağlantılar, metin için köşeli parantez, URL için parantez kullanır. Resimler tamamen aynıdır, ancak ünlem işaretiyle başlarlar.
[Google için buraya tıklayın](https://google.com)

Blok Alıntılar (Blockquotes)
Bir blok alıntı oluşturmak için büyüktür işaretini (>) kullanın.
> Bu ünlü bir alıntıdır.
> Birden fazla satıra yayılabilir.
Kod (Code)
Satır içi kod için metni tek ters tırnaklar (backtick) arasına alın. Bir kod bloğu için onu üç ters tırnak arasına alın.
Paketi kurmak için `npm install` komutunu çalıştırın.
```javascript
function sayHello() {
console.log("Merhaba Dünya!");
}
## Gelişmiş Markdown: Türler (Flavors) ve Eklentiler
Markdown popülerlikte patladıkça, farklı platformlar John Gruber'ın orijinal spesifikasyonunun sağladığından daha fazla özelliğe (tablolar, görev listeleri ve dipnotlar gibi) ihtiyaç duyduklarını fark ettiler. Bu, "Markdown Flavors"ın (Markdown Türleri/Varyasyonları) yaratılmasına yol açtı.
### GitHub Flavored Markdown (GFM)
Bu tartışmasız günümüzdeki en baskın türdür. GitHub, özellikle geliştiriciler için uyarlanmış özellikler ekledi:
- **Görev Listeleri (Task Lists):** `- [ ] Yapılacaklar öğesi` tıklanabilir bir onay kutusu oluşturur.
- **Tablolar:** Veri tabloları oluşturmak için dikey çubuklar (`|`) ve tireler (`-`) kullanılır.
- **Üstü Çizili (Strikethrough):** Metni yaklaşık işaretleri (tilde) arasına alma `~~bunun gibi~~`.
- **Otomatik URL Bağlantısı:** Yalnızca bir URL yapıştırmak onu otomatik olarak tıklanabilir bir bağlantıya dönüştürür.
### MultiMarkdown ve Pandoc
Bu türler akademisyenler ve yazarlar tarafından kullanılır. Dipnotlar, alıntılar, matematik denklemleri (LaTeX kullanarak) için destek eklerler ve Markdown dosyasını PDF, EPUB kitapları veya Word belgeleri gibi karmaşık formatlara dışa aktarma (export) yeteneği sağlarlar.
## Markdown'ın Geleceği
Bugün Markdown, teknik yazarlığın tartışmasız kralıdır. Hugo, Next.js ve Astro gibi statik site oluşturucularına güç verir. Reddit, Slack, Discord ve Trello için varsayılan biçimlendirme dilidir. Obsidian ve Roam Research gibi modern not alma uygulamaları tamamen yerel Markdown dosyaları etrafında inşa edilmiştir.
Geleneksel kelime işlemciler (Word vb.) bile bunu dikkate alıyor. Google Docs kısa bir süre önce, kullanıcıların `# ` yazmasına ve fareyi kullanmadan anında bir başlık oluşturmasına olanak tanıyan otomatik Markdown ayrıştırmasını ekledi.
## Sonuç
Markdown, tek bir şeyi yapmanın ve onu kusursuz yapmanın mükemmel bir örneğidir. HTML'in görsel karmaşıklığını ve modern kelime işlemcilerin şişirilmiş arayüzlerini ortadan kaldırarak, yazarların tamamen içeriklerine odaklanmalarını sağlar.
İster basit bir yapılacaklar listesi yazıyor olun, ister devasa bir açık kaynaklı yazılım projesini belgeliyor olun, ister bir roman taslağı hazırlıyor olun, Markdown düşüncelerinizi ekrana aktarmak için zamansız, taşınabilir ve yıldırım hızında bir yol sunar. Henüz öğrenmediyseniz, sözdizimini (syntax) pratik yapmak için on dakikanızı ayırın; internette yazma şeklinizi sonsuza dek değiştirecektir.