Skip to content

Pre-commit Integration

Use the rumdl pre-commit hook for a read-only lint check and add rumdl-fmt only when you want files formatted automatically. Both hooks use the same rumdl configuration as the CLI and CI, so repositories can enforce one Markdown rule set throughout the authoring loop.

Last verified: August 2026. Hook names and exit behavior match the current rumdl pre-commit integration.

Setup

Add to your .pre-commit-config.yaml:

.pre-commit-config.yaml
repos:
  - repo: https://github.com/rvben/rumdl-pre-commit
    rev: v0.2.64  # Use latest version
    hooks:
      - id: rumdl      # Lint only; add args [--fix] to auto-fix
      - id: rumdl-fmt  # Pure format, always exits 0

Then install the hooks:

pre-commit install

Available Hooks

rumdl

Lints files and exits 1 if violations are found. Non-destructive by default. Use this as your primary hook.

- id: rumdl

To auto-fix violations in place, opt in with args (the same model as ruff's linter hook):

- id: rumdl
  args: [--fix]

rumdl-fmt

Formats files in place and always exits 0. Relies on pre-commit's file-change detection to signal failures. Use alongside rumdl when you want to separate formatting from linting.

- id: rumdl-fmt

Recommended setup

Use rumdl first for lint coverage, then rumdl-fmt for formatting - the same pattern as ruff + ruff-format.

Configuration

Custom Arguments

hooks:
  - id: rumdl
    args: [--config, .rumdl.toml, --verbose]

File Filtering

hooks:
  - id: rumdl
    files: ^docs/.*\.md$  # Only lint docs/
    exclude: ^docs/drafts/

No Exclude

Exclude patterns from your config are always respected by default (as of v0.0.156).

To disable all configured exclusions, use --no-exclude flag.

hooks:
  - id: rumdl
    args: [--no-exclude]  # Disable exclude patterns defined in config

Stages

Run hooks at different stages:

hooks:
  - id: rumdl
    stages: [commit]  # Default

  - id: rumdl
    stages: [push]    # Run on push instead

Running Manually

# Run on all files
pre-commit run rumdl --all-files

# Run on staged files only
pre-commit run rumdl

Updating

# Update to latest version
pre-commit autoupdate --repo https://github.com/rvben/rumdl-pre-commit

Troubleshooting

Slow First Run

The first run downloads and installs rumdl. Subsequent runs use the cached version.

Files Not Being Checked

Check your files pattern matches your Markdown files:

hooks:
  - id: rumdl
    types: [markdown]  # Use file type instead of pattern

Conflicts with Other Formatters

Run rumdl last to ensure consistent formatting:

repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    hooks:
      - id: trailing-whitespace

  - repo: https://github.com/rvben/rumdl-pre-commit
    hooks:
      - id: rumdl      # Run after other hooks
      - id: rumdl-fmt