ブログ記事に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-spacing
、 preset-ja-technical-writing
、 spellcheck-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中の%などの文字列を書き換えることがあったりします。