textlint で文章校正する

公開日:

はじめに

技術ブログを運営していて、ある程度記事が増えてきました。そうなると表記のゆれが気になるようになってきました。

例えば、コンピューターなのかコンピュータなのか。

何かいい解決方法はないかと考えていたところ、textlint の存在を知ったので、導入してみました。

textlint とは?

textlint はテキストやマークダウンなどの文章を自動チェックし、文法や表記ゆれ、スタイルの整合性を校正する OSS です。プラグインとルールカスタマイズで幅広い校正に対応でき、CI や VSCode との統合もできます。

JavaScript、TypeScript のプロジェクトで使われます。

textlint · The pluggable linting tool for text and markdown

やりかた

1. 依存関係をインストール

まず依存関係をインストールします。

npm i -D textlint textlint-rule-preset-ja-spacing textlint-rule-preset-japanese textlint-rule-preset-ja-technical-writing

textlint の本体とルールセットです。

2. 設定ファイルを作成

設定ファイルを作成します。

npx textlint --init

.textlintrc.jsonが出来上がったら、ルールセットを有効化する。

{
  "plugins": {},
  "filters": {},
  "rules": {
    "preset-ja-technical-writing": true,
    "preset-japanese": true,
    "preset-ja-spacing": true
  }
}

ここまでくると、textlintを実行できるようになります。

npx textlint ./README.md

以下のような感じで帰ってくれば成功。

/path/to/README.md
   3:4   ✓ error  原則として、全角文字と半角文字の間にスペースを入れません。  ja-spacing/ja-space-between-half-and-full-width

✖ 5 problems (5 errors, 0 warnings)
✓ 4 fixable problems.
Try to run: $ textlint --fix [file]

3. npm の scripts に登録

CI のワークフローなどで実行したいので package.json の scripts に登録する。

以下はプロジェクト内のマークダウンファイル全てを textlint でチェックする。

{
  "scripts": {
    "textlint": "textlint './**/*.md'",
  },
}

これでnpm run textlintで全てのマークダウンファイルをチェックできる。

✖ 1559 problems (1559 errors, 0 warnings)
✓ 938 fixable problems.
Try to run: $ textlint --fix [file]

これは私の技術ブログのプロジェクトで実行した結果です。1599件のエラー。。。

4. VSCode 拡張

VSCode 拡張をインストールします。

textlint - Visual Studio Marketplace

ワークスペースのファイルに以下のように設定します。

XXX.code-workspace.json

{
  "settings": {
    "textlint.configPath": "./path/to/.textlintrc.json",
    "textlint.nodePath": "./path/to/node_modules",
    "textlint.languages": [
      "markdown"
    ]
  }
}

これで VSCode 上で赤くエラーが表示されます。

さいごに

既にたくさん記事がある状態で textlint を導入したので、エラーと警告が山ほど出てしまいました。でもこれで統一感のある文章を書いていく土台ができました。

これから少しずつエラーを解消してビルドのワークフローに組み込んでいきたいです。

この記事を書いた人

かい (@takasqr)

ソフトウェアエンジニア。個人的にアプリを作って得た知見をブログに書いています。