O que é o rumdl?
O rumdl é um linter e formatador de Markdown escrito em Rust. Ele implementa o conjunto de regras que todo mundo já conhece do markdownlint — as verificações MD001 a MD059 de níveis de título, indentação de listas, comprimento de linha, estilo de bloco de código, sintaxe de links e espaços no fim da linha — e as roda sobre uma árvore inteira de documentação em milissegundos em vez de segundos. A maioria dessas regras vem com uma correção, então o rumdl check --fix conserta o que ele aponta em vez de deixar uma lista para você, e o rumdl fmt reformata o arquivo de uma vez. A configuração é um arquivo rumdl.toml ou uma tabela [tool.rumdl] no pyproject.toml, um .markdownlint.json que já exista pode ser convertido com rumdl import, e o rumdl server fala o Language Server Protocol, então o mesmo binário sublinha os problemas dentro do seu editor. Pense nele como o que o Ruff é para Python, aplicado ao Markdown.
rumdl.toml escrito para a documentação de hoje pode citar opções que uma build antiga ignora em silêncio. Nem o Debian nem o Ubuntu empacotam o rumdl, então uma build atual não é um luxo aqui: é a única forma de tê-lo via apt.
⚡ Principais recursos do rumdl
🏎️ Regras do markdownlint na velocidade do Rust
As verificações conhecidas MD001 a MD059, rodadas por um binário compilado, sem nenhum interpretador para iniciar. Uma árvore de documentação que exigia uma etapa própria de lint na CI termina rápido o bastante para rodar a cada gravação.
🔧 Correções, não só reclamações
O rumdl check --fix conserta as violações que têm uma correção segura: pontuação de títulos, marcadores e indentação de listas, linhas em branco em volta dos blocos, espaços sobrando e estilo de cerca, no lugar e na árvore inteira.
🖊️ Também um formatador
O rumdl fmt reformata Markdown como um formatador de código faz, então o formato de um arquivo deixa de virar comentário de revisão. Com --check ele vira um portão de CI que não altera nada.
🔌 Integração com o editor embutida
O rumdl server é um Language Server, então VS Code, Neovim, Helix e Zed recebem os mesmos diagnósticos e as mesmas correções da linha de comando, a partir do único binário que você instalou.
♻️ Mantém a sua configuração do markdownlint
O rumdl import lê um .markdownlint.json ou .markdownlintrc existente e escreve o rumdl.toml equivalente, então migrar um repositório é um comando, não uma auditoria de regras.
📖 Regras que se explicam
O rumdl rule lista todas as verificações e o rumdl explain MD013 descreve uma delas, com o que ela corrige e como configurá-la, então ninguém precisa adivinhar o que aquele código no log da CI queria dizer.
apt upgrade mantém você na versão mais recente.
📦 Instalação a partir do deb.griffo.io
Passo 1: Adicionar o repositório
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 um espelho grátis para sempre. deb-free.griffo.io distribui pacotes grátis para sempre — sem conta, sem assinatura, no máximo 2 meses atrás do upstream, correções de segurança imediatas. Hoje ele traz cliamp, Ghostty, lazydocker, Oh My Posh e Zed; rumdl não está entre elas, então o repositório acima é a única forma de instalar hoje — peça e ela pode ser adicionada.
Passo 2: Instalar o rumdl
# Instalar o rumdl mais recente, um binário estático que não
# arrasta nenhum runtime junto
sudo apt install rumdl
# Verificar a instalação e ver qual versão o apt acabou de
# colocar no PATH
rumdl --version# Instalar o rumdl mais recente, um binário estático que não
# arrasta nenhum runtime junto
apt install rumdl
# Verificar a instalação e ver qual versão o apt acabou de
# colocar no PATH
rumdl --versionPasso 3: Primeira execução
# Verificar todos os arquivos Markdown abaixo do diretório atual
rumdl check .
# Corrigir tudo o que tem uma correção segura
rumdl check --fix .
# Escrever um rumdl.toml inicial que você pode editar
rumdl init
# Ver o que significa o código de uma regra
rumdl explain MD013
# Todos os subcomandos e todas as opções
rumdl --help🎯 Exemplos básicos de uso
Verificando e corrigindo:
# Um arquivo, um diretório ou um glob
rumdl check README.md
rumdl check docs/
rumdl check "**/*.md"
# Corrigir no lugar e depois mostrar o que sobrou
rumdl check --fix .
# Desligar uma regra barulhenta apenas nesta execução, sem
# mexer na configuração
rumdl check --disable MD013 .
# Rodar somente as regras que interessam agora
rumdl check --enable MD001,MD009,MD047 .
# Saída legível por máquina, para uma etapa de anotação na CI
rumdl check --output-format json .Formatando:
# Reformatar os arquivos no lugar
rumdl fmt docs/
# Falhar sem escrever nada, a forma usada na CI
rumdl fmt --check docs/
# Ver as mudanças antes de aceitá-las, sem tocar em nenhum
# arquivo
rumdl fmt --diff docs/Configuração e regras:
# Criar o rumdl.toml neste repositório
rumdl init
# Converter uma configuração do markdownlint que você já tem
rumdl import .markdownlint.json
# Qual configuração está realmente em vigor, e vinda de onde
rumdl config
# Listar todas as regras e depois ler uma por inteiro
rumdl rule
rumdl explain MD024
# Completions da shell, escritas onde a sua shell as lê
rumdl completions bash | sudo tee /etc/bash_completion.d/rumdl > /dev/null# Criar o rumdl.toml neste repositório
rumdl init
# Converter uma configuração do markdownlint que você já tem
rumdl import .markdownlint.json
# Qual configuração está realmente em vigor, e vinda de onde
rumdl config
# Listar todas as regras e depois ler uma por inteiro
rumdl rule
rumdl explain MD024
# Completions da shell, escritas onde a sua shell as lê
rumdl completions bash | tee /etc/bash_completion.d/rumdl > /dev/null🔧 Integrações
O rumdl foi feito para entrar nos lugares onde o markdownlint já está:
- Seu editor: o
rumdl serveré um Language Server, então Neovim, Helix, VS Code e Zed mostram os diagnósticos ali na linha e aplicam as correções como code actions - Configurações do markdownlint: o
rumdl importtransforma um.markdownlint.jsonou.markdownlintrcemrumdl.toml, e os códigos das regras são os mesmos sobre os quais seu time já discute - pyproject.toml: uma tabela
[tool.rumdl]mantém os ajustes ao lado da configuração do Ruff e do pytest, em vez de acrescentar mais um dotfile - CI e pre-commit: o
rumdl check .sai com código diferente de zero quando há violações e orumdl fmt --checkfecha o portão da formatação, sem nenhum runtime Node ou Python para instalar antes no agente - Geradores de sites estáticos: as fontes de documentação do MkDocs, do Hugo, do Docusaurus e do mdBook são Markdown comum, então a mesma verificação roda sobre elas antes da build
🚀 Por que escolher o deb.griffo.io?
- Ubuntu oficial: não empacota o rumdl —
apt install rumdlfalha num sistema padrão - npm ou pip: funciona, mas amarra uma verificação de Markdown a um ambiente Node ou Python e reinstala tudo em cada projeto e em cada imagem de CI
- Compilar do código-fonte: atual, mas exige uma toolchain Rust em cada máquina e deixa um binário que o apt desconhece
- deb.griffo.io: versão mais recente com atualizações automáticas
- ✅ A única fonte apt: o rumdl não está nos arquivos do Debian nem do Ubuntu; este repositório empacota o lançamento oficial upstream
- ✅ Para o sistema inteiro, sem runtime: um único
/usr/bin/rumdlpara todos os repositórios da máquina, sem npm install e sem virtualenv por trás - ✅ Atualizações automáticas: os pacotes são atualizados poucas horas após cada lançamento upstream, então regras e correções novas chegam com um simples
apt upgrade - ✅ Pacote completo: a build oficial upstream para Linux instalada como
/usr/bin/rumdl, sem nada adicionado nem remendado - ✅ Dependências honestas: um binário Rust com ligação estática que não precisa de mais nada instalado para verificar, corrigir, formatar ou servir
- ✅ Duas arquiteturas: amd64 e arm64, então o mesmo pacote cobre o seu notebook, os seus servidores e os seus agentes de build arm64
- ✅ Multi-distribuição: funciona no Ubuntu 22.04, 24.04, 25.10 e 26.04
- ✅ Manutenção simples: atualizações com os comandos apt de sempre
📦 Repositório de build do pacote
Os pacotes Ubuntu são construídos e mantidos automaticamente neste repositório do GitHub:
- 📐 rumdl-debian - Builds dos últimos lançamentos
🔗 Pacotes relacionados
Também disponíveis no deb.griffo.io:
- Ruff - A mesma ideia para código Python, um linter e formatador em Rust num binário só
- uv - Empacotamento Python na velocidade do Rust, para os projetos cuja documentação você está verificando
- Neovim - Um editor que conversa com o
rumdl servere mostra os diagnósticos enquanto você digita - ripgrep - Para as buscas na mesma árvore de Markdown que um linter não responde
--fix, e receber no editor os mesmos avisos que a build vai dar.