crstlint

cRSTLint

pipeline status coverage report

Copyright (C) 2025 Rénich Bon Ćirić

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.

RST format checker and linter using the crst parser.

Installation

git clone https://gitlab.com/renich/crstlint.git
cd crstlint
shards install
crystal build -o bin/crstlint bin/crstlint

Usage

Check a single file:

crstlint document.rst

Check multiple files:

crstlint file1.rst file2.rst

Recursively check a directory:

crstlint --recursive docs/

Read from stdin:

cat document.rst | crstlint

JSON output:

crstlint --format json document.rst

Features

  • RST syntax validation
  • Document structure checking
  • Unknown directive detection
  • Reference validation
  • Multiple output formats (human-readable, JSON)

Configuration

cRSTLint can be configured using a .crstlintrc.yml file in your project root:

allowed_directives:
  - code-block
  - note
  - warning

max_section_jump: 1

experimental:
  broken_references: true

See the included .crstlintrc.yml for all options.

Development

git config core.hooksPath .githooks  # Enable Git hooks
make deps    # Install dependencies
make test    # Run tests
make lint    # Run linting
make build   # Build binary
make setup   # Full development setup

See CONTRIBUTING.rst for detailed development instructions.

Repository

crstlint

Owner
Statistic
  • 0
  • 0
  • 0
  • 0
  • 2
  • 8 days ago
  • November 20, 2025
License

GNU General Public License v3.0 only

Links
Synced at

Sat, 29 Nov 2025 04:57:27 GMT

Languages