textlint を使って文章校正を行う
ブログを書く際に、textlint を使って文章の校正を自動でできるように設定しました。
以下に npm を使って textlint の設定を行う際の手順をメモしておきます。
textlint のインストール
特にデプロイ環境には不要なはずなので、devDependencies に追加します。
npm install -D textlint
校正ルールの設定
校正ルールを自分で作成することもできますが結構大変です。 なので、すでに用意されているプリセットを編集して使うのがおすすめです。
ここでは以下のものを使います。日本語の技術文書を書く際のルールプリセットです。
https://github.com/textlint-ja/textlint-rule-preset-ja-technical-writing
インストール
npm install -D textlint-rule-preset-ja-technical-writing
設定
.textlintrc
を作成して設定します。
{
"rules": {
"preset-ja-technical-writing": true
}
}
ルールのカスタマイズ
デフォルトではルールがかなり厳しいです。設定を変更することで自分好みに変更できますので、カスタマイズしましょう。
.textlintrc
を編集して設定を行うことができます。
たとえば、以下のルールを false にすることで、!
や?
を使えるようにします。
{
"rules": {
"preset-ja-technical-writing": {
"no-exclamation-question-mark": false,
}
}
}
preset-ja-technical-writing のルール一覧
デフォルトでは以下のルールが有効になっています。かなり厳しいですが、ちゃんと守ると個人的には読みやすくなりそうな印象です。むしろ普段から気をつけたいですね。
+ 1文の長さは100文字以下とする
+ カンマは1文中に3つまで
+ 読点は1文中に3つまで
+ 連続できる最大の漢字長は6文字まで
+ 漢数字と算用数字を使い分けます
+ 「ですます調」、「である調」を統一します
+ 文末の句点記号として「。」を使います
+ 二重否定は使用しない
+ ら抜き言葉を使用しない
+ 逆接の接続助詞「が」を連続して使用しない
+ 同じ接続詞を連続して使用しない
+ 同じ助詞を連続して使用しない
+ UTF8-MAC 濁点を使用しない
+ 不必要な制御文字を使用しない
+ 感嘆符!!、感嘆符??を使用しない
+ 半角カナを使用しない
+ 弱い日本語表現の利用を使用しない
+ 同一の単語を間違えて連続しているのをチェックする
+ よくある日本語の誤用をチェックする
+ 冗長な表現をチェックする
+ 入力ミスで発生する不自然なアルファベットをチェックする
+ 対になっていない括弧をェックする
実行するためのスクリプトの用意
textlint を簡単に実行できるよう、npm script にも設定しておきます。 npx を使って実行する形式でも問題ありません。
"scripts": {
"textlint": "./node_modules/.bin/textlint",
"textlint:diff": "./node_modules/.bin/textlint $(git diff master --name-only)",
}
これで以下のコマンドで textlint を実行できるようになりました。
--
に続ける形で対象のファイルやディレクトリを npm script に渡しましょう。
npm run textlint -- dir/
チェックに引っかかった項目と、行数や場所が表示されます。
実行結果が見にくい場合は -f pretty-error
などをオプションで渡すと出力の形式を設定できます。
単語の表記揺れのチェック
ついでに prh というツールを使って表記揺れを統一できるようにルールを追加します。
インストール
textlint から prh を利用できるようにツールを使います。
https://github.com/textlint-rule/textlint-rule-prh
npm install -D textlint-rule-prh
prh.yml の作成
prh.yml
を作成します。
例えば以下のようにすることで指定した単語の大文字小文字のチェックが適用されるようになります。
rules:
- expected: Cookie
- expected: Expo
pattern: expo
- expected: JavaScript
pattern: javascript
.texrlintrc の編集
.textlintrc
を編集して、 prh.yml
を利用し prh によるチェックが行われるように設定を追加します。
{
"rules": {
"preset-ja-technical-writing": {
"no-exclamation-question-mark": false,
},
"prh": {
"rulePaths": [ "./prh.yml" ]
}
}
}
終わりに
完璧ではありませんが textlint を使うことで、公開前に文章のチェックを行うことができるようになりました。 プログラムによって行われるので融通が聞かないところもありますが、明らかにおかしいところや冗長な部分に関してはしっかりチェックが行われます。
自分で見直しをするよりも正確ですし、楽ができるのでおすすめです。文章を書く人には是非取り入れて欲しいツールです。
この辺の npm ツールを簡単に取り入れられるのは、Gatsby ブログの便利なところだと感じてます。