小説自動字下げスクリプト「jandent.py」を作ったよ

小説を書く上で、守ったほうが良いとされる「お作法」がある。

こういう感じのやつだ。

  • 行頭は一字下げ
    • 鉤括弧始まりなら字下げしない
  • 疑問符感嘆符直後は一字空け
    • 直後が終わり鉤括弧なら字空けしない
  • 三点リーダは二つ以上
  • ダッシュは二つ以上

はっきり言っておく。これは面倒くさい。めんどくさくないわけがない。

 

しかしこれが無ければ、意識の高い読者から白い目で見られ、匿名掲示板では酷に書かれ、小説大賞では門前払いされちゃうから、しないわけにも……(一部誇張した表現があります)

そんな外から強いられる面倒は、自動化するに限る。というわけで、pythonスクリプトを書きました。

使い方

  1. https://script.dettalant.com/jandent
  2. テキストエリアに書いた小説をコピペ
  3. 「変換する!」ボタンをプッシュ
  4. 変換後の文章をコピーして、後はお好みで

変換メソッド(v1.0時点)

スクリプトのページにもあるように、以下の処理を行っているよ。

条件 変換結果
行頭に空白なし(鉤括弧を除く) 全角スペースを挿入
終わり括弧前に句読点「〜〜。」 当該句読点を除去
単体三点リーダ 三点リーダを二つ以上に統一
単体ダッシュ ダッシュを二つ以上に統一
連続句読点〜〜だ。、。 句読点を一つに統一
感嘆符・疑問符直後に句読点!。、? 当該句読点を除去
直後に文字(終わり鉤括弧を除く) の後は一字空け
空白のみの行 余分な空白を除去

内部的な実装方式はこういった感じ。

  1. 文章を一行ごとに分けてから、一文字ずつに分解
  2. 変換条件と比較しながら、一文字を一行に結合
  3. もし変換条件に入ってたら、その部分を置換
  4. 全文を変換・結合し終えたら、画面に表示

使用したもの

みんなだいすきPythonせんせーと、1ファイルフレームワークのBottleせんせーのお力をお借りしたよ。

PHPで作り直したので、今はPythonもBottleも使ってません!

……ぐすん。

注意書き

  • 入力されたデータは一切サーバーに残してない
  • 開発者も機能チェックは行っているけれど、意図しない出力をする可能性があるよ
  • 文章変換によって生じた諸問題について、開発者は責任を負わないものとするよ
  • くれぐれも変換後文章のチェックを忘れないようにしてね

バグ報告・ご要望がありましたら、@dettalantにお願いします。

僕にできる範囲で対処にあたるよう。