textlint-rule-prh を使って表記ゆれをチェックする

TextLint のルールである textlint-rule-prh を導入すると、proofread-helper という校正補助ツールの設定ファイルを活用して表記ゆれをチェックすることができるので試してみた。

proofread-helper は、期待する単語と表記ゆれを辞書として作っておいてチェックするツール。このツールのために作成する prh.yml を使い回して TextLint でチェックできるのが textlint-rule-prh パッケージ、というワケだ。

パッケージのインストール

まずは textlint 本体と textlint-rule-prh をインストールする。

$ npm install -D textlint textlint-rule-prh

.textlintrc を設定する

次に、.textlintrc で、同ディレクトリ (プロジェクトディレクトリのルート) にある prh.yml を参照してチェックするよう指定する。

{
  "rules": {
    "prh": {
      "rulePaths" :["./prh.yml"]
    }
  }
}

prh.yml を作成する

そしたら、表記ゆれを定義する辞書を作成する。

# prh のバージョン指定
version: 1

# ルール定義
rules:
  # expected のみ書くと、大文字小文字・全角半角が期待どおりかをチェックしてくれる
  - expected: Cookie
  
  # 変換結果に対してのテストを記述する場合。「from」が「expected」と同値である「to」にするべき単語として検出されるか
  - expected: jQuery
    specs:
      - from: jquery
        to:   jQuery
      - from: JQUERY
        to:   jQuery
      # もし to が誤っているとルールのロードに失敗するので、ルールのテストが書ける
  
  # pattern にマッチするものは expeceted が本来の表記として統一ができる
  - expected: デフォルト
    pattern:  ディフォルト
  
  # 複数のパターンを書く場合
  - expected: ハードウェア
    patterns:
      - ハードウエアー
      - ハードウェアー
      - ハードウエア
      # 正規表現に変換する都合上、より長いものを先に書いたほうがよい

詳しい書き方は以下を参考にすると良い。

実際に TextLint をかけてみる

package.json に、ローカルインストールした textlint を実行するために textlint コマンドを叩くタスクを作っておく。

"scripts": {
  "textlint": textlint"
}

「JQUERY をディフォルトで採用するシステムのハードウエアーが故障した」なんていう一文を test.md に書いて、以下のコマンドを叩いてみる。

$ npm run textlint test.md

これで「JQUERY」「ディフォルト」「ハードウエアー」を、それぞれ「jQuery」「デフォルト」「ハードウェア」に直せ、とエラーが出るはずだ。

AutoFixer が付いているので、以下のように --fix オプションを指定すると自動修正もできる。

# npm-scripts にオプションを渡す場合は「--」を書いてから書く
$ npm run textlint -- --fix test.md

これでイイカンジ。