技術をかじる猫

適当に気になった技術や言語、思ったこと考えた事など。

プレーテキストを校正チェックする

Word などに校正ツールはますが、Markdown や ReStructuredText などのプレーンテキストを校正する手段には乏しいです。
まさかこのためだけに pandoc で word ファイルを作るとか、ワードを起動するとか、腹立たしいことこの上ありません。

そこで、ツールを利用して文章チェックを行う事を考えます。

これが Textlint です。

検証した環境は

  • nodejs : v14.15.2
  • npm: 6.14.9

まずはインストール

npm install -g \
    textlint \
    textlint-rule-preset-ja-spacing \
    textlint-rule-preset-ja-technical-writing \
    textlint-rule-spellcheck-tech-word \
    textlint-rule-no-mix-dearu-desumasu

これで必要分はインストール済み。

セットアップ

これは最初にコマンド textlint --init を実行すると、.textlintrc ファイルが作成されます。
ここに以下のような設定を行いました

{
  "filters": {},
  "rules": {
    "preset-ja-spacing": true,
    "preset-ja-technical-writing": true,
    "spellcheck-tech-word": true,
    "no-mix-dearu-desumasu": true
  }
}

これで設定完了。

実行

ということで、シンプルに以下のような文章を食わせてみました

# Mockpex について

Mockpex は Salesforce テスト用ライブラリです。  
用途として、Apex でのテストコードを実装するにあたり、各種モックアップやスタブ作成の支援を行います。

さぁこれでどう出るか?

$ textlint README.md

/mnt/c/Workspace/Mockpex/Mockpex/README.md
  3:8   ✓ error  原則として、全角文字と半角文字の間にスペースを入れません。
    ja-spacing/ja-space-between-half-and-full-width
  3:10  ✓ error  原則として、全角文字と半角文字の間にスペースを入れません。
    ja-spacing/ja-space-between-half-and-full-width
  3:21  ✓ error  原則として、全角文字と半角文字の間にスペースを入れません。
    ja-spacing/ja-space-between-half-and-full-width
  4:11  ✓ error  原則として、全角文字と半角文字の間にスペースを入れません。
    ja-spacing/ja-space-between-half-and-full-width
  4:45  error    【dict5】 "支援を行う"は冗長な表現です。"支援する"など簡潔な表現にすると文章が明瞭になります
。
解説: https://github.com/textlint-ja/textlint-rule-ja-no-redundant-expression#dict5  ja-technical-writing/ja-no-redundant-expression

✖ 5 problems (5 errors, 0 warnings)
✓ 4 fixable problems.
Try to run: $ textlint --fix [file]

うーんなかなか心に来る指摘をありがとう(TT