textlintで日本語の校正を行う
はじめに
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
校正ルールのパッケージをインストール
以下のページで自分に合ったパッケージをインストールします。
今回は以下のパッケージをインストールしました。
パッケージ名 | 概要 |
---|---|
textlint-rule-preset-ja-technical-writing |
技術文書向けのtextlintルールプリセット |
textlint-filter-rule-allowlist |
任意の単語を校正の対象外とするフィルタ |
textlint-filter-rule-comments |
textlintを無効化するためのコメントを記述できるようにするためのフィルタ |
npm i -D textlint-rule-preset-ja-technical-writing textlint-filter-rule-allowlist textlint-filter-rule-comments
.textlintrcの作成
以下のコマンドを実行し、インストールしたパッケージを適用するための定義ファイル、.textlintrc.json
を作成します。
npx textlint --init
textlint-filter-rule-commentsプラグインの有効化
マークダウンファイルにコメントを記述することでtextlintを部分的に無効化できるプラグインを有効化します。
{
"plugins": {},
- "filters": {},
+ "filters": {
+ "comments": true
+ },
"rules": {
"preset-ja-technical-writing": true
}
}
アコーディオンの記法を許可
Zennの独自の記法である、アコーディオンを使った場合でもエラーとならないよう、以下の内容でtextlintrc.json
を修正します。
アコーディオンとは、このように折り畳みができるUIです。
アコーディオン例
ここはアコーディオンの中身です。
{
"plugins": {},
"filters": {
- "comments": true
+ "comments": true,
+ "allowlist": {
+ "allow": [
+ "/^::::/m"
+ ]
+ }
+ },
"rules": {
"preset-ja-technical-writing": true
}
}
package.jsonの修正
package.json
に以下のスクリプトを追加します。以下は、Zennの記事であるarticles
ディレクトリ以下の.md
ファイルを対象に校正する例です。
{
"scripts": {
...
+ "lint": "textlint articles/**/*.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
のルール変更例は以下のページに記載されています。
ルール適用箇所の指定
特定の箇所に対してtextlintのルールを適用しない時は、以下のように<!-- textlint-disable -->
と<!-- textlint-enable -->
で挟みます。
ここは校正の対象です。
<!-- textlint-disable -->
ここは校正の対象外です。
<!-- textlint-enable -->
ここは校正の対象です。
変更履歴
日付 | 変更内容 |
---|---|
2023/04/07 | 初版作成 |
2023/04/09 |
textlint-filter-rule-allowlist を導入し、Zennのアコーディオン表記に対応する内容に更新 |
2024/08/07 |
textlint-filter-rule-comments の追加及び設定方法を追記 |
Discussion