GitHub Blocks: código JavaScript en archivos Markdown.
Uno de los anuncios más silenciosos en el evento reciente de GitHub Universe fue GitHub Blocks, presentado como un experimento por Kyle Daigle, vicepresidente de estrategia, aunque el proyecto está lo suficientemente avanzado como para que los desarrolladores puedan registrarse en una lista de espera.
Los bloques permiten a los desarrolladores incluir JavaScript en los archivos del repositorio para que se conviertan en documentos activos, capaces de hacer cosas como visualizar contenido o presentar análisis relacionados con el repositorio. Daigle lo describió como "una forma de interactuar con sus repositorios de forma directa e interactiva".

La idea se presentó principalmente como una documentación más rica. "Los bloques son componentes que personalizan la forma en que interactúa con su contenido", dijo Daigle en Universe, y agregó que un bloque "podría ser tan poderoso como un entorno limitado de código en vivo para un editor WYSIWYG" o, en otras palabras, una forma de ejecutar y demostrar lo que hace el código en un repositorio, dentro del propio repositorio. Puede pensar en Blocks, dijo Daigle, como "pequeñas aplicaciones que implementa empujando a GitHub".
La documentación para los repositorios de GitHub se formatea con mayor frecuencia con Markdown, una forma simple de agregar marcado que pretende ser fácil de crear y fácil de leer como texto sin formato, al tiempo que proporciona formato esencial, como encabezados, listas, imágenes y ejemplos de código.
Markdown tiene una serie de variantes y aquí se especifica la versión de GitHub, que se llama GFM (GitHub Flavored Markdown) , un superconjunto de Markdown.

La noción de agregar JavaScript a Markdown es algo opuesta al concepto de Markdown, aunque la idea no es nueva. Los bloques de GitHub recuerdan a R Markdown , que permite a los codificadores incrustar código de lenguaje R y widgets de Shiny , siendo Shiny un componente que ejecuta JavaScript, HTML y CSS.
Los casos de uso presentados por Daigle incluyen renderizar fuentes y colores, mostrar datos JSON en tablas formateadas, mostrar análisis de repositorios como contribuyentes, estadísticas de problemas, confirmaciones y solicitudes de incorporación de cambios, mostrar diagramas y demostrar características de la aplicación de forma dinámica. Esta última característica es más adecuada para aplicaciones que están codificadas en JavaScript o TypeScript, como suele ser el caso. Otra posibilidad es generar búsqueda e indexación de código desde dentro de la documentación.
GitHub ya tiene una API REST y, en cierto sentido, Blocks simplemente combina esto con la idea de permitir que JavaScript y HTML se representen desde GFM. Aunque conceptualmente, interrumpe la noción de que un repositorio es para el código, y que compilar y ejecutar el código se lleva a cabo en otro lugar, ya que en este caso el código se ejecuta directamente desde el repositorio.
Blocks es una función específica de GitHub y, si los desarrolladores confían en ella, será más difícil cambiar a un repositorio de código diferente, otro aspecto del experimento que puede resultar beneficioso para GitHub. Más información y solicitud de lista de espera está aquí .
