Markdown'ınızı yan yana işlenmiş hâlde görün ve HTML'i kopyalayın — önizleme tarayıcınızda yalıtılmış bir alanda çalışır.
Markdown, bir dönüştürücünün HTML'e çevirdiği birkaç noktalama kuralına sahip düz metindir — başlık için diyez, vurgu için yıldız, liste maddesi için tire. Bu araç metni marked ile GitHub Flavored Markdown modunda işler; böylece insanların gerçekten yazdığı şeyler korunur: tablolar, dil etiketi taşıyan kod blokları, görev listeleri, üstü çizili metin ve otomatik bağlantıya dönüşen çıplak URL'ler. Önizleme editörün yanında durur ve siz yazdıkça yeniden çizilir; böylece bozuk tabloyu ya da kapanmamış kod bloğunu README'yi gönderdikten sonra değil, yazarken fark edersiniz.
Bir Markdown dönüştürücünün vermesi gereken tek bir güvenlik kararı vardır ve bu sayfa onu geçiştirmek yerine açıkça söyler: marked hiçbir şeyi temizlemez. Markdown, ham HTML'e bilerek izin verir; bu yüzden bir script etiketi, onerror işleyicisi olan bir görsel ya da javascript: adresine giden bir bağlantı, ayrıştırıcıdan girdiği gibi çıkar. Bunu bu sayfanın içinde işlemek, siteler arası betik çalıştırma (XSS) açığı olurdu. Bir temizleyici yazmak yerine önizleme, sandbox özniteliği boş olan bir iframe içinde çizilir — yani bütün kısıtlamalar açık. allow-scripts olmadan hiçbir şey çalışmaz ve hiçbir olay işleyicisi tetiklenmez; allow-same-origin olmadan çerçeve opak bir kaynakta durur ve bu sayfayı, çerezlerini ya da deposunu okuyamaz. Çerçevenin içindeki default-src 'none' değerine sahip Content-Security-Policy ise ikinci ve bağımsız bir katmandır. Bir temizleyici size, kopyalamak üzere olduğunuz HTML'den farklı bir şey gösterirdi; bir önizlemede bu tam olarak yanlış bir takas olurdu.
Bilerek temizlenmeyen şey HTML'in kendisidir, çünkü ürün odur: kopyalama ve indirme size marked'in ürettiğinin tam olarak aynısını verir. Bu yüzden Markdown'ınız kod çalıştırabilecek bir şey içerdiğinde araç bunu adıyla söyler — script, iframe, form, bir on- işleyicisi, bir javascript: adresi — ve yalıtımın önizlemede bittiğini hatırlatır. Markdown başkasından geldiyse ve o HTML'i yayımlarsanız risk de onunla birlikte taşınır. Her şey kendi cihazınızda JavaScript ile çalışır ve yazdığınız hiçbir şey yüklenmez. Önizlemenin yaptığı tek istek, bir görsel dış bir adresi gösterdiğinde sizin kendi yazdığınız istektir. Önizlemedeki bağlantılar tıklanabilir değildir: bu, sandbox'ın bedelidir ve bir önizleme için ucuz bir bedeldir.
Hayır. Metin, cihazınızdaki JavaScript tarafından ayrıştırılır ve işlenir: hiçbir sunucuya bir şey gönderilmez, saklanmaz veya kaydedilmez. Sayfa yüklendikten sonra internet bağlantınızı kesin; araç yine de çalışır.
Hayır ve öyleymiş gibi de yapmıyor. Önizleme, sandbox uygulanmış bir iframe içinde yalıtılmıştır, dolayısıyla orada hiçbir şey çalışmaz; ancak kopyaladığınız HTML, ayrıştırıcının ürettiğinin tam olarak aynısıdır. Markdown başkasından geldiyse, yayımlamadan önce mutlaka temizleyin.
Çünkü önizleme çerçevesinde tüm sandbox kısıtlamaları açıktır ve gezinme de bunlardan biridir — javascript: bağlantısının tetiklenmesini engelleyen anahtarın aynısı. Bağlantıların çalışmasını istiyorsanız HTML'i kopyalayın.
GitHub Flavored Markdown: CommonMark'a ek olarak tablolar, dil etiketli kod blokları, görev listeleri, üstü çizili metin ve otomatik bağlantılar. Başlıklara id özniteliği verilmez, dolayısıyla GitHub'ın içindekiler tablosu için oluşturduğu bağlantı noktaları burada yoktur.
Kopyalama, mevcut bir sayfaya yapıştırmanız için HTML parçasını verir. İndirme ise onu UTF-8 karakter kümesi ve okunaklı bir stille eksiksiz bir belgeye sarar; böylece dosya tek başına, tüm özel karakterleri yerinde olacak şekilde doğru açılır.
Çünkü standart Markdown'da tek bir satır sonu yalnızca bir boşluktur — paragraflar boş bir satırla ayrılır. Sohbet kutuları ve yorum alanları her Enter'da satır atlar; bu yüzden onlar için yazarken "Tek satır sonlarını
say" seçeneğini işaretleyin.
Vai.la, herhangi bir URL'yi tıklama istatistikleri, QR Code ve kendi biolink'inizle birlikte kısa bir bağlantıya dönüştürür.
Vai.la, araçların nasıl kullanıldığından veya sonuçlarına dayanarak alınan kararlardan sorumlu değildir.