# rumdl.toml.example - Sample configuration file for rumdl
# Global configuration options
[global]
# List of rules to disable
disable = ["MD013", "MD033"]
# List of rules to enable exclusively (if provided, only these rules will run)
# enable = ["MD001", "MD003", "MD004"]
# List of file/directory patterns to exclude from linting
exclude = [
# Common directories to exclude
".git",
".github",
"node_modules",
"vendor",
"dist",
"build",
# Specific files or patterns
"CHANGELOG.md",
"LICENSE.md",
"generated/*.md",
"**/temp_*.md",
]
# Respect .gitignore files when scanning directories
respect_gitignore = true
# Per-file rule ignores - disable specific rules for specific files or file patterns
# Useful when certain files (like README.md) need different rules than the rest
[per-file-ignores]
# Disable inline HTML check for GitHub README (GitHub doesn't support all MkDocs extensions)
"README.md" = ["MD033"]
# Disable line length check for documentation with long code examples
"docs/api/**/*.md" = ["MD013"]
# Disable first line heading check for generated files
"generated/**/*.md" = ["MD041"]
# Rule-specific configurations
[MD003]
style = "atx" # Heading style (atx, atx_closed, setext)
[MD004]
style = "asterisk" # Unordered list style (asterisk, plus, dash, consistent)
[MD007]
indent = 4 # Unordered list indentation
[MD013]
line_length = 100 # Line length
code_blocks = false # Exclude code blocks from line length check
tables = false # Exclude tables from line length check
headings = true # Exclude headings from line length check
[MD044]
names = ["rumdl", "Markdown", "GitHub"] # Proper names that should be capitalized correctly
code-blocks = false # Check code blocks for proper names (default: false, skips code blocks)
# Code block tools [preview] - external linters/formatters for fenced code blocks
# Runs external tools on code blocks during `rumdl check` (lint) and `--fix` (format)
# Note: This feature is in preview and may change in future versions.
[code-block-tools]
enabled = false # Enable to activate code block linting/formatting
normalize-language = "linguist" # Resolve language aliases (py -> python, bash -> shell)
on-error = "warn" # How to handle tool failures: "fail", "warn", or "skip"
timeout = 30000 # Timeout per tool execution in milliseconds
# Custom language aliases (in addition to built-in linguist aliases)
[code-block-tools.language-aliases]
py = "python"
sh = "shell"
# Configure tools per language (inline table syntax for compact config)
[code-block-tools.languages]
python = { lint = ["ruff:check"], format = ["ruff:format"] }
shell = { lint = ["shellcheck"], format = ["shfmt"] }
javascript = { format = ["prettier"] }
json = { format = ["jq"] }
# rust = { format = ["rustfmt"] }
# go = { format = ["gofmt"] }