Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/errata-ai/vale
:pencil: A markup-aware linter for prose built with speed and extensibility in mind.
https://github.com/errata-ai/vale
linter linting nlp vale
Last synced: 7 days ago
JSON representation
:pencil: A markup-aware linter for prose built with speed and extensibility in mind.
- Host: GitHub
- URL: https://github.com/errata-ai/vale
- Owner: errata-ai
- License: mit
- Created: 2017-02-05T20:34:36.000Z (over 7 years ago)
- Default Branch: v3
- Last Pushed: 2024-05-02T04:57:00.000Z (6 months ago)
- Last Synced: 2024-05-02T06:04:20.255Z (6 months ago)
- Topics: linter, linting, nlp, vale
- Language: Go
- Homepage: https://vale.sh
- Size: 71.6 MB
- Stars: 4,185
- Watchers: 33
- Forks: 135
- Open Issues: 38
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
Awesome Lists containing this project
- my-awesome-github-stars - errata-ai/vale - :pencil: A markup-aware linter for prose built with speed and extensibility in mind. (Go)
- awesome - errata-ai/vale - :pencil: A markup-aware linter for prose built with speed and extensibility in mind. (Go)
- awesome-skills - Vale: a command-line tool that brings code-like linting to prose
- awesome-repositories - errata-ai/vale - :pencil: A markup-aware linter for prose built with speed and extensibility in mind. (Go)
- awesome-starred - errata-ai/vale - :pencil: A markup-aware linter for prose built with speed and extensibility in mind. (nlp)
README
# Vale: Your style, our editor [![Build status](https://ci.appveyor.com/api/projects/status/snk0oo6ih1nwuf6r?svg=true)](https://ci.appveyor.com/project/jdkato/vale) [![GitHub All Releases](https://img.shields.io/github/downloads/errata-ai/vale/total?logo=GitHub&color=ff69b4)](https://github.com/errata-ai/vale/releases) [![Docker Pulls](https://img.shields.io/docker/pulls/jdkato/vale?color=orange&logo=docker&logoColor=white)](https://hub.docker.com/r/jdkato/vale) [![Chocolatey](https://img.shields.io/chocolatey/dt/vale?color=white&label=chocolatey&logo=chocolatey)](https://community.chocolatey.org/packages/vale) [![Homebrew](https://img.shields.io/homebrew/installs/dy/vale?color=yellow&label=homebrew&logo=homebrew)](https://formulae.brew.sh/formula/vale)
Vale is a command-line tool that brings code-like linting to prose. It's fast, cross-platform (Windows, macOS, and Linux), and highly customizable.
## :heart: Sponsors
> Hi there! I'm [@jdkato](https://github.com/jdkato), the sole developer of Vale. If you'd like to help me dedicate more time to _developing_, _documenting_, and _supporting_ Vale, feel free to donate through [GitHub Sponsors](https://github.com/sponsors/jdkato) or [Open Collective](https://opencollective.com/vale). Any donation—big, small, one-time, or recurring—is greatly appreciated!
### Organizations
### Other
> Thanks to [DigitalOcean][1] for providing hosting credits for [Vale Studio][2].
> Thanks to [Appwrite][4] for supporting Vale through their [Open Source Sponsorship program][3].
### Individuals
## :boom: Key Features
- [x] **Support for markup**: Vale has a rich understanding of many [markup formats](https://vale.sh/docs/topics/scoping/#formats), allowing it to avoid syntax-related false positives and intelligently exclude code snippets from prose-related rules.
- [x] A **highly customizable** [extension system](https://vale.sh/docs/topics/styles/): Vale is capable of enforcing _your style_—be it a standard [editorial style guide](https://github.com/errata-ai/styles#available-styles) or a custom in-house set of rules (see [examples][6]).
- [x] **Easy-to-install**, stand-alone binaries: Unlike other tools, Vale doesn't require you to install and configure a particular programming language and its related tooling (such as Python/pip or Node.js/npm).
See the [documentation](https://vale.sh) for more information.
## :mag: At a Glance: Vale vs. `<...>`
> **NOTE**: While all of the options listed below are open-source (CLI-based) linters for prose, their implementations and features vary significantly. And so, the "best" option will depends on your specific needs and preferences.
### Functionality
| Tool | Extensible | Checks | Supports Markup | Built With | License |
| ---------- | -------------------- | --------------- | ----------------------------------------------------------------------- | ---------- | ------------ |
| Vale | Yes (via YAML) | spelling, style | Yes (Markdown, AsciiDoc, reStructuredText, HTML, XML, Org) | Go | MIT |
| textlint | Yes (via JavaScript) | spelling, style | Yes (Markdown, AsciiDoc, reStructuredText, HTML, Re:VIEW) | JavaScript | MIT |
| RedPen | Yes (via Java) | spelling, style | Yes (Markdown, AsciiDoc, reStructuredText, Textile, Re:VIEW, and LaTeX) | Java | Apache-2.0 |
| write-good | Yes (via JavaScript) | style | No | JavaScript | MIT |
| proselint | No | style | No | Python | BSD 3-Clause |
| Joblint | No | style | No | JavaScript | MIT |
| alex | No | style | Yes (Markdown) | JavaScript | MIT |The exact definition of "Supports Markup" varies by tool but, in general, it means that the format is understood at a higher level than a regular plain-text file (for example, features like excluding code blocks from spell check).
Extensibility means that there's a built-in means of creating your own rules without modifying the original source code.
### Benchmarks
This benchmark has all three tools configured to use their implementations of thewrite-good
rule set and Unix-style output.
This benchmark runs Vale's implementation ofproselint
's rule set against the original. Both tools are configured to use JSON output.
This benchmark runs Vale's implementation of Joblint's rule set against the original. Both tools are configured to use JSON output.
This benchmark has all three tools configured to perform only English spell checking using their default output styles.
All benchmarking was performed using the open-source [hyperfine](https://github.com/sharkdp/hyperfine) tool on a MacBook Pro (2.9 GHz Intel Core i7):
```
hyperfine --warmup 3 ''
```The corpus IDs in the above plots—`gitlab` and `ydkjs`—correspond to the following files:
- A [snapshot][7] of GitLab's open-source documentation (1,500 Markdown files).
- A [chapter][8] from the open-source book _You Don't Know JS_.
[1]: https://www.digitalocean.com/open-source/credits-for-projects
[2]: https://studio.vale.sh/
[3]: https://appwrite.io/oss-fund
[4]: https://appwrite.io/
[5]: https://page.famewall.io/vale
[6]: https://vale.sh/#users
[7]: https://gitlab.com/gitlab-org/gitlab/-/tree/7d6a4025a0346f1f50d2825c85742e5a27b39a8b/doc
[8]: https://raw.githubusercontent.com/getify/You-Dont-Know-JS/1st-ed/es6%20%26%20beyond/ch2.md