r-devel / r-dev-env

A containerised development environment for editing and compiling the R source code.
https://contributor.r-project.org/r-dev-env/
MIT License
29 stars 6 forks source link

Add pre-commit linking using markdownlint-cli2 #194

Open ns-rse opened 1 week ago

ns-rse commented 1 week ago

Further to #191 it might be useful to implement a pre-commit hook for markdownlint-cli2 and combine it with a pre-commit.ci.

This would...

  1. Lint markdown before commits are made.
  2. Automatically fix issues in markdown before commits/pull requests are made.
  3. Check Pull Requests to documentation files (*.md and doc/**/*.md) are correctly linted if contributors haven't used pre-commit hooks locally.

.pre-commit-config.yaml...

repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v4.6.0
    hooks:
    -   id: trailing-whitespace
    -   id: end-of-file-fixer
    -   id: check-yaml
    -   id: check-added-large-files

 - repo: https://github.com/DavidAnson/markdownlint-cli2
   rev: v0.13.0
   hooks:
     - id: markdownlint-cli2
       args: []

ci:
 autofix_prs: true
 autofix_commit_msg: '[pre-commit.ci] Fixing issues with pre-commit'
 autoupdate_schedule: weekly
 autoupdate_commit_msg: '[pre-commit.ci] pre-commit-autoupdate'
 skip: [] # Optionally list ids of hooks to skip on CI

.markdownlint-cli2.yaml

A basic configuration file is below, a full list of customisable linting rules can be found here

config:

# MD013 - line-length
  line_length:
    line_length: 80
    code_blocks: false
    tables: false
  html:
    allowed_elements:
      - div

globs:

- "docs/**/*.md"
- "*.md"

fix: true