はしくれエンジニアもどきのメモ

情報系技術・哲学・デザインなどの勉強メモ・備忘録です。

文章もlintできるtextlint導入メモ

文章もlintできるtextlint導入メモ

文章にもlintできるtextlint導入のメモである. ruleを追加して校正できるようになる.

textlint.github.io

環境

  • Windows10
    • Atom 1.36.0
    • npm 6.7.0

textlintの導入(cmd)

textlintのインストール

通常通り,プロジェクト用のフォルダの作成,初期化をする.

$ mkdir project
$ cd project

$ npm init -y

インストール:

$ npm install --save-dev textlint

確認:

$ npx textlint -v
v11.2.3

textlint-rule-max-tenのインストール

textlint-rule-max-tenは,文中の読点の多さをチェックしてくれる.

npm isntall --save-dev textlint-rule-max-ten

textlintの設定ファイル.textlintrcの作成:

npx textlint --init

.textlintrc

(ruleを書く際,text-ruleの部分は省略できる.)

{
  "filters": {},
  "rules": {
    "max-ten": true
  }
}

textlintを適用する. デフォルトでは,textファイルまたはmdファイルに適用される.

npx textlint docs/smaple.md

3つ以上句読点"、"の文があると以下のエラーが出る.

>  2:11  error  一つの文で"、"を3つ以上使用しています  max-ten

ルールの読点の数を変える.

.textlintrc:

(ruleを書く際,text-ruleの部分は省略できる.)

{
  "filters": {},
  "rules": {
    "max-ten": {
      "max" : 2,
    }
  }
}

presetの導入

textlintのルール一覧は,以下のページから調べられる.

https://github.com/textlint/textlint/wiki/Collection-of-textlint-rule

preset中の1つ - textlint-rule-preset-japanese

npm install --save-dev textlint-rule-preset-japanese

.textlintrc

{
  "filters": {},
  "rules": {
    "preset-japanese": true
  }
}

presetの中のルールを一部除外する場合

{
  "filters": {},
  "rules": {
      "preset-japanese":  {
        "no-dropping-the-ra": false,
      }
  }
}

textlint-rule-prhのインストール

表記ゆれのルールを作れる. prhは,proof reading helperの略.

https://github.com/textlint-rule/textlint-rule-prh

npm i -D textlint-rule-prh

使いかた

ruleに表記ゆれルールを書いたファイルを指定するrulePathを追加する.

.textlintrc

"rules":{
    "prh": {
      "rulePaths": [
      "rules/prh.yml"
      ]
    }
}

ymlファイルの作成する.(ex.prh.yml

例として,表記javascriptJavaScriptで統一することを考える.

以下のプロパティに指定する.

  • pattern: 検出したい表記
  • expected: 統一する表記
# prh version
version: 1
rules:
  - pattern: javascript
    expected: JavaScript

実行すると,

$ npx textlint ./docs/samples.md
  6:1   ✓ error  javascript => JavaScript                                  prh

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

--fixオプションを使うと自動変換してくれる.

$ textlint --fix [file]

patternを複数設定する.

# prh version
version: 1
rules:
  - pattern:
    -  javascript
    -  java script
    expected: JavaScript
$ npx textlint .\docs\sample.md
  6:1   ✓ error  javascript => JavaScript                                  prh
  6:18  ✓ error  java script => JavaScript                                 prh

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

textlintの結果

patternには正規表現も使える.

# prh version
version: 1
rules:
  - pattern: /java\s*script/i
    expected: JavaScript

複数ファイルへのtextlint

フォルダ名の指定:

$ npx textlint docs/

ワイルドカードも使える.

例:マークダウンファイルのみ

$ npx textlint docs/*.md

Atomエディタに導入

Atom拡張機能から,linter-textlintをインストールする.

linter-textlintのインストール

AtomのProjectのルートから.textlintrcが見えていれば, 特に設定いらずでファイル保存した時に自動でlintしてくれる.

Linterの結果

実際のファイル上にもカーソルを合わせるとlintのエラー内容を教えてくれる.

テキストファイル上にも表示

htmlファイルで利用する場合

デフォルトでは,.mdとテキストファイルのみ対応している. htmlファイルにlintする場合,textlint-plugin-htmlをインストールする.

$ npm i -D textlint-plugin-html

.textlintrcファイルにオプションpluginsを追加する.

{
    "plugins": [
      "html"
    ]
}

htmlファイルを指定して実行する.

$ textlint *.html

Atom拡張機能 linter-textlintでは対応していない? (.textlintrcファイルにオプションpluginsを追加してもhtmlファイルを開いていてもlintされない.)