textlintでRe:VIEWの原稿をチェックする

2019/02/09

Re:VIEWで書いた原稿のクオリティを多少なりとも上げるため、textlintでチェックする環境を整えてみたので備忘録を。

textlintはテキスト向けのlintツール。自然言語に対してルールに基づいた機械的な文章チェックを行えます。

  • nodeで動く
  • デフォルトではルールがひとつも組み込まれておらず、用途に応じてルールを選ぶ(もしくは作る)スタイル
  • 日本語専用ではないが、作者が日本人なこともあってか日本語向けのルールが充実している

といったあたりが特徴。

作者が書かれている解説記事を読むと網羅的な概要を把握できます。

textlintで日本語の文章をチェックする | Web Scratch

それでは環境を構築してみます。今回はWSL上のUbuntuで検証しましたが、WindowsやMacでもだいたい同じ流れになるはず。

textlintをインストール。

$ cat /etc/os-release | head -2
NAME="Ubuntu"
VERSION="18.04.1 LTS (Bionic Beaver)"
$ node -v
v10.15.1
$ npm init -y
(snip)
$ npm install textlint
(snip)
$ ./node_modules/.bin/textlint -v
v11.2.1

以下を追加でインストールしておきます。

$ npm install textlint-plugin-review textlint-rule-preset-ja-technical-writing textlint-rule-prh

.textlintrc を作成。中身はこんな感じ。

$ cat .textlintrc
{
  "rules": {
    "preset-ja-technical-writing": true,
    "prh": {
      "rulePaths" :["./prh-rules/WEB+DB_PRESS.yml"]
    }
  },
  "plugins": [
    "review"
  ]
}

実行してみましょう。

./node_modules/.bin/textlint test.re

/test.re
   1:3    ✓ error  はじめ => 始め                        prh
   7:39   ✓ error  カウンター => カウンタ                prh
   7:44   ✓ error  アプリ => アプリケーション            prh
   7:50   ✓ error  カウンター => カウンタ                prh
   7:55   ✓ error  アプリ => アプリケーション            prh
   7:88   ✓ error  なので、 => ですので、                prh
   7:96   ✓ error  アプリ => アプリケーション            prh
   7:164  error    "など" が連続して2回使われています。  preset-ja-technical-writing/ja-no-successive-word
   9:52   ✓ error  なので、 => ですので、                prh
   9:109  error    文末が"。"で終わっていません。        preset-ja-technical-writing/ja-no-mixed-period
  11:26   ✓ error  アプリ => アプリケーション            prh
  11:61   ✓ error  アプリ => アプリケーション            prh
  11:83   ✓ error  てな => ていな                        prh
  18:26   ✓ error  いい => よい                          prh
  47:95   error    弱い表現: "かも" が使われています。   preset-ja-technical-writing/ja-no-weak-phrase
  47:116  ✓ error  アプリ => アプリケーション            prh

✖ 16 problems (16 errors, 0 warnings)
✓ 13 fixable problems.
Try to run: $ textlint --fix [file]

できました。チェックの仕組みは整ったので、自分好みなチェックになるようルールやプラグインを適宜見直していこうと思います。

あと、これを期に文章作成のセオリーも改めて勉強し直そうかなあ。その手の本を何冊か読んだことあるんですが、血肉になってるとは言い難いので……




関連(するかもしれない)記事


おススメ