理系学生日記

おまえはいつまで学生気分なのか

textlint で特定の箇所をチェック対象外にする

問題

この Blog エントリは textlint でチェックしたあとで投稿するようにしています。

しかし、ここで問題となったのが、以下のようなクエリパラメータ付きのはてな記法でした。

[https://speakerdeck.com/kiririmode/how-to-build-self-organizing-team?slide=48:title:bookmark]

これははてな記法としては問題ないのですが、Markdown のシンタックスではないため、textlint はこれを通常の文章として扱います。 そしてこの例では、リンクに ? が入っているため、textlint-rule-no-exclamation-question-mark に抵触しエラーとなってしまいました。

このような使い方は今後も予想されるので、対象外としておきたいところです。

特定の箇所を textlint のチェック対象外にしたい

このように特定の箇所を自動的に textlint のチェック対象外にする場合は、textlint-filter-rule-whitelist を使います。

$ npm install --save-dev textlint-filter-rule-whitelist

たとえば、さきほどのようなリンクの埋め込みや tex 記法を対象外にする場合、.textlintrc 上で以下のようなフィルタを記述します。

  "filters": {
    "whitelist": {
      "allow": [
        "/\\[(https?|tex):.*\\]/"
      ]
    }
  },

これで、はてな記法のうちの http 記法や tex 記法を textlint の対象外にできます。