textlintでMarkdownの日本語文章を校正する
やりたいこと
本サイトの記事は全てMarkdown形式で執筆しているが、正しくない日本語を使ったり誤字脱字をすることが多々ある。
なので記事執筆中に自動でその文章を校正(あわよくば修正)してくれるようにしたい。
そこで色々調べていたらtextlintなるものを見つけたので試しに使ってみる。
textlintとは
文章の中の表記ゆれや不適切な言い回しを指摘・修正してくれる、構文解析ツール。
textlint は、JavaScript で書かれたオープンソースのテキストリンティングユーティリティです。 自然言語のテキストをリントするのは難しいですが、プラグ可能なアプローチでこの問題を解決しようとしています。
引用元:textlint · The pluggable linting tool for text and markdown
公式サイトの文章をそのまま日本語訳してみたが、その名の通りESLintやStylelintをはじめとしたLint系(静的解析ツール)の一種。もちろん日本語にも対応している。
それから任意のルールを設定することで校正を厳しく(甘く)することもできるため、企業独自にルールを定めて利用されることも多いらしい。
設定・使い方
1. textlintをインストール
2. 利用するルールをインストール
今回は文章中の表記ゆれをチェックしてくれる@textlint-ja/textlint-rule-no-synonymsを使ってみる。
3. コマンドを叩く
rule
オブションと先ほどのルールを指定し、コマンドを叩いてみる。
するとこのようにしっかり警告が出てくれた。
ちなみに表記ゆれの判定対象はあくまで本文(見出しや段落内)のみで、コードブロック内の文言に関しては勝手に除外してくれるようになっていた、凄い。
ちなみに修正も同時に行なって欲しい場合はfix
オブションを付けてあげればOK。
ルールを複数設定する方法
先ほどのようにコマンドの引数としてルールを指定する方法だと、複数のルールを指定したい場合に不便になってしまう。
そこで、専用の設定ファイルでルールを管理する方法を試してみる。
1. 設定ファイルの作成
を叩くことで.textlintrc.json
が作成される。
2. ルールの追記
そうしたらインストールした任意のルールを、上のように.textlintrc.json
に追記する。
ルールに関してはルール一覧から確認できるが、どれを選べばいいか正直迷ったので下記記事を参考にした。
3. コマンドを叩く
あとは同じようにコマンドを叩けばOK。今回はrule
オブションやルールを指定する必要は無い。
余談
筆者が指定したルール
ちなみに自分の場合、色々試してみたところ結局上のルールに落ち着いた。
というのも、厳しくしすぎると都度怒られて自由に文章が書けないという事態に陥ってしまい本末転倒になる。そこで下記のような、個人ブログにとって必要最低限のものだけチェックすることにした。
- さ抜き・ら抜き言葉
- アルファベット全角・半角の混合
- 不適切表現
IntelliJ系のエディタで使う
Intellijのファイル監視機能(File Watchers)を使って、Markdownファイルを保存するたびに自動で校正してくれるようにする。
「File Watchers」に上のように設定を追加し、「保存時のアクション」にその追加した設定を指定する。
すると無事、Markdownファイル編集後に都度校正が行われるようになった。