Open23

textlint導入メモ

matunnkazumimatunnkazumi

全角と半角の間にスペース入らないなーって思ったら別のプリセットだった
https://github.com/textlint-ja/textlint-rule-preset-ja-spacing

matunnkazumimatunnkazumi

設定ファイル周りの書き方について、最近コチラの記事に感銘を受けた。

https://zenn.dev/teppeis/articles/2021-02-eslint-prettier-vscode

今回着目しているポイントを抽出すると

  • npm scriptのコマンドライン引数では、プロジェクトルートを.で丸ごとわたす
  • ignoreファイルで対象外のファイルを明記する
matunnkazumimatunnkazumi

というわけで、こうだ

package.json
{
  /* ... */
  "script": {
    "lint:textlint": "textlint .",
    "format:textlint": "textlint --fix .",
  }
  /* ... */
}
.textlintignore
node_modules/
*.json
*.yaml
*.yml
*.lock
.*

README.md
matunnkazumimatunnkazumi

なんも考えずPrettier突っ込んで全部フォーマットかけたら、markdownの整形ルールがtextlintと噛み合わない。。。

https://prettier.io/

matunnkazumimatunnkazumi

Prettierはこれ一つで何でもかんでも整形してくれるんで便利なんだが、細かい制御ができないのがなー。

私は、switch・caseはインデントしない派なんだがなー(関係ない)。

matunnkazumimatunnkazumi

textlint入れた以上は、Prettierは無効にするかー

.prettierignore
node_modules/
pnpm-lock.yaml
package-lock.json
yarn.lock

# textlintのルールと合わないので除外
*.md
matunnkazumimatunnkazumi

markdownのフォーマットは、とりあえずeditorconfigに任せよう。

ほかのフォーマッタもあるみたいなので、そのうち試そう。

matunnkazumimatunnkazumi
matunnkazumimatunnkazumi

本来は自分用の辞書のリポジトリをGitHubに作るべきなんだろうが、単語1つでわざわざ立てるのもなー。

オプション見てたらdictGlobってフィールドがあるのでそれで、管理できそう。

matunnkazumimatunnkazumi

ありものの辞書もお借りしつつ……

.textlintrc
{
  "rules": {
    "@proofdict/proofdict": {
      "dictURL": "https://tanabebe.github.io/proof-dictionary/",
      "dictGlob": "./dict/*.yml"
    }
  }
}

だと思ったら動かない。。。

matunnkazumimatunnkazumi

よく読んだら、dictURLdictGlobはどちらか一つって書いてるじゃん

.textlintrc
{
  "rules": {
    "@proofdict/proofdict": {
      "dicts": [
        {
          "dictURL": "https://azu.github.io/proof-dictionary/"
        },
        {
          "dictGlob": "./dict/*.yml"
        }
      ]
    }
  }
}
matunnkazumimatunnkazumi

。。。どうやらコードブロックの中はチェックしないっぽい? まあそりゃそうか? されてもうっとおしいかねー。

matunnkazumimatunnkazumi

もとは、.tool-versionsっていうファイル名を.tool-versionって間違えたことを対策しようと思ったわけで。。。

そもそもファイル名はコードブロックに入れるべきか否か。。。

あとで考えることにしよう。。。