textlintのAWS用ルールを作ってみた

2019.07.03

クラスメソッドにはタイポ警察と呼ばれる恐ろしい人たちがいます。
Developers.IOに記載されている記事のタイポは彼らが指摘して、執筆者が修正してたりします。
タイポってどうしても自分では見つけづらいので大変ありがたい存在です。
ですがいつまでもお世話になっているわけにもいきません。
なんとか未然に防げる仕組みとして、textlintを導入したのですが、AWS環境についての校閲はできませんでした。
なので自分用にAWSのルールを作ってみました。

textlint-rule-aws-spellcheck

textlintとは何かと、どんな風に作ったのかを書く前に、何を作ったかを紹介します。
今回私が作ったのはこちらのリポジトリに格納しています。

例えば文中でEC2と書くべきところを、ec2と書いた場合にはtextlintのCLIでこのような指摘が入ります。
AWSの用語を統一した記法で書くためのツールだと思ってくれれば大体あっています。

$ npx textlint hoge.md
20:22  ✓ error  ec2 => EC2                aws-spellcheck

VSCodeの拡張機能を使用している場合はこのように指摘が入ります。 alt

textlintとは

textlintはMarkdownなどで書かれたテキスト用のLintツールで、文章をチェックしてくれます。
簡単に言うと、ESLintのテキストバージョンみたいなものでtextlint本体と、ルールで構成されています。

VSCodeの拡張機能や、Chrome拡張機能など様々なプラットフォームで使用可能なのでお手軽に導入可能です。
完全に余談ですが、Reactのドキュメントを日本語に翻訳するプロジェクトではtextlintがCIに組み込まれていました。

詳しくはazu様のこちらのブログ「textlintで日本語の文章をチェックする」に書かれています。

使用方法

Node.jsとnpmを入れている前提で書きます。
校閲したいファイルがあるディレクトリに移動してから、textlintとruleをインストールします。
textlint-rule-preset-ja-technical-writingと、textlint-rule-spellcheck-tech-wordを導入するとより便利になると思います。
個人的にも使ってます。

$ npm i textlint-rule-aws-spellcheck
# 必要なら
$ npm i textlint-rule-preset-ja-technical-writing textlint-rule-spellcheck-tech-word

インストールが完了したら、.textlintrcというファイルを作成します。
ここにtextlintで使用するruleを書き込みます。
ライブラリ名から、textlint-rule-を除いた名前をruleに書き込むことで、textlintが実行時にルールを読み込みます。

.textlintrc

{
  "rules": {
    "aws-spellcheck": true
  }
}

ここまでできたら、ファイルに対して下記のように実行してtextlintによる校閲を行います。

$ npx textlint hoge.md

また、CLI以外でも使用したい方は、VSCodeにvscode-textlintという拡張機能があるので導入すると良いです。
インストール方法はこんな感じです。

$ ext install vscode-textlint

VSCode以外にもAtomの拡張や、Chromeの拡張機能もありますので必要に応じて導入してみてください。

さいごに

実はこれが初めてのライブラリ公開だったりします。
校閲用のAWSの用語もまだまだ少ないので改良の余地がたくさんあるライブラリです。
まだまだ改良すべき点はあるとは思いますが、いい経験になった上に自分のブログ執筆に役立つので良かったです。