TextLint を使ってみる
文章校正ができる npm パッケージ「TextLint」を使ってみた。
- textlint - pluggable linting tool for text and markdown
- GitHub - textlint/textlint: The pluggable natural language linter for text and markdown.
- textlintで日本語の文章をチェックする | Web Scratch
TextLint の使い方
TextLint はルールをプラガブルに設定できるのが特徴。TextLint 本体となるパッケージの他に、特定の文法や言葉遣いをチェックするルールセットのパッケージを組み合わせて入れていくのだ。各ルールは設定ファイルにてチェックの仕方をカスタマイズしたりできる。
まずは TextLint 本体を入れる。今回はプロジェクト配下にローカルインストールする。
$ npm i textlint-D
そして package.json
に npm-scripts を追加しておこう。
"scripts": {
"textlint": "textlint"
}
これで npm run textlint
で動かせるようになる。
自分が入れたルールセット
まだカスタマイズ中なのだが、自分が入れているルールセットは以下のとおり。全て npm パッケージなので、インストールは npm i texlint-rule-【パッケージ名】 -D
で行う。
パッケージ名 | 概要 |
---|---|
textlint-rule-ja-hiragana-hojodoushi | ひらがなにした方が良い補助動詞 |
textlint-rule-ja-no-abusage | よくある誤用 |
textlint-rule-ja-no-redundant-expression | 冗長表現 |
textlint-rule-ja-no-successive-word | 同一の単語を間違えて連続しているもの |
textlint-rule-max-ten | 一文に利用できる「、」の数 |
textlint-rule-no-doubled-conjunction | 同じ接続詞が連続して出現していないか |
textlint-rule-no-doubled-conjunctive-particle-ga | 逆接の接続助詞「が」が一文中に複数回使用されていないか |
textlint-rule-no-doubled-joshi | 文中に同じ助詞が複数登場していないか |
textlint-rule-no-dropping-the-ra | ら抜き表現 |
textlint-rule-no-mix-dearu-desumasu | 常体・敬体の統一 |
textlint-rule-no-mixed-zenkaku-and-hankaku-alphabet | 全角アルファベット |
textlint-rule-no-nfd | Mac 濁点 |
この辺で、単なる typo から文体の統一、勘違いして書いている文章や推敲の足りない文章がうまく蹴落とせると思う。
HTML ファイルをチェックするためのプラグイン
TextLint 単体では、チェック対象のファイルが HTML だとタグなどを誤解してしまうので、HTML ファイルを読み込めるプラグインを入れておく。
$ npm i textlint-plugin-html -D
設定ファイルでカスタマイズ
さて、これらのルールセットやプラグインを有効にし、チェックルールをカスタマイズするために、プロジェクト直下に .textlintrc
というファイルを作り、JSON 形式でルールを設定していく。//
でコメントアウトを挿入できる。
{
"plugins": [
"html"
],
"rules": {
// よくある誤用
"ja-no-abusage": true,
// 冗長表現
"ja-no-redundant-expression": true,
// 全角アルファベット
"no-mixed-zenkaku-and-hankaku-alphabet": true,
// ら抜き言葉
"no-dropping-the-ra": true,
// 一文における読点「、」の数
"max-ten": {
"max" : 3
},
// 逆接の接続助詞「が」が一文中に複数回使用されていないか
"no-doubled-conjunctive-particle-ga": true,
// 同じ接続詞が連続して出現していないか
"no-doubled-conjunction": true,
// 文中に同じ助詞が複数登場していないか
"no-doubled-joshi": {
"min_interval" : 1,
"strict": false,
"allow": []
},
// Mac 濁点
"no-nfd": true,
// ひらがなにした方が良い補助動詞
"ja-hiragana-hojodoushi": true,
// 同一の単語を間違えて連続しているもの
"ja-no-successive-word": true,
// 常体 (である調) に統一する
"no-mix-dearu-desumasu": {
"preferInHeader": "である", // "" (自動) or "である" or "ですます"
"preferInBody": "である",
"preferInList": "である",
"strict": true // 文末以外でも敬体と常体を厳しくチェックするかどうか
}
}
}
基本はパッケージ名の接頭辞 textlint-rule-
を省いてパッケージを指定し、その中で決められたルールを設定する、もしくは true
・false
でそのルールを適用するかどうか、といった設定ができる。
Lint の掛け方
これでパッケージの導入と設定ができたので、実際に Lint をかけてみる。
$ npm run textlint ./html/**/*.html
このようにワイルドカードで指定のディレクトリ配下の全てのファイルを選択できる。結果は以下のように表示される。
C:\MyProject\html\test\hoge.html
77:129 error 一つの文で"、"を3つ以上使用しています max-ten
82:57 error 一文に二回以上利用されている助詞 "に" がみつかりました。 no-doubled-joshi
89:179 error 一つの文で"、"を3つ以上使用しています max-ten
91:72 error "小" が連続して2回使われています。 ja-no-successive-word
中には「飲酒はほどほどにしよう」といった文章を見て「"ほど" が連続して2回使われています。」というツッコミが入ったり、思ってもいないところでエラー扱いになることもあるが、少なくとも誤りは見逃さないので、これで文章校正をしていくのが良い感じ。