textlintをVS Codeで使いmarkdownで記載している日本語校正を自動化しよう

2021-03-29

VSCodeを使って文書校正を自動化しよう

モチベーション

「お前の文書は見るに堪えない」 「テクニカルライティングがゴミ」 「日本語が死んでる」 私は、これらの言葉を様々な人達から頂きながら生きてきました。 テクニカルライティングは常に意識して文書を書いて初めて身につくものだと頭では理解しているつもりです。 しかし、Twitterや前略プロフィールみたいなサイトで培った文書力はゴミそのものです。

このブログを書くようになり、ゴミのような文書をせめてゴミ袋に入れるぐらいのレベルアップを図りたいと考えている。

とはいえ、願ったところで綺麗な文書を書くことは難しいもので、ここは1つ技術の恩恵に与ります。

textlintの導入

公式:textlint

textlint

導入にはnpmを使います。 校正したいテキストがあるフォルダに移動し、下記コマンドを実行する。

npm init --yes
npm install textlint  --save-dev
npm install @textlint/textlint-plugin-markdown --save-dev

textlintルールの導入

検索するとよく使われているtextlint用のルールを導入します。

textlint-rule-preset-JTF-style

textlint-ja/textlint-rule-preset-JTF-style

npm install textlint-rule-preset-jtf-style

このtextlint ruleはJTF日本語標準スタイルガイド(翻訳用)に準拠しているそうです。 日本翻訳連盟

style guide

textlint-rule-preset-ja-technical-writing

npm install textlint-rule-preset-ja-technical-writing 

textlint-ja/textlint-rule-preset-ja-technical-writing

技術文書を書くためのルールを定義している。 例えば、「1文の長さは100文字以下とする」や「ら抜き言葉」を抑できる。

textlint-rule-web-plus-db

npm install textlint-rule-web-plus-db

azu/textlint-rule-web-plus-db WEB+DB PRESS用語統一ルールに従い校正するためのプリセットです。 例えば、「PC」を「PC」と表示することなどを指摘してくれる。 このルールを適用することで、技術用語の表記ブレを減らすことが期待できる。

WEB+DB PRESS用語統一ルールはこちらに掲載されている。 inao/WEB+DB PRESS用語統一ルール

textlintの設定

ルールの適用は。textlintrcという設定ファイルに記載します。 下記コマンドを実行することで、設定ファイルを作できる。

textlint --init

できたtextlintrcファイルを開くとこのような記載になっている。

{
  "filters": {},
  "rules": {
    "preset-ja-technical-writing": true,
    "preset-jtf-style": true,
    "web-plus-db": true
  }
}

textlintの実行

コマンドラインで動作を確認します。 適当な。mdを書いてみます。

textlint --config .\.textlintrc .\なんか.md

実行するとルールに従い指摘が表示されます。

textlint --config .\.textlintrc .\なんか.md

E:\SourceCode\markdown\blog\なんか.md
   7:10  ✓ error  。」 => 」                                                                                                      web-plus-db
   7:10  ✓ error  文中にかぎかっこが入る場合は、閉じかっこの前に句点を打ちません。                                                jtf-style/4.1.1.句点(。)
   9:48  error    本文を敬体(ですます調)に統一して下さい。
本文の文体は、敬体(ですます調)あるいは常体(である調)のどちらかで統一します。
"である。"が常体(である調)です。                                    jtf-style/1.1.1.本文
   9:48  error    本文: "である"調 と "ですます"調 が混在
=> "ですます"調 の文体に、次の "である"調 の箇所があります: "である。"
Total:
である  : 2
ですます: 4
                                          ja-technical-writing/no-mix-dearu-desumasu
  10:42  error    本文を敬体(ですます調)に統一して下さい。
本文の文体は、敬体(ですます調)あるいは常体(である調)のどちらかで統一します。
"である。"が常体(である調)です。                                    jtf-style/1.1.1.本文
  10:42  error    本文: "である"調 と "ですます"調 が混在

VS Codeの設定

VS Codeからtextlintを実行するためにプラグインを追加する。

vscode-textlint

textlint

まとめ

ブログを書くための環境を整えることができました。 文書校正は人の手で目視確認も有効ですが工数と何より精神力が削られます。 ツールで落とせるのであればガンガン落としていきたいものです。