Bloki GitHub: kod JavaScript w plikach Markdown.
Jednym z cichszych ogłoszeń podczas ostatniego wydarzenia GitHub Universe były GitHub Blocks, zaprezentowane jako eksperyment przez Kyle'a Daigle, wiceprezesa ds. strategii, chociaż projekt jest wystarczająco zaawansowany, aby programiści mogli zapisać się na listę oczekujących.
Bloki umożliwiają programistom umieszczanie JavaScript w plikach repozytorium, dzięki czemu stają się one aktywnymi dokumentami, zdolnymi do wykonywania takich czynności, jak wizualizacja treści lub prezentowanie analiz związanych z repozytorium. Daigle opisał to jako „sposób na bezpośrednią i interaktywną interakcję z repozytoriami”.

Pomysł został przedstawiony jako przede wszystkim dla bogatszej dokumentacji. „Bloki to komponenty, które dostosowują sposób interakcji z treścią”, powiedział Daigle z Universe, dodając, że blok „może być tak potężny, jak piaskownica kodu na żywo dla edytora WYSIWYG” — lub innymi słowy, sposób uruchamiania i demonstrowania co robi kod w repozytorium w samym repozytorium. Możesz myśleć o blokach, powiedział Daigle, jako o „małych aplikacjach, które wdrażasz, przesyłając je do GitHub”.
Dokumentacja repozytoriów GitHub jest najczęściej formatowana za pomocą Markdown, prostego sposobu dodawania znaczników, który ma być łatwy do napisania i czytelny jako zwykły tekst, a jednocześnie zapewnia podstawowe formatowanie, takie jak nagłówki, listy, obrazy i przykłady kodu.
Markdown ma wiele wariantów, a wersja GitHub, która nazywa się GFM (GitHub Flavoured Markdown), jest określona tutaj , nadzbiór Markdown.

Pomysł dodania JavaScript do Markdown jest nieco sprzeczny z koncepcją Markdown, chociaż pomysł nie jest nowy. Bloki GitHub przypominają R Markdown , który pozwala programistom osadzać kod języka R i widżety Shiny, Shiny jest komponentem obsługującym JavaScript, HTML i CSS.
Zastosowania przedstawione przez Daigle obejmują renderowanie czcionek i kolorów, wyświetlanie danych JSON w sformatowanych tabelach, wyświetlanie analiz repozytorium, takich jak współautorzy, statystyki problemów, zatwierdzeń i żądań ściągnięcia, pokazywanie diagramów i dynamiczne demonstrowanie funkcji aplikacji. Ta ostatnia funkcja jest najbardziej odpowiednia dla aplikacji, które same są napisane w JavaScript lub TypeScript, jak to często bywa. Inną możliwością jest generowanie wyszukiwania kodu i indeksowania z poziomu dokumentacji.
GitHub ma już REST API iw pewnym sensie Blocks po prostu łączy to z ideą umożliwienia renderowania JavaScript i HTML z GFM. Koncepcyjnie jednak zakłóca to pogląd, że repozytorium jest przeznaczone dla kodu, a kompilacja i uruchamianie kodu odbywa się gdzie indziej, ponieważ w tym przypadku kod jest uruchamiany bezpośrednio z repozytorium.
Bloki to funkcja specyficzna dla GitHub i jeśli programiści będą na niej polegać, utrudni to przejście do innego repozytorium kodu, co jest kolejnym aspektem eksperymentu, który może okazać się korzystny dla GitHub. Więcej informacji i lista oczekujących znajduje się tutaj .
