はじめに
技術ブログを運営していて、ある程度記事が増えてきました。そうなると表記のゆれが気になるようになってきました。
例えば、コンピューター
なのかコンピュータ
なのか。
何かいい解決方法はないかと考えていたところ、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 を導入したので、エラーと警告が山ほど出てしまいました。でもこれで統一感のある文章を書いていく土台ができました。
これから少しずつエラーを解消してビルドのワークフローに組み込んでいきたいです。