¿Qué es rumdl?
rumdl es un linter y formateador de Markdown escrito en Rust. Implementa el conjunto de reglas que todo el mundo conoce ya de markdownlint, las comprobaciones MD001 a MD059 sobre niveles de encabezado, sangrado de listas, longitud de línea, estilo de los bloques de código, sintaxis de los enlaces y espacios al final de línea, y las pasa por un árbol de documentación entero en milisegundos en vez de en segundos. La mayoría de esas reglas trae su corrección, así que rumdl check --fix arregla lo que informa en lugar de dejarte una lista, y rumdl fmt reformatea el archivo directamente. La configuración es un archivo rumdl.toml o una tabla [tool.rumdl] dentro de pyproject.toml, un .markdownlint.json que ya tengas se convierte con rumdl import, y rumdl server habla el Language Server Protocol, así que el mismo binario te subraya los problemas dentro del editor. Piénsalo como lo que Ruff es para Python, aplicado a Markdown.
rumdl.toml escrito con la documentación de hoy puede nombrar opciones que una compilación antigua ignora en silencio. Ni Debian ni Ubuntu empaquetan rumdl, así que una compilación actual no es un lujo: es la única forma de tenerlo por apt.
⚡ Funciones clave de rumdl
🏎️ Las reglas de markdownlint a velocidad de Rust
Las comprobaciones MD001 a MD059 de siempre, ejecutadas por un binario compilado sin ningún intérprete que arrancar. Un árbol de documentación que se llevaba su propio paso en CI termina lo bastante rápido como para pasarlo en cada guardado.
🔧 Correcciones, no solo quejas
rumdl check --fix repara las infracciones que tienen un arreglo seguro: puntuación de los encabezados, marcadores y sangrado de las listas, líneas en blanco alrededor de los bloques, espacios sobrantes y estilo de las vallas, en el sitio y en todo el árbol.
🖊️ Y también un formateador
rumdl fmt reformatea el Markdown como lo hace un formateador de código, así que la forma de un archivo deja de ser un comentario de revisión. Con --check se convierte en una puerta de CI que no toca nada.
🔌 Integración con el editor de serie
rumdl server es un Language Server, así que VS Code, Neovim, Helix y Zed reciben los mismos diagnósticos y las mismas correcciones que la línea de comandos, del único binario que has instalado.
♻️ Conserva tu configuración de markdownlint
rumdl import lee un .markdownlint.json o un .markdownlintrc que ya tengas y escribe el rumdl.toml equivalente, así que pasar un repositorio es un comando, no una auditoría de reglas.
📖 Reglas que se explican solas
rumdl rule lista todas las comprobaciones y rumdl explain MD013 describe una, con lo que arregla y cómo se configura, así que nadie tiene que adivinar qué significaba ese código en un log de CI.
apt upgrade te mantiene en la última versión.
📦 Instalación desde deb.griffo.io
Paso 1: Añadir el repositorio
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
sudo apt updateinstall -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
apt update🆓 Existe un espejo gratis para siempre. deb-free.griffo.io sirve paquetes gratis para siempre: sin cuenta, sin suscripción, como máximo 2 meses por detrás del upstream, correcciones de seguridad inmediatas. Ahora mismo incluye cliamp, Ghostty, lazydocker, Oh My Posh y Zed; rumdl no está entre ellas, así que hoy el repositorio de arriba es la única forma de instalarlo — pídelo y puede añadirse.
Paso 2: Instalar rumdl
# Instalar la última versión de rumdl
sudo apt install rumdl
# Verificar la instalación
rumdl --version# Instalar la última versión de rumdl
apt install rumdl
# Verificar la instalación
rumdl --versionPaso 3: Primer arranque
# Analizar todos los archivos Markdown bajo el directorio actual
rumdl check .
# Arreglar todo lo que tenga una corrección segura
rumdl check --fix .
# Escribir un rumdl.toml de partida que puedas editar
rumdl init
# Ver qué significa el código de una regla
rumdl explain MD013
# Todos los subcomandos y todas las opciones
rumdl --help🎯 Ejemplos básicos de uso
Comprobar y arreglar:
# Un archivo, un directorio o un patrón
rumdl check README.md
rumdl check docs/
rumdl check "**/*.md"
# Arreglar en el sitio y ver luego lo que queda
rumdl check --fix .
# Desactivar una regla ruidosa solo en esta pasada
rumdl check --disable MD013 .
# Ejecutar únicamente las reglas que te importan ahora mismo
rumdl check --enable MD001,MD009,MD047 .
# Salida legible por máquinas, para un paso de anotaciones
# en tu pipeline de CI
rumdl check --output-format json .Formatear:
# Reformatear los archivos en el sitio
rumdl fmt docs/
# No escribir nada y fallar si algo está sin formatear,
# la forma que se usa en el CI
rumdl fmt --check docs/
# Ver los cambios antes de aceptarlos
rumdl fmt --diff docs/Configuración y reglas:
# Crear rumdl.toml en este repositorio
rumdl init
# Convertir a rumdl.toml una configuración de markdownlint
# que ya tengas
rumdl import .markdownlint.json
# Qué configuración está de verdad en vigor, y de dónde sale
rumdl config
# Listar todas las reglas y luego leer una entera
rumdl rule
rumdl explain MD024
# Completado de la shell, escrito en el sitio donde tu
# shell lo lee
rumdl completions bash | sudo tee /etc/bash_completion.d/rumdl > /dev/null# Crear rumdl.toml en este repositorio
rumdl init
# Convertir a rumdl.toml una configuración de markdownlint
# que ya tengas
rumdl import .markdownlint.json
# Qué configuración está de verdad en vigor, y de dónde sale
rumdl config
# Listar todas las reglas y luego leer una entera
rumdl rule
rumdl explain MD024
# Completado de la shell, escrito en el sitio donde tu
# shell lo lee
rumdl completions bash | tee /etc/bash_completion.d/rumdl > /dev/null🔧 Integraciones
rumdl está pensado para entrar en los sitios donde markdownlint ya está:
- Tu editor:
rumdl serveres un Language Server, así que Neovim, Helix, VS Code y Zed muestran los diagnósticos en línea y aplican las correcciones como acciones de código - Configuraciones de markdownlint:
rumdl importconvierte.markdownlint.jsono.markdownlintrcenrumdl.toml, y los códigos de las reglas son los mismos por los que tu equipo ya discute - pyproject.toml: una tabla
[tool.rumdl]deja los ajustes junto a los de Ruff y pytest en lugar de añadir otro archivo de configuración - CI y pre-commit:
rumdl check .sale con código distinto de cero si hay infracciones yrumdl fmt --checkcontrola el formato, sin ningún runtime de Node o de Python que instalar antes en el agente - Generadores de sitios estáticos: las fuentes de MkDocs, Hugo, Docusaurus y mdBook son Markdown corriente, así que la misma comprobación pasa por ellas antes que la compilación
🚀 ¿Por qué elegir deb.griffo.io?
- Ubuntu oficial: no empaqueta rumdl:
apt install rumdlfalla en un sistema recién instalado - npm o pip: funcionan, pero atan una comprobación de Markdown a un entorno de Node o de Python y la reinstalan en cada proyecto y en cada imagen de CI
- Compilar desde el código: actualizado, pero exige una cadena de Rust en cada máquina y deja un binario del que apt no sabe nada
- deb.griffo.io: última versión con actualizaciones automáticas
- ✅ La única fuente apt: rumdl no está ni en los archivos de Debian ni en los de Ubuntu; este repositorio empaqueta la release oficial upstream
- ✅ Para todo el sistema y sin runtime: un solo
/usr/bin/rumdlpara todos los repositorios de la máquina, sin npm install y sin ningún entorno virtual por detrás - ✅ Actualizaciones automáticas: los paquetes se actualizan pocas horas después de cada versión upstream, así que las reglas y las correcciones nuevas llegan con un
apt upgradenormal - ✅ Paquete completo: la compilación oficial upstream para Linux instalada como
/usr/bin/rumdl, sin añadidos ni parches - ✅ Dependencias honestas: un binario de Rust enlazado estáticamente que no necesita nada más instalado para analizar, arreglar, formatear o servir
- ✅ Dos arquitecturas: amd64 y arm64, así que el mismo paquete cubre tu portátil, tus servidores y tus agentes de compilación arm64
- ✅ Multidistribución: funciona en Ubuntu 22.04, 24.04, 25.10 y 26.04
- ✅ Mantenimiento sencillo: actualizaciones con los comandos apt de siempre
📦 Repositorio de compilación del paquete
Los paquetes de Ubuntu se compilan y mantienen automáticamente en este repositorio de GitHub:
- 📐 rumdl-debian - Compilaciones de las últimas versiones
🔗 Paquetes relacionados
También disponibles en deb.griffo.io:
- Ruff - La misma idea para el código Python, un linter y formateador de Rust en un solo binario
- uv - Empaquetado de Python a velocidad de Rust, para los proyectos cuya documentación estás analizando
- Neovim - Un editor que hablará con
rumdl servery te enseñará los diagnósticos según escribes - ripgrep - Para las búsquedas por ese mismo árbol de Markdown que un linter no puede responder
--fix, y recibir en el editor los mismos avisos que te va a dar la compilación.