textlint校正ツールの技術文書向けルールをカスタマイズする方法

textlint と Re:VIEW

textlint と Re:VIEW

textlint校正ツールで日本語原稿チェック

2018年5月、Windows10のtextlint校正ツールにより技術文書向けルールでRe:VIEW日本語原稿をチェックしました。textlintにRe:VIEWプラグインルールプリセットをインストールして拡張し、ルールをカスタマイズしました。

ルールプリセットは、技術文書向けのtextlint-rule-preset-ja-technical-writingを使用しました。

textlintのインストールと設定については、下記ブログを参照してください。

textlint校正ツールでRe:VIEW日本語原稿をチェックする方法

textlintルールプリセットをローカル(開発環境)にインストールします。ルールは、日本語で記述した技術文書向けのtextlint-rule-preset-ja-technical-writing Build Status Gitterにします。

> npm install --save-dev textlint-rule-preset-ja-technical-writing
npm WARN text01@1.0.0 No description
npm WARN text01@1.0.0 No repository field.

+ textlint-rule-preset-ja-technical-writing@2.0.0
added 76 packages in 20.495s

ルールの詳細な設定を行わずデフォルト値で有効にしました。

.textlintrcを示します。

{
  "rules": {
    "preset-ja-technical-writing": true
  },
  "plugins": [
     "review"
   ]
}

Re:VIEWサンプル原稿

textlintで原稿の校正を行うサンプル原稿を作成します。ファイル名はtest.reで、UTF-8エンコードLF改行コードで作成します。
このサンプル原稿は、ルールチェックを試すために故意に日本語の問題を混入しています。

= はじめてのRe:VIEW
 
//lead{
このドキュメントは、Re:VIEWについての紹介です。
//}
 
== Re:VIEWとは
 
Re:VIEWを知っていますか?
Re:VIEWは素晴らしいツールかもしれません!

Re:VIEWは、電子書籍向けの簡易なマークアップ言語で、
記述したテキストファイルをEPUBやPDFなどの形式に変換する、
ツールセットです。

EPUB形式はパソコンやタブレットや電子書籍端末で電子書籍を見ることができます。
電子書籍専用端末には、KindleやKoboなどがあります。


Re:VIEWは素晴らしいツールですが、
Windowsへのインストールが難しいと言われていましたが、
2018年現在は簡単にインストールできます。

Re:VIEWは素晴らしいツールです。
しかし、Windowsへのインストールが難しいと言われていました。
しかし、2018年現在は簡単にインストールできます。

Re:VIEWは素晴らしいツールです。技術用の電子書籍を簡単に作成することができます。

サンプル原稿のチェック

技術文書向けルールプリセット(textlint-rule-preset-ja-technical-writing)は、デフォルト値で有効にしています。

textlint 指摘

textlint 指摘

> textlint test.re
   9:16  error    Disallow to use "?"                                                                                                                                        preset-ja-technical-writing/no-exclamation-question-mark
  10:17  error    弱い表現: "かも" が使われています。                                                                                                                         preset-ja-technical-writing/ja-no-weak-phrase
  10:24  error    Disallow to use "!"                                                                                                                                        preset-ja-technical-writing/no-exclamation-question-mark
  13:32  error    一つの文で"、"を3つ以上使用しています                                                                                                                       preset-ja-technical-writing/max-ten
  16:18  error    一文に二回以上利用されている助詞 "や" がみつかりました。                                                                                                    preset-ja-technical-writing/no-doubled-joshi
  17:1   error    漢字が7つ以上連続しています: 電子書籍専用端末                                                                                                               preset-ja-technical-writing/max-kanji-continuous-len
  20:19  error    文中に逆接の接続助詞 "が" が二回以上使われています。                                                                                                        preset-ja-technical-writing/no-doubled-conjunctive-particle-ga
  26:1   error    同じ接続詞が連続して使われています。                                                                                                                        preset-ja-technical-writing/no-doubled-conjunction
  28:34  ✓ error  "することができます"は冗長な表現です。"することが"を省き簡潔な表現にすると文章が明瞭になります。参考: http://qiita.com/takahi-i/items/a93dc2ff42af6b93f6e0  preset-ja-technical-writing/ja-no-redundant-expression

✖ 9 problems (9 errors, 0 warnings)
✓ 1 fixable problem.
Try to run: $ textlint --fix [file]

指摘
9 「?」を使用することを拒否

Re:VIEWを知っていますか?


指摘
10 弱い表現: “かも” が使われています
10 「!」を使用することを拒否

Re:VIEWは素晴らしいツールかもしれません!


指摘
13 一つの文で”、”を3つ以上使用しています

Re:VIEWは、電子書籍向けの簡易なマークアップ言語で、
記述したテキストファイルをEPUBやPDFなどの形式に変換する、
ツールセットです。

「○○で、△△する、□□です。」という問題のある日本語です。


指摘
16 一文に二回以上利用されている助詞 “や” がみつかりました

EPUB形式はパソコンやタブレットや電子書籍端末で電子書籍を見ることができます。


指摘
17 漢字が7つ以上連続しています:電子書籍専用端末

電子書籍専用端末には、KindleやKoboなどがあります。

漢字同士が連続していると読みにくくなるので、連続できる最大の漢字長は6文字までに制限しています。

6行目の「電子書籍端末」はエラーではありませんが、「電子書籍専用端末」はエラーになります。


指摘
20 文中に逆接の接続助詞 “が” が二回以上使われています

Re:VIEWは素晴らしいツールですが、
Windowsへのインストールが難しいと言われていましたが、
2018年現在は簡単にインストールできます。

「○○ですが、□□いましたが、△△できます」という問題のある日本語です。


指摘
26 同じ接続詞が連続して使われています

Re:VIEWは素晴らしいツールです。
しかし、Windowsへのインストールが難しいと言われていました。
しかし、2018年現在は簡単にインストールできます。

「○○です。しかし、□□いました。しかし、△△できます」という問題のある日本語です。


指摘
28 “することができます”は冗長な表現です

Re:VIEWは素晴らしいツールです。技術用の電子書籍を簡単に作成することができます。

ルールの設定方法

.textlintrcのファイル構成は、Configuration Filesに説明があります。

ルール名とパッケージ

ルール名<name>を組み込むには、パッケージ「textlint-rule-<name>」をインストールします。
そして、.textlintrcファイルで有効化します。

技術文書向けルールプリセット(textlint-rule-preset-ja-technical-writing)を有効化する例を示します。

{
  "rules": {
    "preset-ja-technical-writing": true
  }
}

ルールの有効/無効

「ルール名」が有効(true)か、無効(false)か、個別指定(object)かを定義します。

{
  "rules": {
    "ルール名": true || false || object
  }
}

具体的には、次のようになります。

{
   "rules": {
      "ルールA": true,
      "ルールB": false,
      "ルールC": {
          "キー" : "設定値"
      }
   }
}
  • ルールA : 有効
  • ルールB : 無効
  • ルールC : 有効にして、{ “キー” : “設定値” }をルールに渡す

ルールプリセット

ルールプリセットは、ルールをまとめたものです。

ルールプリセット(preset-ja-technical-writing)のja-no-weak-phraseルールを無効にする例を示します。

{
  "rules": {
    "preset-ja-technical-writing": {
         "ja-no-weak-phrase": false
    }
  }
}

ルールのカスタマイズ

技術文書向けルールプリセット(textlint-rule-preset-ja-technical-writing)をカスタマイズした.textlintrcを示します。

{
  "rules": {
      // 技術文書向けの textlint ルールプリセット
      "preset-ja-technical-writing": {
         "sentence-length": {                          // 1文の長さ
           "max" : 90
         },
         "max-comma": {                                // 1文中のカンマ
           "max" : 3
         },
         "max-ten": {                                  // 1文中の読点
           "max" : 3
         },
         "max-kanji-continuous-len": {                 // 連続漢字長
           "max" : 5 ,
           "allow" : ["電子書籍端末"]
         },
         "arabic-kanji-numbers": true,                 // 漢数字と算用数字の使い分け
         "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
         },
         "no-nfd": true,                               // UTF8-MAC 濁点を使用しない
         "no-exclamation-question-mark": {             // 感嘆符「!!??」の使用
            "allowHalfWidthExclamation": false,        // + 半角!
            "allowFullWidthExclamation": false,        // + 全角!
            "allowHalfWidthQuestion": false,           // + 半角?
            "allowFullWidthQuestion": true             // + 全角?
         },
         "no-hankaku-kana": true,                      // 半角カナを使用しない
         "ja-no-weak-phrase": true,                    // 弱い日本語表現の利用を使用しない
         "ja-no-successive-word": true,                // 同一の単語の連続チェック
         "ja-no-abusage": true,                        // よくある日本語の誤用のチェック
         "ja-no-redundant-expression" : true           // 冗長な表現をチェックする
       }
  },
  "plugins": [
        "review"
    ]
}

サンプル原稿の再チェック

技術文書向けルールプリセット(textlint-rule-preset-ja-technical-writing)のルールをカスタマイズした.textlintrcで、サンプル原稿をチェックします。

textlint 指摘

textlint 指摘

> textlint test.re
  10:17  error    弱い表現: "かも" が使われています。                                                                                                                         preset-ja-technical-writing/ja-no-weak-phrase
  10:24  error    Disallow to use "!"                                                                                                                                        preset-ja-technical-writing/no-exclamation-question-mark
  13:32  error    一つの文で"、"を3つ以上使用しています                                                                                                                       preset-ja-technical-writing/max-ten
  16:18  error    一文に二回以上利用されている助詞 "や" がみつかりました。                                                                                                    preset-ja-technical-writing/no-doubled-joshi
  17:1   error    漢字が6つ以上連続しています: 電子書籍専用端末                                                                                                               preset-ja-technical-writing/max-kanji-continuous-len
  20:19  error    文中に逆接の接続助詞 "が" が二回以上使われています。                                                                                                        preset-ja-technical-writing/no-doubled-conjunctive-particle-ga
  26:1   error    同じ接続詞が連続して使われています。                                                                                                                        preset-ja-technical-writing/no-doubled-conjunction
  28:34  ✓ error  "することができます"は冗長な表現です。"することが"を省き簡潔な表現にすると文章が明瞭になります。参考: http://qiita.com/takahi-i/items/a93dc2ff42af6b93f6e0  preset-ja-technical-writing/ja-no-redundant-expression

✖ 8 problems (8 errors, 0 warnings)
✓ 1 fixable problem.
Try to run: $ textlint --fix [file]

9行目の「Disallow to use “?”」の指摘が消えて、10行目の「Disallow to use “!”」は指摘されました。

  "no-exclamation-question-mark": {             // 感嘆符「!!??」の使用
     "allowHalfWidthExclamation": false,        // + 半角!
     "allowFullWidthExclamation": false,        // + 全角!
     "allowHalfWidthQuestion": false,           // + 半角?
     "allowFullWidthQuestion": true             // + 全角?
  },

カスタマイズしたルールで、全角の”?”の使用を有効にしています。


17行目の「漢字が6つ以上連続しています: 電子書籍専用端末」という指摘があります。

カスタマイズしたルールでは、連続する漢字長を5文字に制限していますので、「電子書籍端末」と「電子書籍専用端末」は指摘対象です。しかし、例外としてallowで”電子書籍端末”を指摘しないように設定しました。

  "max-kanji-continuous-len": {                 // 連続漢字長
    "max" : 5 ,
    "allow" : ["電子書籍端末"]
  },

まとめ

Windows10にtextlint校正ツールをインストールして、Re:VIEW日本語原稿をチェックできました。
日本語で記述した技術文書向けルールをインストールしてルールをカスタマイズし、適切に日本語チェックが行えました。