ウェブページの長文箇所を電子書籍のようなページ送りで閲覧できる「Ebook Here!」というChrome拡張機能を公開しました
何をするものですか?
ウェブページを閲覧したとき、長文になっている部分を、ページ送りのUIで読みたくなることはありませんか?
Ebook Here! は、それを可能にする拡張機能です。
拡張機能を起動して、ページ送りで表示したい部分をマウスで選択してクリックすると、その部分がページ送りのビューアーで閲覧できるようになります。
WebAssembly版のnehanで組版されるので、先行してリリースされている Nehan Reader よりも高速に組版が完了します。
使い方
拡張機能の「涅」のボタンを押す

変換したいエリアにマウスを合わせクリックする(左上の「SELECT ALL」ボタンを押すと、ページ全体を変換します)

縦書き、横書き、見開き、目次などにも対応してます。


表示設定については、リーダーの上側のメニューボタンで調整してください。文字を大きくしたり、ゴシック体と明朝体を切り替えたり、見開き形式と単一ページ形式を切り替えたりできます。
ショートカットキー
一応、ショートカットキーはこちら(上部の「?」ってアイコンをクリックすると表示されます)。

wasmを許可していないサイトで無理やり使う方法
一部のウェブサイトでは、WebAssemblyの実行を許可していない場合があります。
その場合は、変換しようとしても"Sorry, it seems that this extension is not allowed by this site(because of CSP)."というエラーダイアログが出て、終了してしまいます。
確認した中では、noteやZennなどでは許可されていないみたいです。
しかし、Chrome拡張機能のAllow CSP: Content-Security-Policyを使えば、Ebook Here!を使うことができます。
この拡張機能をインストールし、有効化すると、すべてのサイトでCSPが削除されます(したがってEbook Here!で変換できるようになります)。
すべてのサイトでCSPを削除してしまうのが嫌な場合は、Allow CSPのオプションで「Add To Whitelist」ってボタンで当該サイトを登録すれば、そのサイトではCSPが有効になります。
ただ、このAllow CPSって拡張機能、CSPを許可するサイトを登録する方式なのが少し辛いんですよね。登録したサイトだけCSPを削除する方式だと良いのに。。。
余談
もともと数年前にnehan8のデバッグ用に作ったものなのですが、割と便利なので、ちょっと体裁を整えて公開してみようと思いました。
ただし、今のところMacでしか動作確認していないので、どなたかWindowsでの動作を報告してくださると助かります!(特に縦書きモードで、ちゃんと表示されているかどうか)
シリーズから作品を簡単に削除できるようになりました
今までシリーズから作品を削除する際には、作品一覧の画面から「シリーズの設定」を選んで、選択されているシリーズを解除する、という(面倒な)操作が必要でした。

今後はシリーズ一覧画面から、それぞれのシリーズの「シリーズの並び替え・編集」を選ぶと、

シリーズに登録されたそれぞれの作品の横に「削除ボタン」が表示されるようになったので、そこから作品を当該シリーズから削除できるようになりました。

もちろんシリーズから作品を削除するだけで、作品そのものが削除されるわけではないことにご注意ください。
HomebrewからMacPortsへの移行でハマった部分(主にRust周り)
2023年の中旬ごろ、HomebrewがBigSurなどの古いMacOSをサポートから外してしまいました。
しばらくは「なんとかなるさ!」と使っていたのですが、半年もしないうちに重要なパッケージが更新できなくなり…
特に痛かったのは、libheifが更新できなくなって、ImageMagicでavifを扱えなくなったことでした。
そこで古いOSもサポートしていると噂のMacPortsに移行することに。
他の移行先としてnixなども考えましたが、ちょっと調べた感じだと「まだ過渡期なのかな」と思ったので、無難にMacPortsにしました。
で、実際に使ってみたら、拍子抜けするぐらい、普通に移行できました。
しかし、やはり一部ハマったものもあったので、その経験を残しておきます。
ハマりポイントは2つで、自分の場合はcargo-edit(Rust)とfabric(Python3)でした。
cargo-editのインストール(と起動)に失敗する
MacPortsを運用してしばらくして、Rustのcargo-editというcrateのインストールに失敗することに気付きました。
エラーメッセージを見ると、libiconv.dyldという動的ライブラリのリンクに失敗している模様です。
で、どうもそのリンク先が、MacPortsが管理するlibiconvっぽい…
MacPortsでlibiconvをインストールした覚えはないのですが、広く使われてる文字列変換のライブラリなので、まあなにかのついでにインストールされたのでしょう。それがリンクされて、エラーになったみたいです。
エラーになる理由は、MacPortsでインストールされるlibiconvが、世間一般に公開されている「普通の」libiconvとは、ちょっとだけ異なるから。
なんか他のエコシステムのlibiconvと衝突しないように、いくつかの関数が別名で登録されているらしいのですね。
だからこれをリンク先の動的ライブラリとして選択されてしまうと、リンクエラーになってしまうわけです。
なにが異なるのかは、
nm -a /opt/local/lib/libiconv.dylib | grep iconv nm -a /usr/local/lib/libiconv.dylib | grep iconv
の出力結果を比べたらわかるはずですが、実際にやってみたら「アレ? 別に変わったところはないけど?」という感じでした。
でもまあ、リンクエラーが起きてるんで、なんか違うんでしょう(笑)。
そういうわけで、MacPortsの外の世界のプログラムにlibiconvをリンクするときは、MacPortsが使っている(特別仕様の)libiconvをリンクさせないようにする必要があります。
今回トラブったcargo-editについても、DYLD_LIBRARY_PATHが最初に/opt/local/libを探す仕様になっているせいで、そのままコンパイルするとリンクエラーになるわけです。とはいえ、DYLD_LIBRARY_PATHの上書きは、他のトラブルを起こすことが多いので避けたいところです。
これを解決する方法として、自分の環境では次の2つがうまくいきました。
1つ目は、Rust固有の環境変数を使うもの。
幸いなことに、RustにはRUSTFLAGSという環境変数を通じて、コンパイル時のオプションを渡せる仕組みが用意されています。これを使ってリンク先を変更することができました。
.zshrcとかに、
export RUSTFLAGS="-L/usr/local/lib"
を付け足せばOKです。
もちろんBigSurでは/usr/local/libにlibiconvは入っていないので、ソースからコンパイルして、/usr/local/lib/にインストールしました。
./configure --prefix=/usr/local && make && make install
2つ目の方法はもっと簡単で、cargo-editをインストールするときだけMacPortsのlibiconvを無効にする、という方法。
# いったん無効にする sudo port -f deactivate libiconv # cargo-editをインストール(システム依存のlibiconvが使われる) cargo install cargo-edit # 終わったら再び有効にする sudo port activate libiconv
こうすると、MacPorts以外のlibiconvにリンクしてくれます。
自前で/usr/local/libなどにインストールしてない状態でもうまくいったので、BigSurのどっかしらに、普通のlibiconvがあるんでしょう(笑)。
これでcargo-editはインストールできました。
ただ自分の環境では、これで終わりではなく、その後にcargo-edit系のコマンド(upgrade, add, rm, set-version)を実行したら、また次のようなエラーが出ました。
~/.cargo/registry/index/github.com-1ecc6299db9ec823 is unusable due to having an invalid HEAD reference: reference 'refs/heads/main' not found; class=Reference (4); code=NotFound (-3)
なんかcargo-editに関するgithubのレポジトリ情報が~/.cargo以下に適切に配置されていない、みたいなエラーです。
最近のcargoは、パッケージを管理するcrates-ioというサーバーとの通信に、sparseというプロトコルを使うようになったらしいのですが、cargo-editをインストールする際にもこのプロトコルが使われたことで、githubのrepositoryが~/.cargo/registry以下に適切に登録されなかったっぽいです。
以前のcargoは、巨大なリポジトリをgitプロトコルでローカルに引っ張ってくる仕組みで、その際レポジトリの構造がローカル環境にも配置されていたのでしょう。
しかしcargoのプロトコルの刷新で、それがなくなったことにより、このエラーが出たのだと思います。
エラーを見る限りcargo-editはローカルにgit-repositoryが配置されてないと動かないらしいので、最初にcargo install cargo-editするときだけは、gitプロトコルでcrates-ioと通信するようにします。
これも2つの解決方法があって、1つはCargo.tomlに
[registries.crates-io] protocol = "git" #protocol = "sparse"
と書く方法。もちろん終わったら"sparse"側を有効にします。
もう一つは環境変数CARGO_REGISTRIES_CRATES_IO_PROTOCOLをセットする方法で、.zshrcなどに
export CARGO_REGISTRIES_CRATES_IO_PROTOCOL="git"
と書いておきます。
こうした上で、cargo uninstall cargo-editしてから、cargo install cargo-editすると、正常にインストール&起動するようになりました。
MacPorts経由のfabricが動かない
cargo-editほど大変ではありませんでしたが、fabricもすんなりとは動きませんでした。
最初はMacPortsをfabricで検索したら、pythonのそれぞれのバージョンごとに用意されていることがわかったので、素直にそれをインストールしました。
しかし実際に使ってみると、いくつかの処理がエラーで動きませんでした。
そこでpython3とpip3はMacPortsでインストールし、fabricだけpip3でインストールするようにしたら上手くいきました。原因はわかりません(笑)。
ちなみにMacPorts経由でインストールしたpipでインストールするfabコマンドは、/opt/local/Library/Frameworks/Python.framework/Versions/3.xx/bin/にインストールされるので、sudoで実行する必要があります。本当はvenvとか使ったほうが良いんでしょうが、面倒なのでスキップしました。
# python3とpip3をインストール sudo port install py311 pip-3.11 # pip, pip3ともにpip-3.11を使用 sudo port select --set pip pip-3.11 sudo port select --set pip3 pip-3.11 # Macportsのpipでfabricをインストール(sudoに注意) sudo pip install fabric
作品ページからシリーズ内の別の作品に移動できるようになりました
小さな修正ですが、作品のビューアー下部に表示されるシリーズ情報から、以下のようにシリーズ内の別の作品に移動できるようになりました(これまではシリーズページをわざわざ開く必要がありました)。

ぜひ使ってみて下さい。
青空文庫の作品をシリーズにまとめました(Part2)
以前、青空文庫の作品をシリーズにまとめた、という記事を書きましたが、更に追加したのでご紹介します。
ちなみに、鏡の国のアリスは青空文庫ではなく、プロジェクト杉田玄白の作品です。
- 夜明け前(島崎藤村)
- ジャン・クリストフ(ロマン・ローラン)
- レ・ミゼラブル(ビクトル・ユーゴー)
- 私本太平記(吉川英治)
- 鳴門秘帖(吉川英治)
- 宮本武蔵(吉川英治)
- 三国志(吉川英治)
- ダブリンの人たち(ジェイムス・ジョイス)
- 大菩薩峠(中里介山)
- 細雪(谷崎潤一郎)
- 鏡の国のアリス(ルイス・キャロル)
- 次郎物語(下村湖人)
- 剣の四君子(吉川英治)
- 日本名婦伝(吉川英治)
- 日本婦道記(山本周五郎)
- 赤ひげ診療譚(山本周五郎)
- 樅の木は残った(山本周五郎)
- 家(島崎藤村)
- 半七捕物帳(岡本綺堂)
- 中国怪奇小説集(岡本綺堂)
- 人口論(トマス・ロバト・マルサス thomas robert malthus)
- 食道楽(村井弦斎)
- 現代語訳 平家物語(作者不詳)
- 断腸亭日乗(永井荷風)
- モンテーニュ随想録(モンテーニュ)
- 安吾捕物(坂口安吾)
- 安吾巷談(坂口安吾)
- 安吾の新日本地理(坂口安吾)
- 安吾の新日本風土記(坂口安吾)
- 安吾人生案内(坂口安吾)
- 安吾史譚(坂口安吾)
- ノンシャラン道中記(久生十蘭)
- キャラコさん(久生十蘭)
- 顎十郎捕物帳(久生十蘭)
- 古川ロッパ昭和日記(古川緑波)
- 茶話(薄田泣菫)
- 家なき子(マロ)
- 釘抜藤吉捕物覚書(林不忘)
- 丹下左膳(林不忘)
- 或る女(有島武郎)
- 其中日記(種田山頭火)
- 十二支考(南方熊楠)
- 源氏物語(紫式部)
- 銭形平次捕物控(野村胡堂)
- 新奇談クラブ(野村胡堂)
- ディカーニカ近郷夜話(ニコライ・ゴーゴリ)
- 旗本退屈男(佐々木味津三)
- 世界怪談名作集
- 右門捕物帖(佐々木味津三)
- 平賀源内捕物帳(久生十蘭)
- アラビヤンナイト(菊池寛)
- 人外魔境(小栗虫太郎)
- 五階の窓(江戸川乱歩、平林初之輔、森下雨村、甲賀三郎、国枝史郎、小酒井不木の合作)
- 千世子(宮本百合子)
- 続旧聞日本橋(長谷川時雨)
- 金博士シリーズ(海野十三)
- 早耳三次捕物聞書(林不忘)
- 奇談クラブ(野村胡堂)
- 力としての文化(岸田國士)
- 幕末維新懐古談(高村光雲)
- 貝殼追放(水上瀧太郎)
- 文学の本質について(平林初之輔)
- 悪の帝王(フレッド・M・ホワイト)
- ロンドン危機シリーズ(フレッド・M・ホワイト)
- 諜報部秘話(フレッド・M・ホワイト)
- 真劇シリーズ(フレッド・M・ホワイト)
- ドレントン・デン特派員の冒険(フレッド・M・ホワイト)
- 怪奇シリーズ(スタンリイ・G・ワインバウム)
- 衛星シリーズ(スタンリイ・G・ワインバウム)
- 惑星シリーズ(スタンリイ・G・ワインバウム)
- マンダブーツシリーズ(スタンリイ・G・ワインバウム)
- 道中一枚繪(泉鏡太郎)
- 國譯史記列傳(司馬遷)
映画を撮るように小説を書こう。縦書き文庫「ドラマモード」の紹介
縦書き文庫にて「ドラマモード」の提供が開始されました。
ドラマモードは、背景画像と、キャラクターのアバターと、アニメーションテキストで語られる表示モードです。
ようするに、ビジュアルノベルみたいな表示ができるモードですね。
動作サンプルはhttps://tb.antiscroll.com/dramas/administrator/24548からどうぞ。
また記述方法についての概要は、ヘルプのドラマモードって?を確認してください。

ドラマモードとして投稿するには
投稿フォームの入力フォーマットという項目を「ドラマ記法」にして投稿してください。
機能の紹介
以前、アマチュアとプロの小説の比較について書きましたが、その中で「アマチュアは時間の記述が少ない傾向にある」と述べました。
今回作成したドラマモードでは、背景画像を表示できるので、それによって時間と場所の変更を、文章に頼らず読者に伝えることが可能になります。
またセリフは発言者を明示して書くので、どの発言が誰の発言なのかという問題について、読者は文脈を注意深く読む必要がなくなります。
作品にキャラクターを登録すれば、アバターや名前のクリックで、そのキャラクターの説明が表示されるので「えっと、この人って誰だっけ」みたいなこともなくなります。
補足説明が必要ならTIPというリンクも入れられます。チュンソフトのゲーム「街」で有名な、あの便利機能ですね。


もちろん、これまで通り、ルビや圏点なども普通に使用できます。

初期設定では「横書き」にしていますが、表示設定から「縦書き」にすることも可能です。読みやすいかどうかは別として…

ちなみに「表示設定」からは、縦書きや横書き、文字送りの速さ、文字サイズ、フォント、行間サイズなどを変更できます。

その他にも、縦書き文庫で使える記法は全て使えます。




通常のビジュアルノベルの組版よりは、かなり表現力が豊かなのではないでしょうか(使うかどうかは別として)。

一方で、市販のゲームのような凝った特殊効果みたいなものはありません。音楽や効果音もありません。
ただ通常の本を読むのと同じような感覚だけど、古典的な小説よりは少しだけ親切、みたいな位置を考えています。
今のブラウザだと、音も頑張れば鳴らせなると思うのですが、それをしないのは、小説をスキマ時間に(主にスマホで)読んでもらいたいからです。
というのも、音が出ると、イヤホンを付けなきゃいけないじゃないですか。そういう「一手間」があると、スキマ時間に敬遠される気がしませんか。
だから、ただ起動し、タップするだけで読めるけど、字面だけの小説よりは(ちょっとだけ)疲れない。そういう感じにできたらいいなあと思います。
補足情報
ページを指定して作品を開くことができるようになりました
ページ指定の方法
作品ページのURLの末尾に?p={ページ番号}を付けると、そのページ番号から作品を開けるようになりました。
例えば、夏目漱石の「こころ」の10ページ目を開くリンクは、次のようになります。
https://tb.antiscroll.com/novels/library/6162?p=10
「管理ページ > しおり」ページの改善
「管理ページ > しおり」で表示される、それぞれのリンクをクリックすると、しおりを挟んだページから再開されるようになりました。
これまでそうじゃなかったのが変だったのですが。。。
注意事項
ちなみにページを指定したリンクを他人と共有するのは、オススメできません。
なんでかというと、ページの縦横サイズは、端末の解像度によって変わるからです。
例えばスマホでは、1ページのサイズが、PCに比べて(とても)小さくなりますよね。
なので、PCで2ページ目だった内容が、スマホだと10ページ目ぐらいだったり、みたいなことになります。
というわけで、ツイッターとかで「このページを読んで!」みたいな感じで引用リンクを貼っても、あんまり意味がないことに注意してください。



