Background Decoration Top Left

ブログにtextlintを導入した

August 27th, 2023

記事を書く際に細かい誤字脱字や表記のチェックなどに時間を取られて、文章を書くための心理的なハードルが高まっている。 もっと気楽に文章を書けるようにするためtextlintを使って、細かい確認作業を自動化することにした。
textlint - pluggable linting tool for natural language | textlint
favicontextlint.github.io
Arrow
link

必要なモジュールの追加

まずは必要なライブラリやプラグインを追加する。textlintはプラグイン形式のツールで、 有志が作成した追加のルールを導入できる。 日本語用のプラグインをまとめているコミュニティを見つけたので、ここに記載された表を参考に何個かプラグインを追加する。
textlint-ja
favicongithub.com
Arrow
link
今回は以下3つのプラグインを導入することにした。
以下のコマンドでtextlintと日本語用のプラグインを導入する。
$ yarn add -D textlint
$ yarn add -D textlint-rule-preset-ja-technical-writing textlint-rule-ja-unnatural-alphabet textlint-rule-preset-JTF-style
都度コマンドをCLIで入力するのが手間なのでVSCodeのプラグインも導入する。
vscode-textlint - Visual Studio Marketplace
marketplace.visualstudio.com
Arrow
link

初期化と設定ファイルの記述

以下のコマンドを打つことで.textlintrc.jsonというファイルが生成される。
$ yarn textlint --init
デフォルトではプラグインが無効化されているようなので、.textlintrc.jsonに有効化するよう記載を追記する。 VSCodeのプラグインは、VSCodeを再起動しないと設定の変更を読み込まないようなので注意。(またはCommand PaletteからReload Windowする)
{
  "plugins": {},
  "filters": {},
  "rules": {
    "preset-ja-technical-writing": true,
    "ja-unnatural-alphabet": true,
    "preset-jtf-style": true
  }
}
都度ファイル名指定して実行するのが面倒なので、package.jsonのスクリプトにショートハンドを登録しておく。 自分はcontent/blogs以下の20で始まるマークダウンが記事になっているので、ワイルドカードを使ってパターンを指定した。
...
"scripts": {
"textlint": "textlint 'content/blogs/20*md'",
...
},
...

ルールの微修正

デフォルトだとtextlint-rule-preset-ja-technical-writingのルールは結構厳しいため、一部のルールはエラーではなく警告として扱いたい。 textlintではseverityを指定できるため、.textlintrc.jsonを書き換えて一部のルールのseverityをwarningに変更する。
{
  "plugins": {},
  "filters": {},
  "rules": {
    "preset-ja-technical-writing": {
      "max": 300,
      "no-doubled-conjunctive-particle-ga": {
        "severity": "warning"
      },
      "no-doubled-joshi": {
        "severity": "warning"
      },
      "ja-no-weak-phrase": {
        "severity": "warning"
      }
    },
    "ja-unnatural-alphabet": true,
    "preset-jtf-style": true
  }
}

まとめ

過去の記事が真っ赤になった。 真っ赤なVSCode この記事を書きながら導入を進めたが明らかに途中から記事を書くのが楽になったので、VSCodeで記事を書いている人間には強くお勧めできる。

参考

  • https://textlint.github.io/docs/cli.html
  • https://qiita.com/azu/items/2c565a38df5ed4c9f4e1

Share this page!

  • X Logo
  • Bluesky Logo
  • Hatena Logo

Next

Arrow

ブログのコードブロックをいい感じにする(前編)

Previous

Arrow

自作HTTPサーバーの動作モードをEdgeTriggerにした