textlintでRe:VIEWの原稿をチェックする
Re:VIEWで書いた原稿のクオリティを多少なりとも上げるため、textlintでチェックする環境を整えてみたので備忘録を。
textlintはテキスト向けのlintツール。自然言語に対してルールに基づいた機械的な文章チェックを行えます。
- nodeで動く
- デフォルトではルールがひとつも組み込まれておらず、用途に応じてルールを選ぶ(もしくは作る)スタイル
- 日本語専用ではないが、作者が日本人なこともあってか日本語向けのルールが充実している
といったあたりが特徴。
作者が書かれている解説記事を読むと網羅的な概要を把握できます。
それでは環境を構築してみます。今回は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
以下を追加でインストールしておきます。
- textlint-plugin-review
- textlintをRe:VIEWに対応させるプラグイン
- textlint-rule-preset-ja-technical-writing
- 技術文書向けのプリセットルール
- textlint-rule-prh
- 表記の揺らぎを校正するためのprhというツールをtextlintで使えるようにするルール
- 定義ファイルはrules/WEB+DB_PRESS.ymlを拝借
$ 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]
できました。チェックの仕組みは整ったので、自分好みなチェックになるようルールやプラグインを適宜見直していこうと思います。
あと、これを期に文章作成のセオリーも改めて勉強し直そうかなあ。その手の本を何冊か読んだことあるんですが、血肉になってるとは言い難いので……
関連(するかもしれない)記事
おススメ