Markdown Document (.md)

CommonMark Standart

Markdown (MD), John Gruber tarafından, temel bir terminal veya düz metin düzenleyicide bile zahmetsizce okunabilir ve yazılabilir olması, aynı zamanda yapılandırılmış HTML'e sorunsuz bir şekilde dönüştürülmesi için tasarlanmış, dünyanın en popüler hafif biçimlendirme dilidir.

İncele ve Meta Veriler

İşletim sistemleri ve dosya çözümleyicileri, Markdown dosyalarını başlangıçtaki ikili sihirli bayt dizisini inceleyerek tanımlar:

Dosyaları buraya seç veya bırak

Özel - dosyalar cihazınızdan asla ayrılmaz

veya yapıştır Ctrl+V
Sıfır Ağ Aktarımı Gizlilik Garantisi: Harici sunuculara 0 bayt yüklendi. Tüm işlemler tarayıcındaki korumalı alanda (sandbox) yerel olarak gerçekleştirildi.

Bayt düzeyinde başlık imzası (sihirli baytlar)

İşletim sistemleri ve dosya çözümleyicileri, Markdown dosyalarını başlangıçtaki ikili sihirli bayt dizisini inceleyerek tanımlar:

HEX İMZASI (OFSET 0):

Sabit imza yok (Markdown düz metindir)

ASCII GÖSTERİMİ: Sabit imza yok

Standartlaştırma: CommonMark Specification / GitHub Flavored Markdown (GFM)

Teknik Özellikler

Kapsayıcı mimarisiHafif noktalama biçimlendirmesi (başlıklar, listeler, kalın, italik, kod blokları) kullanan düz UTF-8 metin dosyası
SıkıştırmaSıkıştırılmamış metin (Gzip veya Brotli ile kolayca sıkıştırılır)
Bayt Düzeni (Endianness)UTF-8 / Unicode metin akışı
Renk UzaylarıN/A (Plaintext Markup)
Kanallar ve YapıBaşlıklar, alıntı blokları, sırasız/sıralı listeler, kod çitleri, köprüler, görüntüler ve tablolar
Maksimum BoyutlarSınırsız metin belgesi uzunluğu
ŞeffaflıkYok (salt metin)
Akış ve Aşamalı İşlemeBlokların ve satır içi öğelerin satır satır akışlı belirteçleştirilmesi

Teknik karşılaştırma matrisi: Markdown ve rakipleri

Teknik NitelikMarkdown (Güncel)HTMLTXTPDF
Yazma KolaylığıSon derece hızlı düz metin yazımıAyrıntılı etiket sözdizimi (<p>, <div>)Hızlı yazım (biçimlendirme yok)Grafik düzenleme yazılımı gerektirir
Ham metnin okunabilirliğiKusursuz doğal metin okunabilirliğiEtiketler ve parantezler nedeniyle karmaşıkKusursuz metin okunabilirliğiİkili okunamaz ham baytlar
HTML DönüşümüDoğrudan 1'e 1 deterministik çıktıWeb'in yerleşik diliManuel biçimlendirme gerektirirSabit grafiksel çıktı
Geliştirici AraçlarıDestek, yazılıma göre değişir.Destek, yazılıma göre değişir.Destek, yazılıma göre değişir.Belge dağıtımı

Yaygın Bozulma Modları ve Hex Kurtarma Kılavuzu

Kod blokları normal paragraflar olarak işlenir veya başlıklar biçimlendirilemez.

Kök Neden: Başlık '#' sembolünden sonra eksik boşluk veya kapatılmamış üçlü ters tırnak (```) kod sınırları.

Kurtarma: Markdown sözdizimini File2File.app Markdown Linter ile doğrula ve yeniden biçimlendir.

Güvenlik Analizi ve Ayrıştırıcı Saldırı Vektörleri

Markdown dönüştürücüler genellikle varsayılan olarak ham satır içi HTML'e izin verir; bu da temizlenmediği takdirde Siteler Arası Betik Çalıştırma (XSS) açıklarına yol açabilir.

Bilinen Saldırı Vektörleri

  • Markdown metninin içine gömülü ham HTML öğeleri (örn. '<script>' veya '<img onerror=...>') aracılığıyla XSS enjeksiyonu.
  • Uyumlu olmayan ayrıştırıcılarda derinlemesine iç içe geçmiş alıntı blokları veya liste yapıları yoluyla hizmet reddi (DoS).
  • Markdown bağlantı sözdizimi içinde kötü amaçlı köprü şemaları ('javascript:').

Savunmaya yönelik en iyi uygulamalar: Oluşturulan HTML çıktısını her zaman DOMPurify ile temizle ve güvenli olmayan URL protokollerine izin verme.

Tarihsel kökenler ve önemli dönüm noktaları

2017GitHub Flavored Markdown (GFM), resmi CommonMark spesifikasyonuna dayanarak standartlaştırıldı.
2014Belirsiz Markdown uç durumlarını standartlaştırmak amacıyla Jeff Atwood ve John MacFarlane tarafından CommonMark girişimi başlatıldı.
2004John Gruber ve Aaron Swartz, orijinal Markdown 1.0 spesifikasyonunu ve Perl dönüştürme betiğini yayınladı.

Temel Avantajlar ve Artılar

  • Maksimum insan okunabilirliği: Biçimlendirilmiş metin, temel bir terminalde veya düz metin düzenleyicide görüntülendiğinde bile temiz ve doğal görünür.
  • Markdown belgelerde sık kullanılır, ancak sözdizimi ve görüntüleme araca göre değişir.
  • Sıfır satıcı bağımlılığı: Düz metin dosyaları, tescilli görüntüleme yazılımlarına ihtiyaç duyulmadan yüzyıllar boyunca okunabilir kalacaktır.

Teknik Kısıtlamalar ve Eksiler

  • Orijinal 2004 spesifikasyonundaki belirsiz ayrıştırma kuralları, farklı lehçelerin (CommonMark, GFM ve Kramdown) ince ince ayrışmasına yol açtı.
  • Çok sütunlu dergi düzenleri, metin kaydırma veya sayfa numaraları gibi karmaşık sayfa düzeni özellikleri için yerel destek yoktur.
  • Görseller belge dosyasının içinde saklanmaz; bunlara harici bağlantılarla başvurulur.

İlginç Teknik Bilgiler

  • John Gruber ile birlikte Markdown'ı 17 yaşında geliştiren Aaron Swartz, aynı zamanda Reddit'in kurucu ortaklarındandır ve RSS 1.0'ı inşa etmiştir.
  • Dünyadaki her bir GitHub deposu, kod tabanını geliştiricilere tanıtmak için bir 'README.md' dosyası kullanır.
  • Markdown tasarım felsefesi şunu belirtir: 'Markdown biçimlendirme sözdizimi için temel tasarım hedefi, onu olabildiğince okunabilir kılmaktır.'

Sıkça Sorulan Teknik Sorular

Markdown ne için kullanılır?

Markdown; dokümantasyon, GitHub README dosyaları ve blog yazıları yazmak, Obsidian ve Notion gibi uygulamalarda not almak ve Discord ile Slack gibi platformlarda mesaj oluşturmak için kullanılır.

Markdown'ı PDF veya HTML formatına nasıl dönüştürebilirim?

Markdown (.md) dosyalarını web tarayıcında File2File.app ile tek tıkla biçimlendirilmiş PDF belgelerine veya temiz HTML koduna dönüştürebilirsin.

GitHub Flavored Markdown (GFM) nedir?

GFM, Markdown'ın GitHub tarafından genişletilmiş sürümüdür. Tablolar, onay kutulu görev listeleri ([x]), üstü çizili metin (~~text~~) ve sözdizimi vurgulu kod blokları desteği ekler.