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

投稿日
2025年1月3日
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-prhtextlint-rule-preset-icsmediaをインストールします。

Terminal window
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を指定すれば完了です。

.textlintrc.json
{
"rules": {
"prh": {
"rulePaths": ["./node_modules/textlint-rule-preset-icsmedia/dict/prh.yml"]
}
}
}

必要な設定のみimportする場合

textlint-rule-preset-icsmediaのルールセットは、パッケージ内のprh.ymlから同階層のymlファイルをimportする形で書かれています。

2025-01-02-icsmedia-preset

prh.yml
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ファイルをプロジェクトルートに作り、必要なルールセットのみを読み込みました。 それぞれのパスはプロジェクトルートからの相対パスである点に注意してください。

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ファイルのパスを指定します。

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

これで導入したいprhルールセットを定義できました。

おわりに

textlint-rule-preset-icsmediaの固有名詞・技術用語ルールセットは本当にありがたいですね。 網羅されていない技術用語に関しては自分で新しくルールを作ってimportするなりして拡充するのもありです。

関連記事