proofread-helperを使って表記ゆれを検出する

以前から表記ゆれを検出するためのツールが欲しいなと思っていたのだが、「表記ゆれ ツール」でググるとGUIのソフトウェアとかブラウザから使うツールとかしかひっかからないので、実用するのはちょっと厳しいかなと二の足を踏んでいたわけですが、このたびproofread-helperがアンテナにひっかかったので試してみた。

インストール

WSLから実行したいのでWSL上で。

$ npm install -g prh

prh.ymlの作成と編集

nodenvを使ってるのでnodenv rehashしたあと

$ prh init

「WordPress」の表記ゆれを直してみたいので生成されたprh.ymlの末尾に以下の行を付け加えてみる。

  - expected: WordPress

英単語の場合はこれだけでアルファベットの大文字小文字の表記ゆれを検出してくれるようになる。

実行

$ prh src/base.re
src/base.re(220,1): wordPress → WordPress
src/base.re(222,1): wordPress → WordPress

おお2行見つかった。

タイポの検知

ついでに「WrodPress」というタイポがあったのでこれを検知できるようにしてみる。

  - expected: WordPress
    pattern: /wrodpress|wordpress/i

「wrodpress」だけにすると「WordPress」の大文字小文字の表記ゆれを検出してくれなくなるのでこういう正規表現で。

実行すると

$ prh src/base.re
src/base.re(220,1): wordPress → WordPress
src/base.re(222,1): wordPress → WordPress
src/base.re(227,1): WrodPress → WordPress

やったぜ。

置き換え

置き換えもできてしまう。

$ prh -r src/base.re
replaced src/base.re

楽ちん。

ただしこれには罠があり、URLの一部なども変換されてしまう。

「https://wordpress.org」が「https://WordPress.org」になるなど。

段落丸ごと無視する方法があるが、丸ごと無視してほしくはないので
URLはRe:VIEWの単語ファイルに登録して回避することにした。

URLの変更やミスがあった場合に一括で修正できるので一石二鳥。
と思いきやキーをタイポすると「missing word」で出力されてしまうという問題が。キーが見つからなかったらコンパイル失敗とかでもいい気がするが、とりあえず深追いはせず。
まあタイポは普通に書いててもあるし、むしろ見つけやすくなるのでOKということで。

VSCode上でリアルタイム校正

拡張でvscode-prh-extentionを入れるとVSCode上で校正が行われ、ひっかかった単語の下に波線が付く。
都度修正していけるので、ふだんは上の置き換えは使わなくてもすみそうだ。

prh.ymlは校正対象のファイルと同じフォルダに置くか、WorkSpaceの設定でファイルのパスを指定するかする必要がある。後者のやり方はパスの指定がイマイチよく分からなくて今のところできてない。

ちなみにWindows上にprhが入ってなくても動くので、拡張に全部含まれているのかな。

まとめ

なんだかいいかんじの校正環境が整った。

ちなみに技術書展応援祭技術をつたえるテクニック ~分かりやすい書き方・話し方~を買ったら書いてありました。この情報だけで1000円もと取った感ある。