Markdown Nedir? Tanımı, Nasıl Çalışır ve Kullanım Alanları

Markdown, metin dosyalarını web formatına dönüştürmek için kullanılan basit işaretleme dilidir. HTML kodlamaya göre çok daha kolay ve okunabilir yazım kuralları sunar. Teknik yazılar, blog yazıları, GitHub dokümantasyonu ve not alma uygulamalarında yaygın olarak kullanılır.

5 dk okuma
Markdown

Markdown, metin tabanlı bir işaretleme dilidir ve HTML kodlamaya kıyasla çok daha basit, okunaklı bir yapı sunar. 2004 yılında John Gruber tarafından tasarlanan Markdown, düz metne basit semboller (*, #, -, vb.) ekleyerek başlık, liste, vurgu ve bağlantı gibi biçimlendirme öğeleri oluşturur. Bu metin dosyası kolayca HTML'ye veya diğer formatlara dönüştürülebilir. Yazılımcılar, teknik yazarlar, blogger ve içerik oluşturucular için hızlı, etkili bir araç haline gelmiştir.

Markdown Nasıl Çalışır?

Markdown, görünüm ve içeriği ayıran minimalist bir yaklaşım kullanır. Bir Markdown dosyası (.md uzantılı) açıldığında, onu okuyacak olan uygulama (blog platformu, statik site üreticisi, sosyal medya) belirtilen sembolleri tanır ve uygun HTML etiketlerine çevirir.

Basit örnek:

Başlık 1
Başlık 2
Kalın metin
*İtalik metin*
- Liste maddesi 1
- Liste maddesi 2
[Bağlantı](https://example.com)

Yukarıdaki Markdown kodu tarayıcıda veya uygulamada işlendiğinde, <h1>, <strong>, <em>, <ul> gibi HTML etiketlerine otomatik olarak dönüştürülür.

Markdown'ın Avantajları

  • Okunabilirlik: Düz metne yakın, insan tarafından kolayca anlaşılır yapı.
  • Yazma hızı: HTML etiketleri yazmaya kıyasla çok daha hızlıdır.
  • Taşınabilirlik: Her türlü metin editöründe açılabilir, platform bağımsız.
  • Sürüm kontrol uyumluluğu: GitHub, GitLab gibi platformlarda doğal olarak desteklenir.
  • Hafif dosya boyutu: HTML ve diğer formatlara kıyasla çok daha az yer kaplar.
  • Öğrenme eğrisi: Temel kullanım 10-15 dakikada öğrenilebilir.
  • Geniş destek: Blog platformları, statik site üreteçleri, not tutma uygulamaları destekler.

Markdown'ın Dezavantajları

  • Sınırlı biçimlendirme: Karmaşık sayfa tasarımları için yetersiz kalabilir.
  • Taslak standardizasyon sorunları: Farklı platformlar farklı Markdown varyantları kullanabilir.
  • WYSIWYG desteği yok: "Ne görürsen onu alırsın" editörleri bulunmaz; önizleme gerekir.
  • Tablo desteği sınırlı: Karmaşık tablo yapıları zor veya imkansız.
  • Görsel düzenleme araçları az: Kod tabanlı editörler gerekir veya özel araçlar kullanılmalı.
  • İleri özellikler için HTML fallback: Benzersiz tasarımlar için HTML karışması gerekebilir.

Markdown Nerede Kullanılır?

Kullanım Alanı Örnek Platform / Uygulama Amaç
Kod dokümantasyonu GitHub, GitLab, Bitbucket README dosyaları, proje açıklamaları
Blog yazıları Jekyll, Hugo, Medium, Dev.to Teknik makaleler, blog yazıları
Not tutma Notion, Obsidian, Roam Research Kişisel notlar, bilgi yönetimi
Teknik yazı Stack Overflow, Hacker News Cevaplar, açıklamalar
Statik web siteleri Gatsby, Next.js, Astro İçerik yönetimi, sayfa oluşturma
Akademik yazılar Pandoc, R Markdown Raporlar, makaleler
Slack ve Discord mesajları Slack, Discord, Teams Biçimlendirilmiş mesajlar
E-posta şablonları Transactional email servisleri Pazarlama ve sistem bildirimleri

Markdown Türleri ve Varyantları

Markdown'ın resmi standardı basit olsa da, çeşitli platformlar kendi gereksinimlerine göre genişletilmiş varyantlar sunmuştur:

  • CommonMark: Standart Markdown'ın açıkça tanımlanmış versiyonu, birçok platformda kullanılır.
  • GitHub Flavored Markdown (GFM): GitHub için özel genişletmeler sunar (tablo, görev listesi, üstü çizili metin).
  • MultiMarkdown: Akademik yazılar için meta veri, denklem ve not desteği.
  • R Markdown: R kodunu ve çıktısını Markdown ile birleştiren istatistik yazısı aracı.
  • Markdown Extra: Python-Markdown tarafından sunulan, ek özellikler içeren varyant.
  • Pandoc Markdown: Doküman dönüştürücüsü Pandoc'un desteklediği, kapsamlı format.

Temel Markdown Syntax Örnekleri

Başlıklar:

H1 başlığı
H2 başlığı
H3 başlığı

Metin vurgusu:

Kalın metin veya __Kalın metin__
*İtalik metin* veya _İtalik metin_
Kalın ve italik

Listeler:

- Sırasız liste
- Madde 2

1. Sıralı liste
2. Madde 2

Bağlantılar ve görüntüler:

[Metin](https://example.com)
![Alt metin](image.jpg)

Alıntılar:

> Bu bir alıntı

Kod:

`İçeri kod` (satır içi)
javascript
// Kod bloğu
console.log("Merhaba");

Markdown'ın Tarihçesi

Markdown, 2004 yılında John Gruber tarafından Daring Fireball blogunda tanıtıldı. Gruber, basit metin dosyalarının HTML'ye dönüştürülmesi için daha insan dostu bir yol araştırıyordu. Aaron Swartz'ın etkileyici yazıları da bu dilin gelişiminde rol oynadı.

İlk yıllarında Markdown, teknik yazarlar ve blogger arasında sessizce kullanılmaya başlandı. 2008 yılında GitHub, Markdown'u README dosyaları ve proje dokümantasyonu için desteklemesi karar verdi; bu, dilin popülaritesini katlanarak artırdı. Günümüzde, açık kaynak yazılım geliştirilmesinin standart belgeme formatı haline gelmiştir.

2019 yılında CommonMark projesi başlatıldı; bu, Markdown'un resmi standartlaştırılması için bir çabaydır. Daha sonra, çeşitli platformlar (GitHub, Discord, Reddit, Slack) kendi Markdown varyantlarını geliştirerek, dilin kullanım alanını genişletti.

"Markdown yazılabilir ve okunabilir olmalı ve mümkün olduğu kadar basit tutulmalıdır." — John Gruber

Markdown Editörleri ve Araçları

  • Çevrimiçi editörler: StackEdit, Dillinger, HackMD (kolaboratif yazma)
  • Masaüstü uygulamalar: VS Code, Sublime Text, Typora
  • Not tutma uygulamaları: Obsidian, Notion, Roam Research
  • Statik site üreteçleri: Jekyll, Hugo, Gatsby (Markdown'u HTML'ye dönüştürür)
  • API ve kitaplıklar: Marked.js, markdown-it (JavaScript), Pandoc (çoklu format dönüştürme)
Markdown ve HTML arasındaki fark nedir?+
HTML, açık ve kapanış etiketleri kullanan tam teşekkülü bir işaretleme dilidir (<p>, <strong> gibi). Markdown ise basit semboller (#, *, -) kullanarak daha okunaklı bir sözdizimi sunar. Markdown otomatik olarak HTML'ye dönüştürülebilir, ancak tersini yapmak daha zordur.

M harfindeki diğer terimler