記事を書く際に細かい誤字脱字や表記のチェックなどに時間を取られて、文章を書くための心理的なハードルが高まっている。
もっと気楽に文章を書けるようにするためtextlintを使って、細かい確認作業を自動化することにした。
textlint - pluggable linting tool for natural language | textlint
textlint.github.io
必要なモジュールの追加
まずは必要なライブラリやプラグインを追加する。textlintはプラグイン形式のツールで、 有志が作成した追加のルールを導入できる。
日本語用のプラグインをまとめているコミュニティを見つけたので、ここに記載された表を参考に何個かプラグインを追加する。
textlint-ja
github.com
今回は以下3つのプラグインを導入することにした。
- textlint-rule-preset-ja-technical-writing ... 技術文書向けルールセット。
- textlint-rule-ja-unnatural-alphabet ... 不自然なアルファベットを検知。
- textlint-rule-preset-JTF-style ... 日本翻訳連盟のスタイルガイド。句読点の統一化ができる。
以下のコマンドで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
初期化と設定ファイルの記述
以下のコマンドを打つことで
.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