もなでぃっく

入出もなど >>= \blog ->

textlint で小説の作法を検証するための規則を作った

小説を書くにあたって意外と面倒なのが、小説には様々な細かい作法が存在する事です。

例えば、行頭に全角スペースを入れたり、会話文の閉じ括弧の前に句点(。)を入れてはいけなかったり。人間が気をつけて書いても、どうしたってケアレスミスをしてしまいます。

プログラマがコードを書く時は、ケアレスミスを防ぐために自動でテストをするようにします。日本語の文章だって同じように「自動テスト」で問題がないか確認できるはずです。

そこで自動化できないかと考え調べたところ、azu さんが作られている textlint で近い事ができそうだったのですが、残念ながら既存の対応規則(ルール)では日本の小説向けの細かい作法というのはチェックできないようでした。

というわけで、いっそ自作してしまえの DIY の精神で textlint 向けの規則を作ってみました。

github.com

これを利用する事で、以下のような小説作法の検証ができるようになります。

  • 各段落の先頭に全角スペースまたは開き括弧のみを許可
  • 閉じ括弧の手前に句読点(。、)を置かない
  • 疑問符(?)と感嘆符(!)の直後にスペースを置く
  • 連続した三点リーダー(…)の数は偶数にする
  • 連続したダッシュ(―)の数は偶数にする
  • 連続した句読点(。、)を許可しない
  • 連続した中黒(・)を許可しない
  • 連続した長音符(ー)を許可しない
  • マイナス記号(−)は数字の前にしか許可しない
  • アラビア数字は最大桁数までしか許可しない

(注) textlint の詳しい使い方とかは textlintで日本語の文章をチェックする とかに書いてあるのですが、技術者向けな説明なので結構難しいです。公式サイトもまだ出来たばかりで英語版しかないようですし、非技術者向けの説明を書きたいですね。

Sublime Text 3 というテキストエディタで執筆しているのですが、SublimeLinter という拡張と SublimeLinter-textlint を組み合わせれば、執筆中に検証できるようになりました。

f:id:io-monad:20160227034117p:plain

怠惰なプログラマたるもの、小説を書くのも全力で自動化していきたい所存です!

追記 2016-02-28 11:20

v1.2.0 で「連続した句読点(。、)を許可しない」を追加しました。 Thanks to b:id:imagawatatsuya さん!

小説を描いていると、連続した「。。」も発生することがたまにある。 - imagawatatsuya のコメント / はてなブックマーク