crstlint
๐ cRSTLint
Fast, pure-Crystal reStructuredText (RST) linter with automated in-memory fix capabilities.
โก 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:
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