Блоки GitHub: код JavaScript в файлах Markdown.
Одним из самых тихих объявлений на недавнем мероприятии GitHub Universe были блоки GitHub, представленные в качестве эксперимента Кайлом Дейглом, вице-президентом по стратегии, хотя проект достаточно продвинут, чтобы разработчики могли зарегистрироваться в списке ожидания.
Блоки позволяют разработчикам включать JavaScript в файлы репозитория, чтобы они становились живыми документами, способными выполнять такие действия, как визуализация контента или представление аналитики, относящейся к репозиторию. Дейгл описал это как «способ прямого и интерактивного взаимодействия с вашими репозиториями».

Идея была представлена в первую очередь для более богатой документации. «Блоки — это компоненты, которые настраивают то, как вы взаимодействуете с вашим контентом», — сказал Дайгл из Universe, добавив, что блок «может быть столь же мощным, как песочница живого кода для WYSIWYG-редактора» — или, другими словами, способ запуска и демонстрации что делает код в репозитории внутри самого репозитория. По словам Дайгла, вы можете думать о блоках как о «маленьких приложениях, которые вы развертываете, отправляя их на GitHub».
Документация для репозиториев GitHub чаще всего форматируется с помощью Markdown, простого способа добавления разметки, которая предназначена для простого написания и чтения в виде обычного текста, а также обеспечивает необходимое форматирование, такое как заголовки, списки, изображения и примеры кода.
У Markdown есть несколько вариантов, и здесь указана версия GitHub, которая называется GFM (GitHub Flavored Markdown) , надмножество Markdown.

Идея добавления JavaScript в Markdown несколько отличается от концепции Markdown, хотя сама идея не нова. Блоки GitHub напоминают R Markdown , который позволяет кодерам встраивать код языка R и виджеты Shiny , причем Shiny — это компонент, который запускает JavaScript, HTML и CSS.
Варианты использования, представленные Daigle, включают рендеринг шрифтов и цветов, отображение данных JSON в отформатированных таблицах, отображение аналитики репозитория, такой как участники, статистика проблем, коммиты и запросы на вытягивание, отображение диаграмм и динамическую демонстрацию функций приложения. Эта последняя функция больше всего подходит для приложений, которые сами написаны на JavaScript или TypeScript, как это часто бывает. Другая возможность заключается в создании поиска и индексации кода из документации.
GitHub уже имеет REST API, и в некотором смысле Blocks просто соединяет его с идеей предоставления возможности рендеринга JavaScript и HTML из GFM. Концептуально, однако, это разрушает представление о том, что репозиторий предназначен для кода, и что компиляция и запуск кода происходят где-то еще, поскольку в этом случае код запускается непосредственно из репозитория.
Блоки — это особенность GitHub, и если разработчики будут полагаться на нее, будет сложнее переключиться на другой репозиторий кода, что является еще одним аспектом эксперимента, который может оказаться полезным для GitHub. Более подробная информация и заявка на лист ожидания здесь .
