crstlint

Fast, pure-Crystal reStructuredText (RST) linter with automated in-memory fix capabilities

๐Ÿ” cRSTLint

Fast, pure-Crystal reStructuredText (RST) linter with automated in-memory fix capabilities.

Pipeline Status Latest Release Crystal Version License Donate with Liberapay


โšก Highlights

  • Pure Native Crystal: Zero Python, Docutils, or C dependencies; distributed as a standalone static binary.
  • Deep AST Diagnostics: Built on crst with exact source line and column coordinates.
  • Safe In-Memory Auto-Fixing: Resolves spacing, section underline lengths, and formatting errors with atomic rollback on stalled edits.
  • Configurable Rules: Project-level rules and severity customization via .crstlintrc.yaml.
  • Multiple Output Formats: Human-readable CLI diagnostics and structured JSON for IDE/editor integrations.

๐Ÿš€ Quickstart

1. Fast-Track Binary Installation

Fetch the pre-compiled static binary into ~/.local/bin:

mkdir -p ~/.local/bin
curl -L -o ~/.local/bin/crstlint "https://gitlab.com/api/v4/projects/renich%2Fcrstlint/jobs/artifacts/master/raw/bin/crstlint?job=build"
chmod +x ~/.local/bin/crstlint

2. Build From Source

git clone https://gitlab.com/renich/cRSTLint.git
cd cRSTLint
make install-local

3. Usage Examples

# Check a single file
crstlint document.rst

# Check multiple files or directories
crstlint $(find docs -name '*.rst')

# Automatically fix fixable issues
crstlint --fix $(find docs -name '*.rst')

# Output machine-readable JSON
crstlint --format json document.rst

๐Ÿ“š Documentation

Detailed architectural blueprints and modular specifications are located in docs/:


๐Ÿ› ๏ธ Development

make test    # Run specs
make lint    # Run Ameba and self-linting
make build   # Build production binary

๐Ÿค Contributing & Code of Honor

Contributions are welcome! Please read CONTRIBUTING.rst for submission details.

This project strictly follows the Universal Code of Honor.


๐Ÿ’– Support the Project

If you find cRSTLint helpful for keeping your documentation clean and defect-free, please consider supporting its ongoing development:

Donate using Liberapay

Sponsored and maintained by Rรฉnich Bon ฤ†iriฤ‡ on Liberapay.


๐Ÿ“„ License

This tool is licensed under the AGPL-3.0 License.

Repository

crstlint

Owner
Statistic
  • 0
  • 0
  • 0
  • 1
  • 1
  • 1 day ago
  • November 20, 2025
License

GNU General Public License v3.0 only

Links
Synced at

Mon, 31 Aug 2026 13:38:39 GMT

Languages