🌟

textlintで日本語の校正を行う

2023/04/07に公開

はじめに

Zennに登録し文章を書くことになったので、公開前に日本語の校正をしておきたいと思ったのでtextlintを導入しました。
Zennの記事は、GitHub連携をしているので、以下のフォルダ構成になっています。
(今回扱う記事のファイル名は『65886897cefa1e.md』とします。)

.
├── articles               # Zennの記事を格納するフォルダ
│   └── 65886897cefa1e.md  # Zennに投稿される1つ分の記事
├── node_modules
├── package-lock.json
└── package.json

以下は、このZennの記事を校正するためのtextlintの導入方法です。

作業ディレクトリにpackage.jsonがない場合は、以下のコマンドを実行し、package.jsonを作成しておきます。

# package.jsonがない場合に実施
npm init -y

環境

  • Windows 11 Pro 22H2
  • Visual Studio Code 1.77.0
  • node 16.16.0
  • npm 8.8.0

textlintの導入

textlintのインストール

textlintをインストールします。

npm i -D textlint

校正ルールのパッケージをインストール

以下のページで自分に合ったパッケージをインストールします。

https://github.com/textlint/textlint/wiki/Collection-of-textlint-rule

今回は以下のパッケージをインストールしました。

パッケージ名 概要
textlint-rule-preset-ja-technical-writing 技術文書向けのtextlintルールプリセット
textlint-filter-rule-allowlist 任意の単語を校正の対象外とするフィルタ
npm i -D textlint-rule-preset-ja-technical-writing textlint-filter-rule-allowlist

.textlintrcの作成

以下のコマンドを実行し、インストールしたパッケージを適用するための定義ファイル、.textlintrc.jsonを作成します。

npx textlint --init

Zennの独自の記法である、アコーディオンを使った場合でもエラーとならないよう、以下の内容でtextlintrc.jsonを修正します。

アコーディオンとは、このように折り畳みができるUIです。

アコーディオン例

ここはアコーディオンの中身です。

.textlintrc.json
{
  "plugins": {},
- "filters": {},
+ "filters": {
+   "allowlist": {
+     "allow": [
+       "/^::::*$/m"
+     ]
+   }
+ },
  "rules": {
    "preset-ja-technical-writing": true
  }
}

package.jsonの修正

package.jsonに以下のスクリプトを追加します。以下は、Zennの記事であるarticlesディレクトリ以下の.mdファイルを対象に校正する例です。

package.json
{
  "scripts": {
    ...
+    "lint": "textlint articles/**/*.md"
  }
}

校正

正常に動作するか確認するため、記事に以下のような文章を書き、先ほど記述したスクリプトを実行してみます。

65886897cefa1e.md
太郎は、リンゴを食べれる。
npm run lint

以下の出力結果が得られ、ルールに違反していることが確認できました。

  97:5   error  Disallow to use 半角カタカナ: "リンゴ"  ja-technical-writing/no-hankaku-kana
  97:12  error  ら抜き言葉を使用しています。          ja-technical-writing/no-dropping-the-ra

以後は、記事を書いたらnpm run lintを実行して校正内容を確認する運用になります。

補足

ルールの調整

デフォルトのルールで運用しづらい場合は、.txtlintrcにルールを追加することで調整できます。
textlint-rule-preset-ja-technical-writingのルール変更例は以下のページに記載されています。

https://github.com/textlint-ja/textlint-rule-preset-ja-technical-writing#ルール一覧

ルール適用箇所の指定

特定の箇所に対してtextlintのルールを適用しない時は、以下のように<!-- textlint-disable --><!-- textlint-enable -->で挟みます。

65886897cefa1e.md
ここは校正の対象です。
<!-- textlint-disable -->
ここは校正の対象外です。
<!-- textlint-enable -->
ここは校正の対象です。

変更履歴

日付 変更内容
2023/04/07 初版作成
2023/04/09 『textlint-filter-rule-allowlist』を導入し、Zennのアコーディオン表記に対応する内容に更新

Discussion