Kullanıcı Davranışları Analizi (User Behavior Analysis) ve Kullanıcı Deneyim Tasarımı (UX Design) üzerine çalışmalar yürütmekte, bu süreçte edindiğim teknik ve pratik bilgileri fayda sağlamak motivasyonuyla (afaik / as far as i know) paylaşmaktayım.
Dijital ortamda bir yazı yazmak istediğimizde (makale, blog yazısı vb.) yazının akışına uygun olarak bazı görsel biçimler (başlık, liste, tablo gibi) kullanmak isteriz. HTML (Hyper Text Markup Language / Hiper Metin İşaretleme Dili) elbette iş görmektedir. Ancak, bir yazı için düzenlemesi biraz uğraş gerektirir ve hatalara sebebiyet verebilir. Bu amaçla çeşitli editörlerde metinler yazılmakta ve HTML’e dönüştürmesi sağlanmaktadır. Örnek olarak WordPress metin editörü düşünülebilir. Diğer yandan, 2004 yılından bu yana hayatımızda olan, ancak özellikle GitHub ve ardından modern içerik yönetim sistemleriyle birlikte kullanım yaygınlığına kavuşan, okunması ve yazması kolay düz metin formatı da mevcut; Markdown.
Elbette bu şahsi görüşüm. Google Trends grafiğine baktığımızda asıl arama yoğunluğunun 2011 yılı itibariyle başladığını görmekteyiz, Github aramalarıyla kıyasladığımızda (Github 2008 yılında kuruldu) bir korelasyon olduğu söylenebilir.
Markdown, John Gruber ve Aaron Swartz tarafından geliştirilmiş ve 2004 yılından bu yana kullanılan açık bir formattır. En basit tanımı ile, web yazarları için text-to-HTML (metinden HTML’e) dönüştürme aracıdır. Markdown tasarımının temel hedefi geliştiricileri tarafından okunulabilirlik (readability) olarak belirtilmektedir1. Bu amaçla e-posta yazımı temelinde ağırlık göstermektedir.
Daha detaylı bir tanım olarak, düz metin biçimlendirme (markup language) sözdizimine (syntax) sahip hafif bir düz metin biçimlendirme dili (plain text formatting syntax) olarak ifade edilebilir. Aynı isimli araç sadece HTML dilini desteklese de günümüzde pek çok formatta çıktı üretebilmek için de kullanılmaktadır.
Bu bağlamda “Markdown” iki şeydir2:
Markdown resmi olmayan bir tarifname ve HTML dönüştürme işlemi için bir referans uygulama ile karakterize edilmiştir. Geçen zamanla birlikte, ihtiyaçlar doğrultusunda birçok Markdown uygulaması ve özellik ortaya çıkmış, bunlardan bazıları (tablolar, dipnotlar, tanım listeleri ve HTML blokları gibi) temel syntax üzerine dahil edilmiştir.
Ortaya çıkan uygulamalar arasında bazı farklılıklar söz konusudur. Bu farklılıklar için babelmark aracı üzerinden karşılaştırma yapılabilir. Grubber tam bir standardizasyonun doğru olmayacağını “Farklı siteler (ve insanlar) farklı ihtiyaçlara sahiptir. Hiçbir sözdizimi herkesi mutlu edemez.” söyleriyle savunmaktadır. Ek olarak, Wikipedia sitesinde bulunan Comparison of document-markup languages listesine de ayrıca göz atmanızı öneririm.
Genellikle (GitHub’dan da aşina olduğumuz üzere) Readme dosyalarının oluşturulmasında kullanılsa da çevrimiçi tartışma forumlarında ve zengin metin (rich text) oluşturma araçlarında da markdown yapısından sıklıkla faydalanılmaktadır. Markdown pek çok programlama dili (R için Rmarkdown gibi), platform (Github gibi) ve framework / library (Markdig gibi) tarafından desteklenmektedir.
Mart 2016’da RFC 7763 ve RFC 7764 yayınlanmıştır. RFC 7763, orijinal varyant ile MIME tipi text/markdown’i sunmaktadır. RFC 7764 ise MultiMarkdown, GitHub Flavored Markdown (GFM), Pandoc, CommonMark ve Markdown Extra arasında tanımlıdır.
Markdown dosyaları genellikle *.md
uzantılıdır.
Aşağıda, taslak metinlerden oluşan çeşitli markdown tanımları yer almaktadır. Bu tanımlar biçim kazandırılacak metnin genellikle önünde ve/ya önünde ve arkasında tanımlanırlar.
#
bölüm başlıklarını (heading; h1, h2, h3…, h6) ifade eder ve adedi kadar heading’i tanımlar.# Heading <h1>Heading</h1> ## Sub-heading <h2>Sub-heading</h2> ### Sub-heading <h3>Sub-heading</h3> |
Bir paragraf için yeni bir satır oluşturmak yeterlidir. Her yeni satır bir paragraf olarak tanımlanır. Bir paragrafın tamamı tek bir satır olabileceği gibi, arada boş satır bırakmadan alt satırdan da devam etmek mümkündür. Paragraf tanımı Block-Level‘dır; div, pre, table
gibi. Bu nedenle, yazılmadan önce bir satır boşluk (toplamda 2 ENTER) bırakılmalıdır. Span-Level (inline) elemanlar olduğu gibi yazılabilir. Line Break (<br \>
) için satır sonunda 2 boşluk (space) kullanılır.
Paragraphs are separated by a blank line. <p>Paragraphs are separated by a blank line.</p> Two spaces at the end of a line produces a line break. <p>Two spaces at the end of a line<br /> produces a line break.</p> |
Bir metni bold (kalın), eğik (italic) veya her ikisi ile birlikte biçimlendirmek mümkündür. Bold için metnin önüne ve ardına **
, italic için _
, monospace için ise `
eklemek yeterlidir.
Text attributes _italic_, **bold**, `monospace`. Text attributes <em>italic</em>, <strong>bold</strong>, <code>monospace</code> |
Metin bölümlendirme / ayırma amacıyla kullandığımız horizontal rule için ---
kullanmak yeterlidir.
---
<hr /> |
Bullet list için *
ve numbered list için rakam kullanılabilmektedir.
Bullet list: * apples * oranges * pears <ul> <li>apples</li> <li>oranges</li> <li>pears</li> </ul> Numbered list: 1. wash 2. rinse 3. repeat <ol> <li>wash</li> <li>rinse</li> <li>repeat</li> </ol> |
Bir metni bağlantı haline getirmek için metin köşeli parantez içerisine alınır ve yanında parantez içerisinde ilişkilendirilecek bağlantı belirtilir.
An [example](http://example.com) An <a href="http://example.com">example</a>. |
Metin içerisinde görseller de kullanmamız mümkün. Görsel tanımı için ünlem ve köşeli parantez içerisinde görselin alt
, parantez içerisinde görselin adı / yolu, tırnak içerisinde title
tanımları yapılır.

<img alt="Image" title="icon" src="Icon-pictures.png" /> |
Bir cümleyi alıntı olarak belirtmek için cümlenin başına >
koymamız yeterlidir.
> Markdown uses email-style > characters for blockquoting. <blockquote>Markdown uses email-style > characters for blockquoting.</blockquote> |
Escape karakteri, \
‘dir ve aşağıdaki karakterler için kullanılabilir.
#
hash mark.
dot+
plus sign-
minus sign (hyphen)!
exclamation mark*
asterisk_
underscore\
backslash`
backtick{}
curly braces[]
square brackets()
parenthesesYazım biçimleriyle ilgili daha detaylı bilgi için Markdown: Syntax ve Markdown Guide – Cheat Sheet sayfalarını inceleyebilir, Markdown: Dingus sayfası aracılığıyla Markdown yazım biçimini kullanmaya başlayabilirsiniz.
Ayrıca, Dropbox Paper da Markdown desteği sunmaktadır.
Ek olarak, Atom ve Visual Studio Code editörleri ile de Markdown biçimlerini görüntülemek mümkün. Atom editör işlemleri için kullanılabilecek geliştirme paketleri (extension) şöyle. Visual Studio Code için de yine benzer paketlere rastlamak mümkün. Benim özellikle önereceğim paket ise Markdown All in One.