感動しました!

文章作成のゲームチェンジャーになる可能性があるツール、textlintについて紹介します。

textlint とは

簡単に、textlintの概要を説明をする。

textlintとは、日本語の文章の文法チェックツール、文章校正をプログラムで調べるツール。

プログラミングをしているときにIDEをつかうと、自動で文法チェックしてくれて構文エラーのときは赤線がでてきたりする。 あれをMarkdownでもやりたいというお話。

textlintを試してみる

Node.js製ですので、 以下でまずはインストールしてみる。

yarn add textlint

デフォルトでは、文法チェックのためのルールがひとつも入っていない。ブラグインをいれることで、文法をチェックできる。 まず手始めに、ToDoが存在しないことをチェックするプラグインを入れてみる。

textlint-rule-no-ToDoの導入

yarn add textlint-rule-no-todo

次のようなToDoが文章中に存在しないかをチェックする。

- [ ] test test

エラーすると、こんな感じでエラーする。

$./node_modules/textlint/bin/textlint.js --rule no-todo user-textlint-for-markdown.md
/home/tsu-nera/futurismo3/src/posts/2018/user-textlint-for-markdown.md
  34:3  error  Found TODO: '- [ ] test test'  no-todo

✖ 1 problem (1 error, 0 warnings)

.textlintrcに設定を書いて引数を省略する

コマンドの引数に渡すオプションが長いので、.textlintrcに設定を書くことで、省略する。

{
  "rules": {
    "no-to": true
  }
}

プリセットとオススメプラグイン

プラグインの使い方がわかったところで、次々とプラグインをいれていくことにしよう。 Presetというのが用意されている、いわばプラグインを寄せ集めた欲張りセット。

入門用

入門向け日本語のプリセット。

prh

表記揺れのチェックツール。

自分で表記揺れのルールを設定するのはたいへんですので、定義済みのルールを入れる。

$ yarn add prh
$ ls -l node_modules/prh/prh-rules/media/                                                                                                        
-rw-r--r-- 1 tsu-nera tsu-nera 85538  8月 22  2017 WEB+DB_PRESS.yml
-rw-r--r-- 1 tsu-nera tsu-nera 10820  8月 17  2017 techbooster.yml

技術文書向けのプリセット

textlint-rule-preset-ja-technical-writing

JTF日本語標準スタイルガイド(翻訳用)に従ったプリセット

textlint-rule-preset-jtf-style

半角/全角スペースプリセット

textlint-rule-preset-ja-spacing

{
    "rules": {
        "preset-japanese": true,
        "prh": {
            "rulePaths" :[
                "./node_modules/prh/prh-rules/media/techbooster.yml",
                "./node_modules/prh/prh-rules/media/WEB+DB_PRESS.yml"
            ],
            "preset-ja-technical-writing": true,
            "preset-ja-spacing": true
        }
    }
}

Visual Studion Codeとのtextlint連携

Visual Studio Codeを利用して文章を書いているので、それとの連携を設定する。

次のプラグインを導入する。

あとは、vscodeを開くだけだ。 赤線をクリックすると、auto complete(自動修正もしてくれるこれはスゴい)

終わりに

私はかつて、技術文書がかけないので、テクニカルライティング検定というものを受けた(そして不合格)

自分でルールを覚える時代は終わったんだ、これからはIDEで文章を書いてチェックする時代だ!

参考