文書作成で、表記揺れを指摘されることがありました。
実は今まで書いてきた記事群の記述も結構危険だなぁと薄々思っていたので、textlintを導入することにしました。
うまく使いこなせたら、本業にも持ち込みたいと思っています。
では、本編。
目次
参考
- ドットインストール - textlint 入門
- Web Scratch - textlint で日本語の文章をチェックする
作者の azu さんのページ - Qiita - textlint と VS Code で始める文章校正
- LIG - textlint で日本語の自動校正サービスを作ってみた!
導入
インストールする先のディレクトリに移動して以下を実行します。
1 | # npm 初期化 |
導入したルールは、技術文書向けの textlint ルールプリセットです。
.textlintrc を開くと以下のようにpreset-ja-technical-writing
が適用された状態になっています。
1 | { |
試しに、textlint-rule-preset-ja-technical-writing
を入れる前に、npx textlint --init
を実行してみました。
その時は以下のようになっていました。
1 | { |
ルールをインストールしてからnpx textlint --init
したほうが楽ですね。
実行
以下のコマンドで実行できます。
1 | npx textlint [チェック対象ファイルを含むディレクトリのパス] |
ルールに引っかかったものがあると、以下のような表示をします。
今回は「、」を一文で 3 回以上使うのはだめだというルールに引っかかりました。
1 | 8:56 error 一つの文で"、"を3つ以上使用しています ja-technical-writing/max-ten |
直すと何も表示せずに終了します。
問題点
今回投稿も、textlint を使っていますがブログ特有の問題が発生しています。
以下の部分が、「1 文の長さは 100 文字以下とする」というルールに引っかかります。
1 | 導入したルールは、[技術文書向けのtextlintルールプリセット](https://github.com/textlint-ja/(textlint-rule-preset-ja-technical-writing)です。 |
1 | 38:1 error Line 38 sentence length(110) exceeds the maximum sentence length of 100. |
URL を記述すると長くなりますね・・・。
回避策
textlint-filter-rule-commentsを導入します。
以下を実行します。
1 | npm install --save-dev textlint-filter-rule-comments |
.textlintrc を以下のように編集します。
1 | { |
textlint-filter-rule-comments を導入したことで、<!-- textlint-disable -->
と<!-- textlint-enable -->
が使用できます。
以下のようにエラー箇所の記載を修正します。
1 | <!-- textlint-disable --> |
再度チェックすると、エラーが外れます。
仕方がないことですが、多用は避けたいところです。<!-- textlint-disable -->
を使用すると、すべてのチェックをスルーします。
「1 文の長さは 100 文字以下とする」というルールだけスルーするようにしてみます。
エラー時の記述から、ルール定義名はja-technical-writing/sentence-length
とわかるのでこちらを追加します。
1 | <!-- textlint-disable ja-technical-writing/sentence-length --> |
技術文書向けの textlint ルールプリセットでは、パラメータを調整して100文字以上にする方法も載っていますが、全体としては厳しくあってほしいのでこうしました。
もしパラメータ調整するなら、以下のように.textlintrc を書き換えます。
1 | { |
別のルールを試そう
.textlintrc に記載されていないルールでチェックできます。
今度は、textlint-rule-preset-japaneseを試してみます。
インストールと実行は以下の通り。
1 | # 導入 |
今度は、japanese/sentence-length という別の 100 文字制限に引っかかってしまいました。
仕方ないですね・・・。
1 | 38:1 error Line 38 sentence length(110) exceeds the maximum sentence length of 100. |
プリセット名を覚えておく自信が無いので、.textlintrc を以下のようにしておくことにしました。
標準で使わないものも書いておいて、false
にしておけばいいということで。
1 | { |
表記揺れのチェック
textlint-rule-prhを導入します。
インストール配下の通り。
1 | npm install --save-dev textlint-rule-prh |
.textlintrc を以下のように書き換えます。
1 | { |
prh
というディレクトリを作って、prh.yml
を作成します。prh.yml
の中身はtextlint-rule-prhの記載をそのまま持ってきました。
ベンダ
と書いたファイルを対象に実行してみます。
1 | # チェック実行 |
以上でチェック対象ファイルのベンダ
がベンダー
に直ります。
textlint-rule-prh用の.yml ファイルを公開している人がたくさんいるようなので、参考にしながらカスタマイズしてみようと思います。
今回は textlint を導入してみました。
textlint で読みやすい記述を目指したいところです。
最後に今まで書いた 56 個の.md ファイルすべてにチェックをかけたら 615 個エラーを出して吐きたくなりました。
順番に直してゆきます。
ではでは。