😄

textlintを導入し、文章校正をする

2022/05/05に公開

最近記事や手順書を作成する機会が増えているのですが、文章が問題ないかのチェックが大変です。

読み手がいる以上、読みやすい文章で書くことはとても必要ですが、セルフチェックだとなかなか行き届かないもの。

そこで今回は Node.js のパッケージである textlint を使用し、文章を校正するようにしてみました。

よく調べてみると、textlint を利用している企業は数多く、個人利用でも積極的に使いたいなと思いました。

textlintを使っている企業例

textlintとは

そもそも textlint とは何なのかを説明する必要がありますね。

Lint と呼ばれる静的解析ツールは JavaScript を使って開発している人にとってはお馴染みです。

今回の textlint は校正ルールを提供されているルールや自作含め、自由自在にカスタマイズし、独自の校正ルールを組むことが可能になります。

Githubにもこう書かれています。

The pluggable linting tool for text and markdown.
textlint is similar to ESLint, but it's for use with natural language.

ほかの自然言語でも多くのルールが提供されているということですね。

設定&利用方法

textlint を使用するには Node.js の準備が必要になりますで、あらかじめインストールしておいてください。

  1. npm の初期化処理
npm init --yes
  1. textlint のインストール
npm install textlint
  1. 利用したいルールのインストール

ここで、textlint に対し使用したいルールのインストールも併せて行います。

例えば、一文に利用できる、の数をチェックするルールを適用させたいとした場合、textlint-rule-max-tenをインストールします。

npm install textlint-rule-max-ten
  1. textlint の実行

textlint を実行したい時は、npxコマンドを利用します。

npx textlint --rule textlint-rule-max-ten articles/**

実際にエラーを起こすとこのような感じになります。

ただし、ルールが増えていくたびにつれて実行コマンドにルール名を記載しなければならくなるため、コマンドが長くなってしまいます。

npx textlint --rule textlint-rule-max-ten textlint-rule-no-dropping-the-ra articles/**

そのため、複数ルールでチェックしたい時は、.textlintrcという設定ファイルを作成し、コマンドから分離して管理することが可能となります。

{
  "rules": {
    "textlint-rule-no-dropping-the-ra": true
  }
}

正直ルールはたくさんあるので、どれが最適解なのかは今も模索中です。

フィルタールール

校正ルールの他、状況に応じては適用ルールを無視させたい時もあるはずです。

その時は、フィルタールールを利用するのが良いです。

  1. フィルタールールのインストール
npm install textlint-filter-rule-comments
  1. .textlintrc に filters フィールドを追加
{
  "rules": {
    "textlint-rule-no-dropping-the-ra": true
  },
  "filters": {
    "comments": true
  }
}

下記のようにコメントでルール適用変えることが可能となります。

<!-- textlint-disable -->
食べれる
<!-- textlint-enable -->
来れる

その他機能

htmlファイルのtextlint有効化

標準で textlint は html ファイルに対応していないので、下記パッケージを入れることで対応可能となります。

npm install textlint-plugin-html
{
  "rules": {
    "textlint-rule-no-dropping-the-ra": true
  },
  "filters": {
    "comments": true
  },
  "plugins": [
    "html"
  ]
}

自動修正

エラーが発生した際、発生した内容を修正が可能なルールもあります。その場合はコマンドに--fixのオプションを追加することで自動修正が可能となります。

VSCodeを利用したtextlint

VSCode を利用して textlint を実行する拡張機能があります。

VSCode のマーケットプレイス・拡張機能で「textlint」を検索するとヒットします。

参考サイト

textlint公式サイト

textlintのルール一覧

めちゃくちゃ多い...。

textlintの適用ルール参考

GitHubで編集を提案

Discussion