textlint-rule-prhで表記揺れも校正する

目次
はじめに
先日、MarkdownやMDXファイル向けにtextlintを導入しました。
今回はさらにtextlint-rule-prhを使って、ICS MEDIAさんが公開しているVS Codeの拡張機能「テキスト校正くん」と同等の表記揺れ校正ルールも設定します。
prhとは
yaml形式のルール定義にしたがって校正してくれるツールです。
たとえば、下記のルール定義であればJavaScriptに表記を統一できるようになります。
rules: - expected: JavaScript patterns: - Javascript - JAVASCRIPT - Java Script
また、ルールセット(yamlファイル)をimportして拡張可能なので、好きなセットを組み合わせて使うことができます。
なお、前回の記事の中でインストールしているパッケージにもprh
を利用したものは含まれています。
text-rule-prhとは
prh
をtextlintでも使えるようにしてくれるツールになります。
採用するprhルールセット
仕様自体は大変わかりやすいのですが、一から作るのは間違いなく骨が折れる作業なので、できれば先人のテンプレートを参照したいところです。
prhパッケージの中にもかなり大きめなルールセットWEB+DB_PRESS.ymlが含まれているのですが、メンテナンスが滞っている(もともと別の方から許諾をもらって再配布している様子)ようです。 また、実際にこちらのルールセットを試しましたが、ルールがかなり厳しめな印象を受けました。
そこで今回は、ある程度ルールの取捨選択が可能なtextlint-rule-preset-icsmediaルールセットを使うことにしました。 VS Code拡張機能「テキスト校正くん」が参照しているルールセットと同じものです。 どちらのリポジトリもICS MEDIAさんがMITライセンスで公開されているものになります。 大感謝です🙏
textlint-rule-prhの導入
インストール
textlint-rule-prhとtextlint-rule-preset-icsmediaをインストールします。
npm i -D textlint-rule-prh github:ics-creative/textlint-rule-preset-icsmedia
textlintの設定
textlint-rule-preset-icsmediaのprhルールが保存されているパスを.textlintrc.json
に追記します。
用意されている全ルールを適用したい方はnode_modules/textlint-rule-preset-icsmedia/dict/prh.yml
を指定すれば完了です。
{ "rules": { "prh": { "rulePaths": ["./node_modules/textlint-rule-preset-icsmedia/dict/prh.yml"] } }}
必要な設定のみimportする場合
textlint-rule-preset-icsmediaのルールセットは、パッケージ内のprh.yml
から同階層のymlファイルをimport
する形で書かれています。
version: 1
# 校正辞書はモジュールとして分離してますimports: # 誤字 - ./prh_idiom.yml # ひらく漢字 - ./prh_open_close.yml # 冗長な表現 - ./prh_redundancy.yml # 重言 - ./prh_duplicate.yml # 外来語カタカナ表記 - ./prh_cho_on.yml # 固有名詞 - ./prh_corporation.yml # 技術用語 - ./prh_web_technology.yml
私の場合、これと同じような下記prh.yml
ファイルをプロジェクトルートに作り、必要なルールセットのみを読み込みました。
それぞれのパスはプロジェクトルートからの相対パスである点に注意してください。
version: 1
# 校正辞書はモジュールとして分離してますimports: # 誤字 - ./node_modules/textlint-rule-preset-icsmedia/dict/prh_idiom.yml # ひらく漢字(一時的に無効化) # - node_modules/textlint-rule-preset-icsmedia/dict/prh_open_close.yml # 冗長な表現 - ./node_modules/textlint-rule-preset-icsmedia/dict/prh_redundancy.yml # 重言 - ./node_modules/textlint-rule-preset-icsmedia/dict/prh_duplicate.yml # 外来語カタカナ表記(一時的に無効化) # - node_modules/textlint-rule-preset-icsmedia/dict/prh_cho_on.yml # 固有名詞 - ./node_modules/textlint-rule-preset-icsmedia/dict/prh_corporation.yml # 技術用語 - ./node_modules/textlint-rule-preset-icsmedia/dict/prh_web_technology.yml
そして、textlintの設定ファイルにも新しく作ったprh.yml
ファイルのパスを指定します。
{ "rules": { "prh": { "rulePaths": ["./prh.yml"] } }}
これで導入したいprhルールセットを定義できました。
おわりに
textlint-rule-preset-icsmediaの固有名詞・技術用語ルールセットは本当にありがたいですね。 網羅されていない技術用語に関しては自分で新しくルールを作ってimportするなりして拡充するのもありです。
関連記事

