Type object
File match .rumdl.toml rumdl.toml
Schema URL https://catalog.lintel.tools/schemas/schemastore/rumdl/latest.json
Source https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/rumdl.json

Validate with Lintel

npx @lintel/lintel check
Type: object

rumdl configuration for linting Markdown files. Rules can be configured individually using [MD###] sections with rule-specific options.

Properties

extends string | null

Path to a base config file to inherit settings from. Supports relative paths, absolute paths, and ~/ for home directory. Example: extends = "../base.rumdl.toml"

global object

Global configuration options

15 nested properties
enable string[]

Enabled rules

Default:
[]
disable string[]

Disabled rules

Default:
[]
exclude string[]

Files to exclude

Default:
[]
include string[]

Files to include

Default:
[]
respect-gitignore boolean

Respect .gitignore files when scanning directories

Default: true
line-length integer | null

A line length value that can be 0 (meaning no limit) or a positive value (≥1)

Many configuration values for line length need to support both:

  • 0: Special value meaning "no line length limit"
  • ≥1: Actual line length limit

This type enforces those constraints at deserialization time.

min=0
output-format string | null

Output format for linting results (e.g., "text", "json", "pylint", etc.)

fixable string[]

Rules that are allowed to be fixed when --fix is used If specified, only these rules will be fixed

Default:
[]
unfixable string[]

Rules that should never be fixed, even when --fix is used Takes precedence over fixable

Default:
[]
flavor string

Markdown flavor/dialect. Accepts: standard, gfm, mkdocs, mdx, quarto, obsidian, kramdown. Aliases: commonmark/github map to standard, qmd/rmd/rmarkdown map to quarto, jekyll maps to kramdown.

Values: "standard" "gfm" "github" "commonmark" "mkdocs" "mdx" "quarto" "qmd" "rmd" "rmarkdown" "obsidian" "kramdown" "jekyll"
force-exclude boolean

[DEPRECATED] Whether to enforce exclude patterns for explicitly passed paths. This option is deprecated as of v0.0.156 and has no effect. Exclude patterns are now always respected, even for explicitly provided files. This prevents duplication between rumdl config and tool configs like pre-commit.

Default: false
cache-dir string | null

Directory to store cache files (default: .rumdl_cache) Can also be set via --cache-dir CLI flag or RUMDL_CACHE_DIR environment variable

cache boolean

Whether caching is enabled (default: true) Can also be disabled via --no-cache CLI flag

Default: true
extend-enable string[]

Additional rules to enable on top of the base set (additive)

Default:
[]
extend-disable string[]

Additional rules to disable on top of the base set (additive)

Default:
[]
per-file-ignores Record<string, string[]>

Per-file rule ignores: maps file patterns to lists of rules to ignore Example: { "README.md": ["MD033"], "docs/**/*.md": ["MD013"] }

Default:
{}
per-file-flavor Record<string, string>

Per-file flavor overrides: maps file patterns to Markdown flavors Example: { "docs//*.md": MkDocs, "/*.mdx": MDX } Uses IndexMap to preserve config file order for "first match wins" semantics

Default:
{}
code-block-tools object

Master configuration for code block tools.

This is disabled by default for safety - users must explicitly enable it.

9 nested properties
enabled boolean

Master switch (default: false)

Default: false
normalize-language string | string

Language normalization strategy.

on-error string | string | string

Error handling strategy for tool execution failures.

on-missing-language-definition string | string | string

Behavior when a language has no tools configured or a tool binary is missing.

on-missing-tool-binary string | string | string

Behavior when a language has no tools configured or a tool binary is missing.

timeout integer

Timeout per tool execution in milliseconds (default: 30000)

Default: 30000
min=0
languages Record<string, object>

Per-language tool configuration

Default:
{}
language-aliases Record<string, string>

User-defined language aliases (override built-in resolution) Example: { "py": "python", "bash": "shell" }

Default:
{}
tools Record<string, object>

Custom tool definitions (override built-ins)

Default:
{}

Definitions

GlobalConfig object

Global configuration options

enable string[]

Enabled rules

Default:
[]
disable string[]

Disabled rules

Default:
[]
exclude string[]

Files to exclude

Default:
[]
include string[]

Files to include

Default:
[]
respect-gitignore boolean

Respect .gitignore files when scanning directories

Default: true
line-length integer | null

A line length value that can be 0 (meaning no limit) or a positive value (≥1)

Many configuration values for line length need to support both:

  • 0: Special value meaning "no line length limit"
  • ≥1: Actual line length limit

This type enforces those constraints at deserialization time.

min=0
output-format string | null

Output format for linting results (e.g., "text", "json", "pylint", etc.)

fixable string[]

Rules that are allowed to be fixed when --fix is used If specified, only these rules will be fixed

Default:
[]
unfixable string[]

Rules that should never be fixed, even when --fix is used Takes precedence over fixable

Default:
[]
flavor string

Markdown flavor/dialect. Accepts: standard, gfm, mkdocs, mdx, quarto, obsidian, kramdown. Aliases: commonmark/github map to standard, qmd/rmd/rmarkdown map to quarto, jekyll maps to kramdown.

Values: "standard" "gfm" "github" "commonmark" "mkdocs" "mdx" "quarto" "qmd" "rmd" "rmarkdown" "obsidian" "kramdown" "jekyll"
force-exclude boolean

[DEPRECATED] Whether to enforce exclude patterns for explicitly passed paths. This option is deprecated as of v0.0.156 and has no effect. Exclude patterns are now always respected, even for explicitly provided files. This prevents duplication between rumdl config and tool configs like pre-commit.

Default: false
cache-dir string | null

Directory to store cache files (default: .rumdl_cache) Can also be set via --cache-dir CLI flag or RUMDL_CACHE_DIR environment variable

cache boolean

Whether caching is enabled (default: true) Can also be disabled via --no-cache CLI flag

Default: true
extend-enable string[]

Additional rules to enable on top of the base set (additive)

Default:
[]
extend-disable string[]

Additional rules to disable on top of the base set (additive)

Default:
[]
LineLength integer | null

A line length value that can be 0 (meaning no limit) or a positive value (≥1)

Many configuration values for line length need to support both:

  • 0: Special value meaning "no line length limit"
  • ≥1: Actual line length limit

This type enforces those constraints at deserialization time.

MarkdownFlavor string

Markdown flavor/dialect. Accepts: standard, gfm, mkdocs, mdx, quarto, obsidian, kramdown. Aliases: commonmark/github map to standard, qmd/rmd/rmarkdown map to quarto, jekyll maps to kramdown.

CodeBlockToolsConfig object

Master configuration for code block tools.

This is disabled by default for safety - users must explicitly enable it.

enabled boolean

Master switch (default: false)

Default: false
normalize-language string | string

Language normalization strategy.

on-error string | string | string

Error handling strategy for tool execution failures.

on-missing-language-definition string | string | string

Behavior when a language has no tools configured or a tool binary is missing.

on-missing-tool-binary string | string | string

Behavior when a language has no tools configured or a tool binary is missing.

timeout integer

Timeout per tool execution in milliseconds (default: 30000)

Default: 30000
min=0
languages Record<string, object>

Per-language tool configuration

Default:
{}
language-aliases Record<string, string>

User-defined language aliases (override built-in resolution) Example: { "py": "python", "bash": "shell" }

Default:
{}
tools Record<string, object>

Custom tool definitions (override built-ins)

Default:
{}
NormalizeLanguage string | string

Language normalization strategy.

OnError string | string | string

Error handling strategy for tool execution failures.

OnMissing string | string | string

Behavior when a language has no tools configured or a tool binary is missing.

LanguageToolConfig object

Per-language tool configuration.

enabled boolean

Whether code block tools are enabled for this language (default: true). Set to false to acknowledge a language without configuring tools. This satisfies strict mode (on-missing-language-definition) checks.

Default: true
lint string[]

Tools to run in lint mode (rumdl check)

Default:
[]
format string[]

Tools to run in format mode (rumdl check --fix / rumdl fmt)

Default:
[]
on-error OnError | null

Override global on-error setting for this language

Default: null
ToolDefinition object

Definition of an external tool.

This describes how to invoke a tool and how it communicates.

command string[] required

Command to run (first element is the binary, rest are arguments)

stdin boolean

Whether the tool reads from stdin (default: true)

Default: true
stdout boolean

Whether the tool writes to stdout (default: true)

Default: true
lint-args string[]

Additional arguments for lint mode (appended to command)

Default:
[]
format-args string[]

Additional arguments for format mode (appended to command)

Default:
[]
RuleConfig object

Represents a rule-specific configuration

severity Severity | null

Severity override for this rule (Error, Warning, or Info)

Severity string