Khối GitHub: Mã JavaScript trong tệp Markdown.
Một trong những thông báo ít được chú ý hơn tại sự kiện GitHub Universe gần đây là GitHub Blocks, được trình bày dưới dạng một thử nghiệm của Kyle Daigle, VP Strategy, mặc dù dự án đủ tiên tiến để các nhà phát triển có thể đăng ký vào danh sách chờ.
Các khối cho phép các nhà phát triển đưa JavaScript vào các tệp kho lưu trữ để chúng trở thành tài liệu trực tiếp, có thể thực hiện những việc như trực quan hóa nội dung hoặc trình bày các phân tích liên quan đến kho lưu trữ. Daigle mô tả nó là “một cách để tương tác trực tiếp và tương tác với các đại lý của bạn.”
![](https://post.nghiatu.com/assets/images/m/max/724/0*OFw75vpzkBdaa5fy.jpg)
Ý tưởng được trình bày chủ yếu để làm tài liệu phong phú hơn. “Các khối là các thành phần tùy chỉnh cách bạn tương tác với nội dung của mình,” Daigle tại Universe cho biết, đồng thời cho biết thêm rằng một khối “có thể mạnh mẽ như một hộp cát mã trực tiếp dành cho trình chỉnh sửa WYSIWYG” — hay nói cách khác, một cách chạy và trình diễn mã trong kho lưu trữ làm gì, trong chính kho lưu trữ đó. Daigle cho biết, bạn có thể coi Blocks là “các ứng dụng nhỏ mà bạn triển khai bằng cách đẩy lên GitHub.”
Tài liệu cho kho lưu trữ GitHub thường được định dạng bằng Markdown, một cách đơn giản để thêm đánh dấu nhằm mục đích dễ tạo và dễ đọc dưới dạng văn bản thuần túy, đồng thời cung cấp định dạng cần thiết như tiêu đề, danh sách, hình ảnh và ví dụ về mã.
Markdown có một số biến thể và phiên bản của GitHub, được gọi là GFM (GitHub Flavored Markdown) được chỉ định tại đây , một siêu tập hợp của Markdown.
![](https://post.nghiatu.com/assets/images/m/max/724/0*p35fDY9RNQtxlH1H.jpg)
Khái niệm thêm JavaScript vào Markdown hơi trái ngược với khái niệm Markdown, mặc dù ý tưởng này không phải là mới. Các khối GitHub gợi nhớ đến R Markdown cho phép các lập trình viên nhúng mã ngôn ngữ R và các tiện ích Shiny, Shiny là một thành phần chạy JavaScript, HTML và CSS.
Các trường hợp sử dụng do Daigle trình bày bao gồm hiển thị phông chữ và màu sắc, hiển thị dữ liệu JSON trong bảng được định dạng, hiển thị phân tích kho lưu trữ như người đóng góp, thống kê vấn đề, cam kết và yêu cầu kéo, hiển thị sơ đồ và thể hiện động các tính năng của ứng dụng. Tính năng cuối cùng này phù hợp nhất cho các ứng dụng được mã hóa bằng JavaScript hoặc TypeScript, như thường lệ. Một khả năng khác là tạo mã tìm kiếm và lập chỉ mục từ bên trong tài liệu.
GitHub đã có API REST và theo một nghĩa nào đó, Blocks chỉ kết hợp điều này với ý tưởng cho phép JavaScript và HTML được hiển thị từ GFM. Mặc dù về mặt khái niệm, nó phá vỡ quan niệm rằng kho lưu trữ dành cho mã, và việc biên dịch và chạy mã diễn ra ở nơi khác, vì trong trường hợp này, mã đang chạy trực tiếp từ kho lưu trữ.
Khối là một tính năng dành riêng cho GitHub và nếu các nhà phát triển dựa vào nó, thì việc chuyển sang kho lưu trữ mã khác sẽ khó khăn hơn, một khía cạnh khác của thử nghiệm có thể chứng minh là có lợi cho GitHub. Thông tin thêm và ứng dụng danh sách chờ có tại đây .
![](https://post.nghiatu.com/assets/images/m/max/724/1*jhWB_cQKyrtTMtENtFLNDw.gif)