ブログ記事にtextlintを適用してみた

どうせブログ記事を書くなら読みやすい文章を書きたい、自然言語を書くときにもlintが欲しい、ということでtextlintを使ってみることにしました。

あまり推奨はされていない様ですが、今回は以下の様にtextlintをグローバルにインストールしました。

npm install -g textlint

textlintのローカルの設定ファイルである .textlintrc の雛形は以下の様に生成できます。

npx textlint --init

今回、 .textlintrc は以下の様に設定しました。

{
  "plugins": ["org"],
  "filters": {},
  "rules": {
    "preset-ja-spacing": true,
    "preset-ja-technical-writing": true,
    "spellcheck-tech-word": true
  }
}

org-modeを扱うための設定

textlintでは入力ファイルをパースして構文木を生成するためのプラグインを指定する必要があります。 このブログはEmacsのorg-modeで書いているので、textlint-plugin-orgを指定する必要があります。インストールは以下の様に行います。

npm install -g textlint-plugin-org traverse

.textlintrc の以下の部分がorg-modeを使うための指定になります。

"plugins": ["org"],

lintのルール

今回はこのQiita記事に倣って、 preset-ja-spacingpreset-ja-technical-writingspellcheck-tech-word の3つのルールを使うことにしました。 当然ですがこれらのルールは和文向けのものなので、他の言語のlintを行う際には別のルールを指定する必要があります。例えば英文のlintを行う場合には英文のためのルールを使用する必要があります。 英文のルールの例はこのブログ記事にあります。今回使うlintのルールのインストールは以下の様に行います。

npm install -g textlint-rule-preset-ja-spacing textlint-rule-preset-ja-technical-writing textlint-rule-spellcheck-tech-word

.textlintrc の以下の部分がlintのルールの指定になります。

"rules": {
  "preset-ja-spacing": true,
  "preset-ja-technical-writing": true,
  "spellcheck-tech-word": true
}

使い方

以上の様に .textlintrc を設定してしまうと、後は以下の様にtextlintを使いたいファイル名を指定するだけでlintを行うことができます。

textlint blog.org

使ってみた感想

多少textlintを試してみた範囲では、概ね良い指摘をする様に見えます。例えば表記揺れの修正や100文字を越える様な長過ぎる文の指摘などが有用そうです。

一方変な指摘もあり、少なくとも目を瞑って textlint --fix するだけで必ずしも文書の品質が向上する訳ではなさそうです。例えば「リワード」が「リWord」に置き換えられてしまったり、これはorg-modeの扱いが不得手なだけかもしれませんが、URL中の%などの文字列を書き換えることがあったりします。