TextLint の技術文書向けのルールセットが便利だった

textlint-rule-preset-ja-technical-writing という TextLint のルールプリセットがあった。

これは、前回 TextLint を紹介した記事で導入したルールたちを含んだプリセットルールだ。

つまり、このプリセットを1つ入れれば、前回みたいに沢山のルールを npm install する必要がなかった、ということ。

$ npm i -D textlint-rule-preset-ja-technical-writing

同様のルールプリセットで、日本語回りのスペースの扱いを決められる textlint-rule-preset-ja-spacing というプリセットもあったので、コレも入れてみた。

$ npm i -D textlint-rule-preset-ja-spacing

これらを導入して出来上がったオレオレ .textlintrc は以下のとおり。設定値は全てデフォルト値にしてある。

{
  "rules": {
    // 技術文書向けの textlint ルールプリセット
    "preset-ja-technical-writing": {
      // 1文の長さ
      "sentence-length": {
        max: 90
      },
      // 1文中のカンマ
      "max-comma": {
        max: 3
      },
      // 1文中の読点
      "max-ten": {
        max: 3
      },
      // 連続できる最大の漢字長 : 固有名詞は allow オプションに記述して回避できる
      "max-kanji-continuous-len": {
        max: 5
      },
      // 「ですます調」、「である調」を統一する
      "no-mix-dearu-desumasu": {
        // 見出しは自動
        "preferInHeader": "",
        // 本文はですます調
        "preferInBody": "ですます",
        // 箇条書きはである調
        "preferInList": "である",
        // 文末以外のチェックをしない
        "strict": false
      },
      // 文末の句点記号に「。」を使う
      "ja-no-mixed-period": {
        "periodMark": "。"
      },
      // 二重否定は使用しない
      "no-double-negative-ja": true,
      // ら抜き言葉を使用しない
      "no-dropping-the-ra": true,
      // 逆接の接続助詞「が」を連続して使用しない
      "no-doubled-conjunctive-particle-ga": true,
      // 同じ接続詞を連続して使用しない
      "no-doubled-conjunction": true,
      // 同じ助詞を連続して使用しない
      "no-doubled-joshi": {
        "min_interval": 1
      },
      // UTF8-MAC 濁点を使用しない
      "no-nfd": true,
      // 感嘆符「!!??」を使用を禁止する
      "no-exclamation-question-mark": true,
      // 半角カナを使用しない
      "no-hankaku-kana": true,
      // 弱い日本語表現の利用を使用しない
      "ja-no-weak-phrase": true,
      // 同一の単語を間違えて連続しているのをチェックする
      "ja-no-successive-word": true,
      // よくある日本語の誤用をチェックする
      "ja-no-abusage": true
    },
    // 日本語周りにおけるスペースの有無を決定する textlint ルールプリセット
    "preset-ja-spacing": {
      // カタカナ語間は中黒または半角スペースを用いて区切る
      "ja-nakaguro-or-halfwidth-space-between-katakana": true,
      // かっこの外側、内側ともにスペースを入れない
      "ja-no-space-around-parentheses": true,
      // 全角文字どうしの間にスペースを入れない
      "ja-no-space-between-full-width": true,
      // 半角文字と全角文字の間にスペースを入れるかどうか
      "ja-space-between-half-and-full-width": {
        "space": "never"
      },
      // 文末に感嘆符を使用し、後に別の文が続く場合は、直後に全角スペースを挿入する
      "ja-space-after-exclamation": true,
      // 文末に疑問符を使用し、後に別の文が続く場合は、直後に全角スペースを挿入する
      "ja-space-after-question": true,
      // インラインコードの前後が日本語である場合に半角スペースを入れるか
      "ja-space-around-code": false
    },
    // サ抜き、サ入れ表現の誤用
    "@textlint-ja/textlint-rule-no-insert-dropping-sa": true,
    // 漢字よりもひらがなで表記したほうが読みやすい副詞
    "ja-hiragana-fukushi": true,
    // 漢字よりもひらがなで表記したほうが読みやすい補助動詞を指摘する
    "ja-hiragana-hojodoushi": true,
    // 冗長な表現を禁止する
    "ja-no-redundant-expression": true,
    // 不自然なアルファベットを検知する
    "ja-unnatural-alphabet": true,
    // 常用漢字を使っているか
    "joyo-kanji": true,
    // 連用中止法を検知する
    "no-renyo-chushi": true,
    // 全角文字と半角英字の間に半角スペース、ただし次の全角文字 [、。「 」(){}【】『』] の前後には不要
    "one-white-space-between-zenkaku-and-hankaku-eiji": true
  }
}

コレでかなりイイカンジ。