Blocs GitHub : code JavaScript dans les fichiers Markdown.
L'une des annonces les plus discrètes lors du récent événement GitHub Universe était GitHub Blocks, présenté comme une expérience par Kyle Daigle, vice-président de la stratégie, bien que le projet soit suffisamment avancé pour que les développeurs puissent s'inscrire sur une liste d'attente.
Les blocs permettent aux développeurs d'inclure JavaScript dans les fichiers du référentiel afin qu'ils deviennent des documents en direct, capables de faire des choses telles que la visualisation de contenu ou la présentation d'analyses relatives au référentiel. Daigle l'a décrit comme "un moyen d'interagir avec vos dépôts directement et de manière interactive".

L'idée a été présentée comme avant tout pour une documentation plus riche. "Les blocs sont des composants qui personnalisent la façon dont vous interagissez avec votre contenu", a déclaré Daigle à Universe, ajoutant qu'un bloc "pourrait être aussi puissant qu'un bac à sable de code en direct pour un éditeur WYSIWYG" - ou en d'autres termes, une façon d'exécuter et de démontrer ce que fait le code dans un référentiel, dans le référentiel lui-même. Vous pouvez considérer Blocks, a déclaré Daigle, comme « de petites applications que vous déployez en poussant vers GitHub ».
La documentation pour les référentiels GitHub est le plus souvent formatée avec Markdown, un moyen simple d'ajouter un balisage qui est conçu pour être facile à créer et facile à lire en tant que texte brut, tout en fournissant également un formatage essentiel tel que des en-têtes, des listes, des images et des exemples de code.
Markdown a un certain nombre de variantes et la version de GitHub, qui s'appelle GFM (GitHub Flavored Markdown) est spécifiée ici , un sur-ensemble de Markdown.

L'idée d'ajouter JavaScript à Markdown est quelque peu opposée au concept Markdown, bien que l'idée ne soit pas nouvelle. Les blocs GitHub rappellent R Markdown qui permet aux codeurs d'intégrer du code en langage R et des widgets Shiny, Shiny étant un composant qui exécute JavaScript, HTML et CSS.
Les cas d'utilisation présentés par Daigle incluent le rendu des polices et des couleurs, l'affichage des données JSON dans des tableaux formatés, l'affichage des analyses du référentiel telles que les contributeurs, les statistiques des problèmes, les validations et les demandes d'extraction, l'affichage des diagrammes et la démonstration dynamique des fonctionnalités de l'application. Cette dernière fonctionnalité est plus adaptée aux applications elles-mêmes codées en JavaScript ou TypeScript, comme c'est souvent le cas. Une autre possibilité consiste à générer une recherche et une indexation de code à partir de la documentation.
GitHub a déjà une API REST et, dans un sens, Blocks ne fait que l'associer à l'idée d'activer le rendu de JavaScript et HTML à partir de GFM. Conceptuellement, cela perturbe la notion selon laquelle un référentiel est destiné au code et que la compilation et l'exécution du code ont lieu ailleurs, car dans ce cas, le code s'exécute directement à partir du référentiel.
Blocks est une fonctionnalité spécifique à GitHub et si les développeurs s'y fient, il sera plus difficile de passer à un référentiel de code différent, un autre aspect de l'expérience qui peut s'avérer être un avantage pour GitHub. Plus d'informations et l'application de la liste d'attente sont ici .
