はんなりと、ゆるやかに

アジャイル、スクラムが好きなITエンジニアが日々から学んだことをアウトプット

textlintを使って文章を自動でチェック!

はじめに

textlint というオープンソースの文章チェックツールを知りましたので早速試してみました。
今回は使っただけで使いこなせていませんが、ブログ書くときだけでなく、設計資料とか文章を書くときは便利になりそうです。

github.com

インストールの前に

textlintを使う場合はNode.jsが必要になります。
Node.jsは以下のサイトからダウンロードできました。

nodejs.org

textlintのインストール

コンソール(私はWindowsなのでPowerShell)でコマンドを実行するとインストール完了です。

npm install textlint --global

しかし、textlintをインストールしただけではルールがなく、校正ができません。
ルールは自分でも作ることができますし、公開されているルールを使うこともできます。
私は公開されているルール(textlint-rule-preset-japanese)を使用しました。
Collection of textlint rule · textlint/textlint Wiki · GitHub

ルールの適応

PowerShell でコマンドを実行してルールのダウンロードをします。

npm install --global textlint-rule-preset-japanese

その後、「.textlintrc」という設定ファイルを作ってルールを記載します。
※今回のような拡張子だけのファイル名をWindowsで作成する場合は「.textlintrc.」と末尾に「.」を付けると良いです。
 (困って調べました(Windows上で拡張子だけのファイルを作成する方法 | エンジニアの休日))

設定ファイルの中身は以下のように使いたいルールを記載してtrue/falseを設定します。

{
  "rules": 
  {
    "preset-japanese" : true 
  }
}

実行

textlint <ファイル名> を実行することでチェックができます。

textlint .\XXX.md

結果

前回の記事をチェックしてみたところ、3件のエラーが見つかりました。
ゲーミフィケーションで熱中するお片付け - はんなりと、ゆるやかに

6:57  error  一つの文で"、"を3つ以上使用しています preset-japanese/max-ten  
26:48  error  一つの文で"、"を3つ以上使用しています preset-japanese/max-ten  
39:85  error  一文に二回以上利用されている助詞 "に" がみつかりました。 preset-japanese/no-doubled-joshi
✖ 3 problems (3 errors, 0 warnings)  

preset-ja-technical-writingという技術文書向けのルールで実行した結果、17件のエラーが見つかりました。

2:36  error 弱い表現: "思う" が使われています。 preset-ja-technical-writing/ja-no-weak-phrase
6:57  error 一つの文で"、"を3つ以上使用しています preset-ja-technical-writing/max-ten
6:19  ✓ error 一つ => 1つ 数量を表現し、数を数えられるものは算用数字を使用します。任意の数に置き換えても通用する語句がこれに該当します。 preset-ja-technical-writing/arabic-kanji-numbers
16:60  error    "一つ" が連続して2回使われています。 preset-ja-technical-writing/ja-no-successive-word
20:32  ✓ error 十回 => 10回 数量を表現し、数を数えられるものは算用数字を使用します。任意の数に置き換えても通用する語句がこれに該当します。 preset-ja-technical-writing/arabic-kanji-numbers
23:31  ✓ error 一つ => 1つ 数量を表現し、数を数えられるものは算用数字を使用します。任意の数に置き換えても通用する語句がこれに該当します。 preset-ja-technical-writing/arabic-kanji-numbers
26:48  error 一つの文で"、"を3つ以上使用しています preset-ja-technical-writing/max-ten
29:28  ✓ error 一つ => 1つ 数量を表現し、数を数えられるものは算用数字を使用します。任意の数に置き換えても通用する語句がこれに該当します。 preset-ja-technical-writing/arabic-kanji-numbers
35:37  error 弱い表現: "思います" が使われています。 preset-ja-technical-writing/ja-no-weak-phrase
36:3   ✓ error 一つ => 1つ 数量を表現し、数を数えられるものは算用数字を使用します。任意の数に置き換えても通用する語句がこれに該当します。 preset-ja-technical-writing/arabic-kanji-numbers
36:5   error "一つ" が連続して2回使われています。 preset-ja-technical-writing/ja-no-successive-word
36:58  error 弱い表現: "思います" が使われています。 preset-ja-technical-writing/ja-no-weak-phrase
39:85  error  一文に二回以上利用されている助詞 "に" がみつかりました。 preset-ja-technical-writing/no-doubled-joshi
40:3   ✓ error 一つ => 1つ 数量を表現し、数を数えられるものは算用数字を使用します。任意の数に置き換えても通用する語句がこれに該当します。 preset-ja-technical-writing/arabic-kanji-numbers
40:5   error "一つ" が連続して2回使われています。 preset-ja-technical-writing/ja-no-successive-word
40:56  error 弱い表現: "思います" が使われています。 preset-ja-technical-writing/ja-no-weak-phrase
43:34  error  弱い表現: "かも" が使われています。 preset-ja-technical-writing/ja-no-weak-phrase

✖ 17 problems (17 errors, 0 warnings)

さいごに

textlintを使って静的解析すると自分では気づかない間違いに気づけます。
すでにあるルールを使うことで実行も簡単なので今後も継続して使っていきます。
※この文章もtextlintを実行して、指摘がなくなるようにしました。