こんにちは。Enjoy IT Life管理人の仁科(@nishina555)です。
執筆作業をするうえで文章校正は大事な作業です。しかし人手でチェックをするとどうしても抜け漏れが発生してしまいます。
今回は文章チェックを機械的に行ってくれるtextlintの導入方法について紹介します。
目次
textlintについて
textlintとはテキスト向けのLintツールです。textlintを導入することで文章の誤字脱字や文法の誤りを機械的に検出できるようになります。
textlintはデフォルトでは文章をチェックする項目(ルール)が1つも適用されていないため、ルールを追加することで文章のチェック項目をカスタマイズしていきます。
textlint5.1からは複数のルールがパッケージングされた『ルールプリセット』と呼ばれるものも用意されています。1
textlintのインストール方法は2つあります。
- ローカルインストールする方法(プロジェクト単位で利用する場合)
- グローバルインストールする方法(任意のディレクトリで利用する場合)
ルールの指定方法は2つあります。
- textlintコマンドのオプションで指定する方法
- 設定ファイル(.textlintrc)で指定する方法
ルールを複数採用したりルールのカスタイマイズをしたりする場合は設定ファイルを作成する方法がオススメです。
textlintの導入手順
今回はtextlint本体のインストール、ルールの適用、ルールのカスタマイズについて紹介します。
自分がtextlintでやりたいこと(今回のゴール)
ぼくの場合、個人ブログは『blog』ディレクトリ、仕事用のドキュメントは『wiki』ディレクトリのような感じでシチュエーションに応じてテキストファイルの保存場所を変えています。
### ディレクトリイメージ図↓
.
├── blog
│ └── sample.md
└── wiki
└── doc.md
任意のディレクトリに保存されているテキストファイルの文章チェックをしたいため、textlintはグローバルインストールする方針にします。
また、textlintのルールはカスタマイズしていきたいので.textlintrc
で設定を管理するようにします。
多くのルールが公開されていますが、今回は例として技術文書向けのルールプリセットであるtextlint-rule-preset-ja-technical-writingを追加ます。
なお、文章チェックが必要だと思った時だけターミナル上でtextlintが実行できれば十分なので、プラグインによるVSCodeやAtomとの連携設定は行いません。
textlintのインストール
npmでインストールをするのでNode.jsのインストールを先にすませてください。
### グローバルインストール
$ npm install textlint --global
### ルール(プリセットルール)のインストール
$ npm install textlint-rule-preset-ja-technical-writing --global
$ npm ls -g --depth=0
→ 一覧にあればOK
/usr/local/lib
├── npm@6.14.5
├── textlint@11.6.3
└── textlint-rule-preset-ja-technical-writing@3.1.3
textlintの設定ファイル(.textlintrc)を作成する
textlint本体およびルールのインストールが完了したので、textlintコマンドのオプションを利用することで文章のチェックができるようになりました。
$ textlint --preset ja-technical-writing sample.md
2:13 error 弱い表現: "思います" が使われています。 ja-technical-writing/ja-no-weak-phrase
4:35 error 一つの文で"、"を3つ以上使用しています ja-technical-writing/max-ten
✖ 2 problems (2 errors, 0 warnings)
ここからは設定ファイルでルールを指定できるようにしていきます。
textlintをグローバルインストールしたので.textlintrc
をホームディレクトリに作成します。
$ cd ~/.
### .textlintrcの作成
$ textlint --init
$ ls -la
→ ファイルがあればOK
.textlintrc
インストールしたルール(textlint-rule-preset-ja-technical-writing)を追加します。
{
"rules": {
"preset-ja-technical-writing": true
}
}
これで.textlintrc
の設定は完了です。
以下のように実行し、文章のチェックができていればOKです。
### オプションがなくても文章のチェックができるようになっている
$ textlint sample.md
2:13 error 弱い表現: "思います" が使われています。 ja-technical-writing/ja-no-weak-phrase
4:35 error 一つの文で"、"を3つ以上使用しています ja-technical-writing/max-ten
✖ 2 problems (2 errors, 0 warnings)
ルールのカスタマイズをする
以下のようなエラーが出ているとします。
$ textlint sample.md
2:13 error 弱い表現: "思います" が使われています。 ja-technical-writing/ja-no-weak-phrase
4:35 error 一つの文で"、"を3つ以上使用しています ja-technical-writing/max-ten
✖ 2 problems (2 errors, 0 warnings)
弱い表現のチェック(ja-technical-writing/ja-no-weak-phrase)を無視、1文における読点の許容数を4にする場合は.textlintrc
を以下のようにします。
{
"rules": {
"preset-ja-technical-writing": {
"ja-no-weak-phrase": false,
"max-ten": {
"max" : 4
}
}
}
}
上記の設定を保存するとエラーが表示されなくなります。
$ textlint sample.md
→ errorが表示されない
textlintの各ルールはGitHubで管理されているので、編集したいルールがある場合はGitHubでパラメーター等を確認しましょう。
知っておくと便利なTIPS
textlintを導入するうえで知っておくと便利そうなことについてまとめました。
複数のPCでルールを共有する方法
textlintに限ったはなしではないですが、設定ファイルはGitHubで管理しておけば他のPCでもすぐに利用できるのでオススメです。
例えばdotfiles
というリポジトリ内で.textlintrc
を管理した場合、以下のような手順で他のPCでも利用ができます。
### 設定ファイルをcloneしてくる
$ git clone [dotfilesリポジトリのURL]
### シンボリックリンクの作成
$ ln -s ~/dotfiles/.textlintrc ~/.textlintrc
textlintのエラーをiTerm2でも見やすくする方法
ぼくはiTerm2を利用しているのですが、自分の環境ではiTerm2で出力されるtextlintのエラー行と対応ルールの部分が見えにくかったです。

iTerm2の『Preferences』を開き、『Profiles』の『Colors』タブにある『Minimum Contrast』のスライダーを調整することでエラーメッセージが見やすくなりました。
設定変更後の見え方は以下のような感じです。
まとめ
以上でtextlintの導入と利用方法の紹介をおわります。
textlintの詳しい説明については、textlint開発者の@azuさんの『textlintで日本語の文章をチェックする』が参考になりますので一読しておくことをオススメします。
この記事がいいなと思いましたらツイッター(@nishina555)のフォローもよろしくお願いします!