📝

textlint-rule-prhを使用したMarkdownの校正

2023/08/27に公開

概要

Zennの記事を書く時にAWSのアカウントIDをダミーに置き換えたかったので、textlintをインストールし、textlint-rule-prhルールを追加してみました。

環境

前提環境

以下がインストール済みの環境で実施しました。

  • macOS Ventura 13.2.1
  • nodebrew 1.2.0
  • node v20.5.1
  • npm 9.8.0

本記事でインストールするもの

以下は本記事の中でインストールします。

  • textlint v13.3.3
  • textlint-rule-prh 5.3.0
  • vscode-textlint v0.11.0

textlintのインストール

% npm i -g textlint
% npx textlint --version
v13.3.3

textlintの初期化

% cd ~/workdir
% npx textlint --init    
.textlintrc.json is created.

% cat .textlintrc.json 
{
  "plugins": {},
  "filters": {},
  "rules": {}
}

校正ルールの追加

校正ルールを設定するためにtextlint-rule-prhをインストールします。

% npm i -g textlint-rule-prh

AWSのアカウントIDを例示用に置き換えるルールとして以下のown_rules.ymlファイルを作成しました。
AWSアカウントIDである111111111111が記載されている時に、123456789012に置き換えるためのルールです。

own_rules.yml
version: 1
rules:
  - expected: '123456789012'
    pattern: '111111111111'

作成したown_rules.ymlを.textlintrc.jsonに記載します。

.textlintrc.json
{
  "plugins": {},
  "filters": {},
  "rules": {
    "prh": {
      "rulePaths": [
        "./own_rules.yml"
      ]
    }
  }
}

動作確認

動作確認用にtest.mdファイルを用意しました。

test.md
# AWSアカウントID
- AWSアカウントID: 111111111111

textlintコマンドでprhルールでエラーが表示されることが確認できました。

% npx textlint test.md

/Users/user/workdir/test.md
  2:15  ✓ error  111111111111 => 123456789012  prh

✖ 1 problem (1 error, 0 warnings)1 fixable problem.
Try to run: $ textlint --fix [file]

--fixオプションを指定することでファイルが修正されました。

% npx textlint --fix test.md

/Users/user/workdir/test.md
  2:15  ✔   111111111111 => 123456789012  prh

✔ Fixed 1 problem

% cat test.md 
# AWSアカウントID
- AWSアカウントID: 123456789012

VSCodeでの利用

続いてVSCodeでtextlintを使うための設定をします。

vscode拡張機能のインストール

vscode-textlint拡張機能をインストールします。

Config Pathの設定

vscode-textlintの設定で.textlintrc.jsonのパスを設定します。

VSCodeでの確認

VSCodeで編集中にエラーが表示されることを確認できました。

参考

https://zenn.dev/k_log24/articles/42194aa426e3b4

Discussion