Pular para o conteúdo principal

Padronização Markdown (.markdownlint)

🧭 Padronização Markdown

Este guia documenta todas as políticas definidas no arquivo .markdownlint.yml, explicando:

  • Descrição de cada regra: o que faz e como funciona.
  • Justificativa da configuração: por que cada regra foi adotada.
  • Benefícios: ganhos de produtividade, consistência e qualidade da documentação.
  • Impacto prático: efeitos diretos no fluxo editorial, revisão e manutenção dos conteúdos.

🧩 Tabela-Resumo de Políticas

RegraPolíticaMotivoGanho de ProdutividadeMelhoria de QualidadeImpacto
MD001trueGarante hierarquia coerente de H1 > H2 > H3+10%Evita TOC incorreto e navegação quebradaReduz revisões estruturais
MD003ATXUsa # para cabeçalhos+5%Uniformiza estilo e compatibilidade MDXEvita parsing inconsistente
MD004dashUsa - para listas não ordenadas+3%Mantém padrão visualEvita formatação inconsistente
MD007indent:2Recuo consistente em listas+8%Renderização estávelEvita diffs falsos em PRs
MD009br_spaces:2Evita múltiplos espaços no fim da linha+3%Limpeza de formataçãoEvita alertas em CI
MD012falsePermite linhas em branco consecutivas+2%Melhor legibilidadeFacilita separação visual de blocos
MD013line_length:200Limita comprimento de linhas+5%Facilita leitura e revisãoReduz quebras artificiais
MD022lines_above:1, lines_below:1Uma linha acima/abaixo de títulos+3%Padrão visual consistenteLeitura fluida
MD023trueEvita cabeçalhos duplicados+4%Estrutura claraEvita ambiguidades no TOC
MD025falsePermite múltiplos H1 (docs modulares)+5%Compatível com DocusaurusEvita erro falso em README
MD026punctuation: ".,;:!?"Controle de pontuação em títulos+2%Clareza e consistênciaEvita inconsistência editorial
MD027trueGarante blocos de código bem fechados+5%Evita erro de renderizaçãoMenos revisões manuais
MD029orderedNumeração automática em listas ordenadas+3%Menos trabalho manualEvita renumeração manual
MD030ul/ol spacing:1Espaçamento padronizado+3%Alinhamento limpoMelhor leitura de diffs
MD031trueLinhas em branco antes/depois de código+2%Melhor visualizaçãoConsistência no layout
MD033falsePermite HTML inline (MDX)+10%Flexibilidade em DocusaurusEvita travas em build
MD034trueLinks válidos+5%Evita âncoras quebradasSEO preservado
MD036falsePermite ênfase no início de frase+1%Mais liberdadeSem impacto negativo significativo
MD041falseNão exige título H1 obrigatório+5%Compatível com front matterEvita redundância
MD042trueLinks relativos válidos+4%Evita links quebradosNavegação consistente
MD046fencedUsa fenced+5%Renderização previsívelPadrão universal
MD048trueInline code consistente+3%Clareza técnicaMenos ambiguidade
MD049consistentItálico consistente+2%UniformidadeEvita ruído visual
MD050consistentNegrito consistente+2%UniformidadeEvita ruído visual
MD052falsePermite títulos duplicados+1%FlexibilidadeBaixo impacto
MD055trueIDs de cabeçalhos consistentes+8%Links automáticos confiáveisEvita falhas no TOC
MD056trueURLs absolutas completas+4%Links rastreáveisEvita redirecionamentos
MD057trueEvita múltiplos espaços entre palavras+3%Texto limpoDiminui ruído em diffs

📝 Explicações Detalhadas das Políticas

MD001 – Hierarquia coerente de cabeçalhos (H1 > H2 > H3)

Motivo: Garante que a estrutura da documentação siga a ordem correta de hierarquia.
Impacto: Evita erros de TOC e facilita navegação.
Produtividade: Reduz revisões estruturais e confusões durante escrita colaborativa.

MD003 – Cabeçalhos ATX (#)

Motivo: Mantém consistência visual e compatibilidade com Docusaurus e MDX.
Impacto: Evita parsing inconsistente.
Produtividade: Padroniza escrita e evita revisões manuais de estilo.

MD004 – Listas não ordenadas com -

Motivo: Uniformiza listas para melhor legibilidade e diffs claros.
Impacto: Evita inconsistências visuais.
Produtividade: Facilita revisão e colaboração.

MD007 – Recuo consistente em listas

Motivo: Garante alinhamento correto de itens aninhados.
Impacto: Evita erros de renderização.
Produtividade: Diminui retrabalho em PRs.

MD009 – Espaços no fim da linha

Motivo: Remove espaços redundantes.
Impacto: Código e texto mais limpos.
Produtividade: Evita alertas automáticos em CI.

MD012 – Linhas em branco consecutivas

Motivo: Permite maior legibilidade em blocos de texto longos.
Impacto: Documentação visualmente mais clara.
Produtividade: Facilita leitura e revisão.

MD013 – Limite de comprimento de linha

Motivo: Mantém linhas dentro de limites de leitura confortável.
Impacto: Evita quebras inesperadas em renderização.
Produtividade: Menos ajustes manuais.

MD022 – Linhas acima/abaixo de títulos

Motivo: Padroniza espaçamento antes e depois de títulos.
Impacto: Visual consistente, leitura fluida.
Produtividade: Menos necessidade de ajustes estéticos.

MD023 – Evita cabeçalhos duplicados

Motivo: Garante unicidade dos títulos.
Impacto: Evita ambiguidades no TOC.
Produtividade: Facilita navegação e manutenção.

MD025 – Permite múltiplos H1

Motivo: Necessário para documentação modular em Docusaurus.
Impacto: Evita erro falso em README.
Produtividade: Flexível sem quebrar builds.

MD026 – Pontuação em títulos

Motivo: Controla sinais de pontuação em títulos.
Impacto: Melhora clareza e estilo.
Produtividade: Evita inconsistência editorial.

MD027 – Blocos de código bem fechados

Motivo: Garante renderização correta de blocos de código.
Impacto: Evita erros visuais.
Produtividade: Menos revisões manuais.

MD029 – Numeração automática

Motivo: Listas ordenadas são numeradas automaticamente.
Impacto: Evita renumeração manual.
Produtividade: Acelera criação de listas.

MD030 – Espaçamento padronizado

Motivo: Mantém espaçamento uniforme em listas.
Impacto: Diferenças visuais mínimas.
Produtividade: Facilita leitura de diffs.

MD031 – Linhas em branco em blocos de código

Motivo: Melhora visualização de blocos de código.
Impacto: Layout consistente.
Produtividade: Mais legível e padronizado.

MD033 – Permite HTML inline

Motivo: Necessário para integrações MDX.
Impacto: Evita travas no build.
Produtividade: Permite flexibilidade editorial.

Motivo: Garante URLs corretas.
Impacto: SEO preservado, navegação confiável.
Produtividade: Evita correções de links quebrados.

MD036 – Permite ênfase no início

Motivo: Mais liberdade de estilo.
Impacto: Baixo impacto.
Produtividade: Flexibilidade na escrita.

MD041 – H1 opcional

Motivo: Docusaurus usa front matter, não obrigando H1.
Impacto: Evita redundância.
Produtividade: Menos ajustes manuais.

Motivo: Confere validade de links locais.
Impacto: Navegação consistente.
Produtividade: Reduz erros de hyperlink.

MD046 – Blocos de código cercados

Motivo: Uso de fenced garante renderização universal.
Impacto: Evita inconsistências em diferentes renderizadores.
Produtividade: Menos problemas em CI/CD.

MD048 – Inline code consistente

Motivo: Padroniza uso de código inline.
Impacto: Clareza técnica.
Produtividade: Menos ambiguidades.

MD049/050 – Itálico e negrito consistentes

Motivo: Uniformiza estilo textual.
Impacto: Evita ruído visual.
Produtividade: Menos revisões estilísticas.

MD052 – Permite títulos duplicados

Motivo: Flexibilidade em seções semelhantes.
Impacto: Baixo.
Produtividade: Pequeno ganho em documentação modular.

MD055 – IDs de cabeçalhos consistentes

Motivo: Permite links automáticos confiáveis.
Impacto: TOC consistente e navegação segura.
Produtividade: Evita correções manuais.

MD056 – URLs absolutas completas

Motivo: Links rastreáveis e SEO-friendly.
Impacto: Evita redirecionamentos.
Produtividade: Mais confiabilidade em links.

MD057 – Evita múltiplos espaços

Motivo: Limpeza de texto e consistência.
Impacto: Diminui ruído em diffs.
Produtividade: Menos correções manuais.


Fonte: https://marketplace.visualstudio.com/items?itemName=DavidAnson.vscode-markdownlint

📊 Estimativas de Ganho Global

Tipo de ganhoEstimativa médiaObservação
Produtividade editorial+45 – 55%Menos tempo gasto com ajustes manuais
Erros editoriais evitados80 – 90%Renderização, links, hierarquia e pontuação
Compatibilidade técnica100%Totalmente compatível com Docusaurus e CI/CD
Tempo economizado por PR e edição no geral (~1k linhas)30 – 45 minRevisões automatizadas e consistentes

🎯 Conclusão

Utizar o .markdownlint.yml para projetos com base em arquivo .md é uma ferramenta essencial, para evitar perda produtiva.

Utilze ele de forma automatica como por exemplo:

    "lint:md": "markdownlint-cli2 '**/*.md' --config .markdownlint.yml",
"lint:md:fix": "markdownlint-cli2 --fix '**/*.md' --config .markdownlint.yml",
"format:all": "prettier --write '**/*.{js,jsx,ts,tsx,md,mdx,json,yml,yaml}' && npm run lint:md:fix"

Publicidade