textlint 7.0リリース、フィルタールールの追加
textlint 7.0をリリースしました。
前回: textlint 6.0リリース。–fixでの自動修正に対応 | Web Scratch
追加した機能
Filter rule
フィルタールールが追加されました。 フィルタールールはルールエラーを無視するためのルールを定義できるものです。
たとえば、textlint-filter-rule-commentsではESLintなどで見かける、この部分は無視して!ということを文章中に書くことができます。
MarkdownだとコメントがHTMLコメントを使い <!-- textlint-disable -->
と <!-- textlint-enable -->
で囲みます。
(Re:Viewなどはコメント記法があるのでそちらを利用できます)
<!-- textlint-disable -->
この部分はtextlintのチェックでエラーがあっても無視される
<!-- textlint-enable -->
このtextlint-filter-rule-comments
を有効にするには、他のルールと同じくnpmでインストールします。
npm install -D textlint-filter-rule-comments
# or
npm install -g textlint-filter-rule-comments
そして、.textlintrc
のfilters
フィールドを作ってそこへ追加します。
textlint-filter-rule-comments
のtextlint-filter-rule-
は省略できるのでcomments
だけで問題ありません。
{
"filters": {
"comments": true
}
}
もう一つの例として、特定のNodeを全部無視するtextlint-filter-rule-node-typesというフィルタールールがあります。
npm install -D textlint-filter-rule-node-types
のようにインストールしておき、次のように設定を書いて有効にします。
そうすると、"nodeTypes"
で指定したNode typeのエラーが全て無視されます。
この例ではBlockQuote
nodeは全てtextlintのチェック対象から除外されます。
{
"filters": {
"node-types": {
"nodeTypes": ["BlockQuote"]
}
},
"rules": {
"very-nice-rule": true
}
}
指定できるnodeTypes
は https://github.com/textlint/textlint/blob/master/docs/txtnode.md#type を参照してください。
フィルタールールも自分で作る事ができます。 フィルタールールの作り方について詳しくはドキュメントを参照してください。 既存のルールにAPIが一つ増えたぐらいの違いしかありません。
Sharable Config
これはtextlintの設定をnpmにあげて使い回す | Web Scratchで紹介した機能です。
npm i -D @azu/textlint-config-readme textlint
$(npm bin)/textlint --config @azu/textlint-config-readme README.md
で、.textlintrc
の設定をnpmパッケージとして配布されているものを利用できます。
AST explorer for textlint
主にルール開発者向けですが、textlintの扱うASTをみたり、その場でルールを書いてためせるplaygroundサイトを追加しました。
JavaScript ASTで有名なAST explorerのtextlint版です。 ルールを書いてみたい人は、これを使って文章がどのようなASTになるかを眺めてみるといいと思います。
Breaking Change
textlint 7.0 ではいくつか破壊的な変更はありますが、ユーザーには影響ないと思います。 ルールを書いている人はRelease 7.0.0 · textlint/textlintをみてください。 メッセージの出力順を変更しているのでテストが落ちている可能性があります。
Drop Node.js 0.12 support
またtexltint 7.0からはNode.0.12のサポートを終了し、Node.js 4.0.0 >=がサポート環境となります。(0.12でも動くけどいつの間にか動かなくなる事があります)
お知らせ欄
JavaScript Primerの書籍版がAmazonで購入できます。
JavaScriptに関する最新情報は週一でJSer.infoを更新しています。
GitHub Sponsorsでの支援を募集しています。