3この記事は1751文字で約5分で読めます日本語って難しいですね。結論textlint今までこのブログは日本語として伝わりにくい表現や表記揺れをあまり意識してなかったのですが、色々あってちゃんとした技術情報の発信のためには正しい日本語を使うことも大切なんだなと感じたこの頃です。私は日本語をいい加減に学んでしまっているため自分の書いた文章が正しいのかどうかわからないのである程度自動で校正してくれるツールを探したところtextlintというツールがあることを知りました。textlintとは、JavaScriptで書かれたオープンソースのテキスト改行ユーティリティで文章をあらかじめ定義したルールに基づいて校正してくれます。このブログはTypeScript製なのでnpmでtextlintを入れてしまえば良さそうです。SmartHRさんがプリセットを公開していて、これがかなり便利なので基本的にばこちらを使っていきます。.textlintrcで設定します。次のような設定にしました。}}基本的にはtextlint-rule-preset-smarthrをベースに校正を実施します。コード→文章文末までという構成が多いためja-no-mixed-periodのallowPeriodMarksに「、」や「↓」を追加してます。可愛らしい表現を心がけるためallowEmojiAtEndを許可にして💦のような絵文字で文末を締めくくることができるようにしてます。(よってサロゲートペアの未使用チェックのtextlintは使用してません。クレームが来たら使用することにします。)そのほか細かいルールとしては、prhを使って表記揺れをチェックします。基本はSmartHRのプリセットで押さえてますが、独自の表記揺れをYAMLで定義し設定してます。no-start-duplicated-conjunctionを使って、接続語の連続をチェックします。「また〜また〜」みたいなやつです。no-mixed-zenkaku-and-hankaku-alphabetを使って全角のアルファベットを禁止にしてます。no-hoso-kinshi-yogoを使って放送禁止用語をチェックしてます。引っ掛かりますので、allowlistと組み合わせて使ってます。ja-no-inappropriate-wordsを使って不適切表現をチェックしてます。terminologyを使って技術用語の表記ミスを防いでます。(Node.jsと書くべきところをnode.jsと書いている、など。)@textlint-rule/no-duplicate-abbrを使って同じ意味の重複語をチェックしてます。頭痛が痛い、みたいなやつです。filterを利用していて、コメントでルールの無効化を許可。allowlistで(主に放送禁止用語の)許可をしてます。許可リストはこちら、品がないですね。scriptへ次のようなスクリプトを仕込んであげれば簡単に校正ができるようになります。},CIに乗せるCIに乗せるときに便利なのがreviewdogです。こちらのブログを参考にパイプラインを作りました。ありがとうございます。-reporter="github-pr-review"これで、ブログ記事を書いてPRを出すことでPRコメントで校正を実施してくれるようになりました。BadGatewayが出て正しく辞書ファイルを読み込むことができなくなってましたのでforkして参照先URLを変更のうえ利用してます。