作 ▸
Web小説を書くときに使ってるtextlintの設定
一昨年あたりにtextlint導入してみて、今のところしっくりきてるのでアップしておく。
Web小説用であることを留意。紙の小説や技術ブログの執筆には向かない。
textlint 13.3.3
インストール
これ執筆時点で自分が使用していた各パッケージのバージョンは以下の通り。現在の最新版をインストールした場合、挙動が異なるかもしれない。
{
"dependencies": {
"textlint": "^14.5.0",
"textlint-rule-general-novel-style-ja": "^1.3.0",
"textlint-rule-ja-no-abusage": "^3.0.0",
"textlint-rule-ja-no-redundant-expression": "^4.0.1",
"textlint-rule-ja-no-space-between-full-width": "^2.4.2",
"textlint-rule-ja-unnatural-alphabet": "^2.0.1",
"textlint-rule-max-ten": "^5.0.0",
"textlint-rule-no-doubled-conjunction": "^3.0.0",
"textlint-rule-no-doubled-joshi": "^5.1.0",
"textlint-rule-no-mixed-zenkaku-and-hankaku-alphabet": "^1.0.1",
"textlint-rule-prefer-tari-tari": "^1.0.3"
}
}
インストールコマンドは以下の通り。
pnpm install textlint textlint-rule-general-novel-style-ja textlint-rule-ja-no-abusage textlint-rule-ja-no-redundant-expression textlint-rule-ja-no-space-between-full-width textlint-rule-ja-unnatural-alphabet textlint-rule-max-ten textlint-rule-no-doubled-conjunction textlint-rule-no-doubled-joshi textlint-rule-no-mixed-zenkaku-and-hankaku-alphabet textlint-rule-prefer-tari-tari
あと、自分は主にVSCode+Markdown形式で小説を書いてるので、textlintのVSCode拡張機能も併用している。
ただこちらはtextlintを使用していないプロジェクトでも動作しようとするのか、VSCodeの起動時にOutputパネルで鳴いてるのを見かけるので、開発はWSL、小説はWindowsという風にVSCode自体を棲み分けて運用してたりする。(ポータブルモードでいいんだろうけど)
設定 (.textlintrc
)
同じ言葉の連続に対してやや神経質な設定にしてある。また、文中で使用するアラビア数字と英字は全角のみ許可している。
実際には赤くなっても全て修正するわけではなく、例えばカギ括弧の中の砕けた話し言葉でもエラーになるので、あくまで目安にするにとどめる。
module.exports = {
plugins: {},
filters: {},
rules: {
// 一般的な小説スタイルに沿っていなければエラー
// 例: 三点リーダとダッシュの個数が2の倍数ではない。段落の先頭の字下げが無い。
"general-novel-style-ja": {
chars_leading_paragraph: " 「『(【〈《“‘[〔{<",
max_arabic_numeral_digits: false, // アラビア数字の桁数は気にしない (Web小説向けのため)
},
// 一文中に読点が3つ以下でなければエラー
"max-ten": {
"max": 3,
"kuten": ["。", "」", "』"]
},
// アルファベットは全角のみ許可
"no-mixed-zenkaku-and-hankaku-alphabet": {
prefer: "全角",
},
// 同じ助詞が連続したらエラー
"no-doubled-joshi": {
min_interval: 1,
separatorCharacters: ["。", "?", "!"],
commaCharacters: ["、"],
},
// 段落内で同じ接続詞が出現したらエラー
"no-doubled-conjunction": true,
// 一般的な誤用を検出
// @see https://github.com/textlint-ja/textlint-rule-ja-no-abusage
"ja-no-abusage": true,
// 冗長な表現はエラー
// 例: 「操作を行う」
"ja-no-redundant-expression": true,
// 「〜たり〜たり」になっていなければエラー
"prefer-tari-tari": true,
// 全角文字の間に混入した半角スペースを検出
"textlint-rule-ja-no-space-between-full-width": true,
// タイプミスで混入したっぽい半角アルファベットを検出
"ja-unnatural-alphabet": {
allow: ["/[A-Z]/"],
},
},
};