Guía no oficial de markdown-ts-mode en Emacs 31

Fuentes: An unofficial guide to markdown-ts-mode on Emacs 31

markdown-ts-mode es el nuevo modo experimental de Emacs 31 basado en tree-sitter para editar archivos Markdown. Aunque está etiquetado como experimental, ya cubre por completo la especificación CommonMark y la mayor parte de GitHub Flavored Markdown, con extras como bloques de código para lenguajes no basados en tree-sitter (por ejemplo, Emacs Lisp), utilidades de tabla de contenidos e interfaces con conversores externos como pandoc y gfm.

A diferencia del paquete markdown-ts-mode disponible en MELPA, ahora archivado y que rechaza instalarse desde Emacs 31, este modo viene integrado en el propio Emacs. Para activarlo hay que cargar la biblioteca manualmente, ya sea con use-package, con autoload, o mediante un archivo de prueba cargado con emacs -Q --load. Una vez cargado, basta con visitar un archivo .md, .mdx o .markdown para usarlo.

El principal reto al empezar es instalar las gramáticas de tree-sitter necesarias. Emacs suele ofrecer descargarlas y compilarlas automáticamente, pero es imprescindible que Emacs se haya compilado con el flag tree-sitter y que el sistema disponga de las herramientas de compilación (make, gcc) y del binario tree-sitter. El modo utiliza dos gramáticas (markdown y markdown-inline) y, al poder combinarse con otros modos tree-sitter, también necesita las gramáticas de los lenguajes empleados en bloques de código, así como de YAML o TOML para los front-matter.

La guía incluye pasos de depuración: verificar que (featurep 'treesit) devuelva t, revisar la disponibilidad de tree-sitter --version y, cuando una gramática no se fontifica correctamente, instalar la faltante con M-x treesit-install-language-grammar. Para los casos en los que Emacs no detecta el repositorio de la gramática, se puede consultar el código fuente del modo correspondiente y añadir manualmente la URL a treesit-language-source-alist antes de reintentar la instalación.