こんにちは、@ketancho です。みなさん文章書いてますか?
私は文章を書くことが好きですし、"よい文章" にしたいというこだわりも(よくも悪くも)強い方だと思ってます。ですが先日「え?textlint 使ってないんですか?(嘘だろ。textlint 使ったことないとか許されないでしょ。)」と言われてしまうという悲しい事件がありました。
というわけで、textlint 使ってみました記事を書いていこうと思います。textlint は、文章がルールに従って書かれているかをチェックしてくれる校閲ツールです。下記が公式サイトで、好きなルールを組み込むことができます。
textlint の導入
まず、textlint の導入についてです。ドットインストールさんの textlint入門 を参考にさせていただきました。相変わらずとても分かりやすいです。プレミアム動画ではないので、有料会員でなくても見られるはずです。
動画に沿って導入を進めれば、
こんにちは、わたしは、けたんちょ、です。
という sample.md ファイルに対して、
$ ./node_modules/.bin/textlint sample.md /home/ec2-user/environment/MyTextlintProject/sample.md 1:17 error 一つの文で"、"を3つ以上使用しています max-ten ✖ 1 problem (1 error, 0 warnings)
というように textlint をかけることができます。この例では textlint-rule-max-ten
という、ひとつの文章における句点の数をチェックするルールのみを導入しています。下記がルールの一覧になるので、この中から好きなものを入れていく形になります。
例えば、日本語でよく使うルールがまとめて入っているプリセット textlint-rule-preset-japanese
を導入したい場合、下記のように npm インストールした上で、
$ npm i -D textlint-rule-preset-japanese
.textlintrc ファイルに、このルールを使って textlint したいよ、そのときのオプションはこれだよ、といったことを指定してあげれば OK です。
{ "rules": { "preset-japanese": true } }
ルールごとに使えるオプションが変わってくるので、先の GitHub ページで使えるオプションを確認しながら自分好みにしてあげる形になります。
自身の直近の記事に対して textlint-rule-preset-japanese を適用してみた
さて、textlint の導入ができましたので、さっそく私が書いた文章に適用してみたいと思います。
$ ./node_modules/.bin/textlint sample.md /home/ec2-user/environment/MyTextlintProject/sample.md 7:59 error 同じ接続詞が連続して使われています。 japanese/no-doubled-conjunction 7:83 error 一つの文で"、"を3つ以上使用しています japanese/max-ten 13:96 error 一つの文で"、"を3つ以上使用しています japanese/max-ten 38:70 error 一つの文で"、"を3つ以上使用しています japanese/max-ten 38:82 error Line 38 sentence length(106) exceeds the maximum sentence length of 100. Over 6 characters japanese/sentence-length 38:152 error 一つの文で"、"を3つ以上使用しています japanese/max-ten 51:197 error 一つの文で"、"を3つ以上使用しています japanese/max-ten 55:99 error 一つの文で"、"を3つ以上使用しています japanese/max-ten 73:55 error 一つの文で"、"を3つ以上使用しています japanese/max-ten 80:100 error 一つの文で"、"を3つ以上使用しています japanese/max-ten ✖ 10 problems (10 errors, 0 warnings)
めっちゃ出てきました。3種類あるので、1つずつ見ていきたいと思います。
一つの文で"、"を3つ以上使用しています - japanese/max-ten
上の例でも出てきた max-ten です。例えば、以下の文章ですね。
冗談めいている(?)ところがあるので、好みが分かれる本な気もしますが、私は対話形式なストーリー仕立ての本は好みなので、楽しく学ぶことができました。
実は、1文が長くなってしまう傾向があることは自覚しています。結果として句点も増えちゃうんですよね。気をつけないとなと思いつつ、1文に3つくらいなら許されるんじゃないかなとという気もします。そんなときは、.textlintrc ファイルを下記のように書き換えることで、"1文に句点が4つ以上になったら警告する" というように変更できます。
{ "rules": { "preset-japanese": { "max-ten": { "max": 4 } } } }
もう一度、textlint をかけてみます。
$ ./node_modules/.bin/textlint sample.md /home/ec2-user/environment/MyTextlintProject/sample.md 7:59 error 同じ接続詞が連続して使われています。 japanese/no-doubled-conjunction 38:82 error Line 38 sentence length(106) exceeds the maximum sentence length of 100. Over 6 characters japanese/sentence-length 38:167 error 一つの文で"、"を4つ以上使用しています japanese/max-ten 80:120 error 一つの文で"、"を4つ以上使用しています japanese/max-ten ✖ 4 problems (4 errors, 0 warnings)
警告の条件をゆるくしても2つも怒られてしまいました。。今後気をつけたいと思います。
Line 38 sentence length(106) exceeds the maximum sentence length of 100. Over 6 characters - japanese/sentence-length
続いて sentence-length
です。1文が長いということですね。同じ箇所で max-ten も怒られている次の文章です。
funny はセンスな気がしますが、本書を読んでいると interesting はロジカルに積み上げるものな気がしたので、ものづくりをする際、あるいはそれをシェアする際は、この部分を意識していきたいと思いました。
たしかに長いですね。このルールは80文字くらいにチューニングしてもいい気がします。意識していきたいと思います。
同じ接続詞が連続して使われています。- japanese/no-doubled-conjunction
最後に no-doubled-conjunction
です。
また、書籍 SOFT SKILLS にもあるように、自分の活動をブランディングすることはとても大事だと思っています。また、技術書を執筆する際も、書いて終わりではなく、想定読者に届ける努力を継続することはとても大事だなと感じました。今後技術者として生きていく上で、MUST ではないもののあった方がよいスキルなのかなと個人的には思っています。
「また」が2文続いているよ!という怒られです。1文ではなく文章の前後関係を見てくれるルールもあるのですね。
私はこの "同じ接続詞が続かないように" はかなり気にしているつもりだったので、結構ショックでした。あとでそっと直しておきます。
まとめ
textlint ことはじめとして試した内容をまとめました。エディタのプラグインや、ブラウザの拡張機能として textlint を入れることもできるとのことなので、息を吸うように textlint できる環境を整えていこうと思います。
最後にこの記事も textlint にかけてみました。
$ ./node_modules/.bin/textlint sample.md /home/ec2-user/environment/MyTextlintProject/sample.md 3:42 error 一文に二回以上利用されている助詞 "も" がみつかりました。 japanese/no-doubled-joshi ✖ 1 problem (1 error, 0 warnings)
私は文章を書くことが好きですし、"よい文章" にしたいというこだわりも(よくも悪くも)強い方だと思ってます。
括弧の中の "も" は許されるはず!ということで No Error なので、記事を公開させていただきます!