もなでぃっく

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

カクヨム、小説家になろうの作者向け Chrome 拡張機能「のべらす」を作った

小説投稿サイト「カクヨム」と「小説家になろう*1」で小説を書いています。

小説を公開していると、ありがたい事に感想やレビューを頂けるのですが、残念ながらメール等で通知してくれないためにわざわざ自分でサイトを確認しなければなりません。忙しい時はついついチェックを怠ってしまい、返信が遅れる事もしょっちゅうだったのでした。

というわけで、公開している自分の小説の新着情報や統計情報を教えてくれる Chrome 拡張を作りました。

のべらす

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

「べらす」ではなく「のべらす」です><

【Chrome ウェブストア】のべらす

機能としては、以下のようなものがあります。

自分の作品のブックマーク数などをチェック

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

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

自分の作品への評価やブックマーク数などを記録して表示します。

表示する項目

  • 小説家になろう
    • 総合評価
    • 評価ポイント
    • ブックマーク数
  • カクヨム
    • もらった★の数
    • フォロワー数

感想やレビューなどをその場で確認

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

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

自分の作品についた感想やレビューなどの内容を確認できます。(一部、本文がその場で読めないものもあります)

確認できる項目

基本的に最新何件かのみの表示となります。

  • 小説家になろう
    • 作品についた感想
    • 作品についたレビュー
    • 活動報告についたコメント
    • 受信したメッセージ(本文は確認できません)
  • カクヨム
    • 作品についたレビュー
    • 近況ノートについたコメント(件数のチェックのみ・本文は確認できません)

新着の感想やコメントなどを通知

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

自分の作品についた感想やレビューなどの新着を、音とメッセージでお知らせします。

  • お知らせする項目は確認できる項目と同様です。
  • 設定で種類ごとに通知の ON/OFF が設定できます。

おわりに

【Chrome ウェブストア】のべらす

これに限らず小説執筆を極力自動化するためにアレコレしているので、その内ブログにまとめるつもりです。

もし拡張機能を気に入って頂けたなら、ついでに拙作の小説の方もよろしくお願いいたします>< プログラマの方から、プログラマの事をよく知らない方まで楽しんで頂けると思います!

*1:「小説家になろう」は株式会社ヒナプロジェクトの登録商標です。

webpack で Chrome 拡張を作って得られた知見

文書校正ツール textlint の Chrome 拡張を作ったのですが、その開発の過程でハマった問題や対策などを記録として残しておきます。

なお、textlint 拡張のソースコードGitHub で公開しています。

github.com

続きを読む

文書校正ツール textlint の Chrome 拡張を作った

以前、プラグインで拡張可能な文章校正ツール textlint小説の作法を検証するための規則を作ったのですが、textlint はコマンドラインツールであるために利用するまでのハードルが高い状況でした。

Sublime Text や Atom などのプログラマ向けエディタを利用していれば、textlint のプラグインが使えたりするのですが、今回はより簡単に利用できるように Chrome拡張機能として textlint をブラウザ上で使えるようにしてみました。

インストールはこちら: 【Chrome ウェブストア】 textlint: 文章チェッカー

インストールすると、ページ内の編集領域で文章入力中にリアルタイムで校正してくれるようになります。(もちろん ON/OFF できます)

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

textlint に最近追加された自動修正機能にも対応しているので、ボタン一発で自動で修正されたりします。(ただしまだ対応ルールは少ない状況だけど)

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

ブラウザ上でけっこう無理矢理に動かしているので、検証ルールプラグインのいくつかはブラウザ上で動かないものもありました。そのため、ブラウザ上で動くよう調整済みのルールプラグインをあらかじめ同梱してあります。

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

その分、17MB 程度と結構重量級な拡張機能に仕上がっております……(サイズの大部分は字句解析の辞書ファイルですが)

英語圏ユーザーにも一応翻訳を付けたのですが、まだまだ英語用のルールは少なかったので スペルチェッカーのルールプラグイン を作ったりもしてみました。なんだか今週はいっぱい npm publish した気がします。

textlint はとても便利なので作者の azu 様に感謝しつつ、もっと色々できるように Contribute していきたい所存です!

【Chrome ウェブストア】 textlint: 文章チェッカー


追記: 2015-03-15

この拡張を webpack で作る際にハマったポイントなどの知見をまとめました。参考までにどうぞ!

io-monad.hatenablog.com

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 のコメント / はてなブックマーク

Hello, world!

ブログはじめました。主に小説とプログラミングについて書く予定です。

Hello, world! とはプログラマにとっては馴染みの挨拶で、新しくプログラミング言語を学ぶ時には必ずこの「Hello, world」を画面に表示するプログラムを作るのが慣習となっています。

小説の世界ではこういった文章はありませんが、新しい物語を始める時には何か決まり事を決めておくのが良いかもしれません。私の場合は、小説に登場させる主人公が何の変哲もない日常の一日をどう過ごしているのか、家族や友人、同僚達とどう接するのかを想像して、短文に起こす事から始めています。

何の起伏もない一日だからこそ、その人の普段の態度や行動が如実に現れて、架空の存在から現実の存在に一歩近づく気がするのです。書いている内に主人公の背景について決めていなかった事が見つかり、曖昧だった主人公の性格や考え方が定まるという事もあります。

この記事も、このブログの方向性を示す文章になっていれば嬉しく思います。

こんにちは、世界。