GitHub Blokları: Markdown dosyalarındaki JavaScript kodu.
Son GitHub Universe etkinliğindeki daha sessiz duyurulardan biri, Stratejiden Sorumlu Başkan Yardımcısı Kyle Daigle tarafından bir deney olarak sunulan GitHub Blocks'du, ancak proje, geliştiricilerin bir bekleme listesine kaydolabilecekleri kadar gelişmiş durumda.
Bloklar, geliştiricilerin depo dosyalarına JavaScript'i dahil etmelerini sağlar, böylece bu dosyalar, içeriği görselleştirme veya havuzla ilgili analizleri sunma gibi şeyleri yapabilen canlı belgeler haline gelir. Daigle, bunu "depolarınızla doğrudan ve etkileşimli olarak etkileşim kurmanın bir yolu" olarak tanımladı.
Fikir, öncelikle daha zengin belgeler için sunuldu. Universe'den Daigle, "Bloklar, içeriğinizle nasıl etkileşime girdiğinizi özelleştiren bileşenlerdir" dedi ve bir bloğun "bir WYSIWYG editörü için canlı kod sanal alanı kadar güçlü olabileceğini" veya başka bir deyişle, çalıştırmanın ve göstermenin bir yolu olabileceğini ekledi. bir havuzdaki kodun deponun içinde ne yaptığı. Daigle, Blocks'u "GitHub'a göndererek dağıttığınız küçük uygulamalar" olarak düşünebilirsiniz.
GitHub depoları için belgeler çoğunlukla, düz metin olarak yazması ve okuması kolay olan işaretleme eklemenin basit bir yolu olan ve aynı zamanda başlıklar, listeler, resimler ve kod örnekleri gibi temel biçimlendirmeleri sağlayan Markdown ile biçimlendirilir.
Markdown'ın bir dizi çeşidi vardır ve Markdown'ın bir üst kümesi olan GFM (GitHub Flavored Markdown) olarak adlandırılan GitHub sürümü burada belirtilmiştir .
Markdown'a JavaScript ekleme fikri, yeni olmasa da, Markdown konseptine biraz zıttır. GitHub Blokları, kodlayıcıların R dil kodunu ve Shiny widget'larını yerleştirmesine izin veren R Markdown'ı anımsatır; Shiny , JavaScript, HTML ve CSS çalıştıran bir bileşendir.
Daigle tarafından sunulan kullanım durumları, yazı tiplerini ve renkleri oluşturmayı, JSON verilerini biçimlendirilmiş tablolarda göstermeyi, katkıda bulunanlar, sorun istatistikleri, taahhütler ve çekme istekleri gibi havuz analitiğini görüntülemeyi, diyagramları göstermeyi ve uygulama özelliklerini dinamik olarak göstermeyi içerir. Bu son özellik, çoğunlukla olduğu gibi, kendileri JavaScript veya TypeScript ile kodlanmış uygulamalar için en uygundur. Diğer bir olasılık da, dokümantasyon içinden kod arama ve indeksleme oluşturmaktır.
GitHub'ın zaten bir REST API'si var ve bir anlamda Blocks, bunu yalnızca JavaScript ve HTML'nin GFM'den işlenmesini sağlama fikriyle bir araya getiriyor. Kavramsal olarak, bir havuzun kod için olduğu ve kodun derlenip çalıştırılmasının başka bir yerde gerçekleştiği fikrini bozsa da, çünkü bu durumda kod doğrudan depodan çalışıyor.
Bloklar, GitHub'a özgü bir özelliktir ve geliştiriciler buna güvenirse, farklı bir kod deposuna geçmeyi zorlaştıracaktır; bu, deneyin GitHub'a fayda sağlayabileceğini kanıtlayabilecek başka bir yönüdür. Daha fazla bilgi ve bekleme listesi uygulaması burada .