textlint
The pluggable linting tool for text(plain text and markdown).
It is similar to ESLint.
Installation
$ npm install textlint -g
Usage
$ textlint README.md
CLI
See help.
$ textlint -h
textlint [options] file.md [file.txt] [dir]
Options:
-h, --help Show help.
--rulesdir [path::String] Set rules from this directory and set all default rules to off.
-f, --format String Use a specific output format. - default: stylish
-v, --version Outputs the version number.
--ext [String] Specify text file extensions.
--no-color Enable color in piped output.
-o, --output-file path::String Enable report to be written to a file.
--quiet Report errors only. - default: false
--stdin Lint code provided on <STDIN>. - default: false
Built-in formatters
See formatters/.
Currently, you can use "stylish" (defaults), "compact", "checkstyle", "jslint-xml", "junit", "tap", "pretty-error".
e.g.) use pretty-error.js
$ textlint -f pretty-error file.md
Use as node modules
You can use textlint as node modules.
$ npm install textlint --save-dev
Minimal usage:
var TextLintEngine = require("textlint").TextLintEngine;
var engine = new TextLintEngine({
rulePaths: ["path/to/rule-dir"]
});
var results = engine.executeOnFiles(["README.md"]);
console.log(results[0].filePath);
console.log(results[0].messages);
if (engine.isErrorResults(results)) {
var output = engine.formatResults(results);
console.log(output);
}
High level usage:
var textlint = require("textlint").textlint;
textlint.setupRules({
"rule-key": function(context){
var exports = {};
exports[context.Syntax.Str] = function (node) {
context.report(node, new context.RuleError("error message"));
};
return exports;
}
});
var results = cliEngine.executeOnFiles(["README.md"]);
console.log(results[0].filePath);
console.log(results[0].messages);
More detail:
FAQ: How to create rules?
Please see docs/
Contributing
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request :D
License
MIT
and
lib/load-rules.js
, util/traverse.js
, cli.js
and formatters are:
ESLint
Copyright (c) 2013 Nicholas C. Zakas. All rights reserved.
https://github.com/eslint/eslint/blob/master/LICENSE
Related Work
SCG: TextLint is similar project.
SCG: TextLint's place is equal to my textlint
(Fortuitously, project's name is the same too!).
via Natural Language Checking with Program Checking Tools
Acknowledgements
Thanks to ESLint.