校正ツール textlint 4.0リリース
textlint 4.0をリリースしました。
textlintはMarkdownなどの文章に対するESLintのようなLintツールですが、詳しくは以下の記事を参照してください。
- textlintで日本語の文章をチェックする | Web Scratch
- textlint + prhで表記ゆれを検出する | Web Scratch
- 今すぐ電子書籍(技術書)を書き始める方法と文章の自動チェック | Web Scratch
textlint 4.0
textlint 4.0では以下のような変更が含まれています。
Breaking Change
TextLintMessage
のcolumnsが1-basedに変更されました #38
この破壊的変更はtextlint
をライブラリとして利用しているユーザに関係します(use-as-modules.md)。
- https://github.com/azu/textlint-tester fixed in this
- https://github.com/1000ch/linter-textlint fixed in pull/5
- https://github.com/muraken720/retext-textlint no needed change
Features
TextLintEngine#executeOnText
とtextlint#lintText
が第二引数ext
をサポートしましたengine.executeOnText(text, ".md")
というようにtextの種類を指定できます。
TextLintCore
を参照できるように #41- Add “json” formatter #5
textlint -f json
で利用できます。
Fixed
- Fix pretty-error: East Asian Width problem #2
- 表示が日本語などでずれる問題を修正
変更詳細
TextLintMessage
のcolumnsは元々0,1,2,3と0からスタートしていましたが、
4.0からは1,2,3,4と1からスタートされるように変更しました
なぜ元々columnsが0スタートだったのは、Esprimaなどのパーサーがcolumnsが0スタート担っているのに合わせていたからでした。
これはブラウザのErrorのスタックトレースに合わせていたため0スタートとなっていたようです。
しかし、textlint場合は表示先がブラウザではなくエディタで、エディタはline:1、column:1からスタートしているものが殆どです。
textlintをライブラリとして使ってるlinter-textlintなど自分が知ってるものは合わせて修正したので、ツールとして使うユーザーへの影響はないと思います。
プラグイン
3.7.0でプラグインをサポートしたので合わせて紹介します。 プラグインは今のところルールとルールの設定をまとめただけのモジュールです。
今のところ自分が作成したtextlint-plugin-JTF-styleしかないと思います。
このtextlint-plugin-JTF-styleはJTF日本語標準スタイルガイド(翻訳用)で定義されているルールを40弱ほど実装してまとめたものです。
npm install -D textlint textlint-plugin-jtf-style
でインストールして、.textlintrc
に以下のように書くだけで利用できます。
(それぞれ個別にルールの有効、無効も設定できるので、不要なルールを無効化するといいです)
{
"plugins": [
"jtf-style"
]
}
プラグインの今後
プラグインは今後ただのルールセットだけではなくて、Processor Pluginという形でパーサなどの処理も拡張できるようにする予定です。
内部的には既にMarkdownやtextと言った拡張子ごとの処理がProcessor Pluginでプラグインとして実装されています。
追記: v4.3.0で入りました
これが入れば、任意の拡張子(.rstとか.jsとか)に対してtextlintの処理ができるプラグインを書くことができるようになると思います。 以下のIssueでやっているので、まだAPIとかどうすればいいのか曖昧なのでご意見がある人は下さい。
お知らせ欄
JavaScript Primerの書籍版がAmazonで購入できます。
JavaScriptに関する最新情報は週一でJSer.infoを更新しています。
GitHub Sponsorsでの支援を募集しています。