anti scroll

ブラウザと小説の新しい関係を模索する

青空文庫の色々な作品をシリーズにまとめました(Part1)

縦書き文庫の青空文庫作品は、作者別には検索できますが、シリーズごとには揃っていない状態でした。

そこで完結済みのものをいくつか選んでまとめてみました。

それぞれ人気のある作品なのですが、自分のお勧めは「夜明け前」です。

激動の幕末期を、武士の視点からではなく農民(といっても庄屋さんですが)の視点から書いた作品です。

幕末の小説というと、とかく斬った斬られたという話しが多くなりがちなのですが、その背後で暮らしていた市井の人々の生活感はどういうものだったのか?

そういうことを知りたい人にはオススメの作品です。

(2023/10/29 追記)

tategakibunko.hatenablog.com

Nehan Readerをスマホにも対応させました

NehanReaderをスマホにも対応させました。

chrome.google.com

しかし!

残念ながら(2017年2月現在)、AndroidiOSも共にChrome拡張はサポートされていないとのこと(リリース後に知りました…)。

スマホ版のChrome拡張機能に対応していない理由は、おそらくバッテリーだと思います。

Chromeの拡張には「バックグラウンドページ」を持って常駐するタイプのものが多くあります。

おそらくこれがバッテリーを食うので、対応していないのだと理解しています。

しかしNehan Readerの場合は「ブラウザーアクション」といって、ボタンをクリックするなどのユーザー操作がなければ起動しないタイプの拡張機能です(Chromeのタスクマネージャーでも表示されない)。

だから「動いてほしいなあ」というのが本音ですが、Chrome56から導入された機能が、拡張機能をモバイル版にも対応させるための布石であることを願うばかりです。

Time-based renderer task throttling

Chrome ver56から導入されるようですが、ざっと読んだ感じだと、こういう動作らしいです。

  • バックグラウンドタブの処理に時間枠を設ける。
  • バックグラウンドタブの処理時間が時間枠を超えると、値が負になって(いったん)眠る。
  • ただし眠りっぱなしというわけではなく、1秒ごとに0.1secずつ復活する。

これによって、モバイル用ブラウザのバッテリー節約につながるとのこと。

Time-based renderer task throttling

一方、バックグラウンドでアレコレ(データを同期するとか、ストリームを読むとか)してるサイトは、軒並み影響されるだろうという意見もあります。

Chrome 56 Will Aggressively Throttle Background Tabs

ちなみに縦書き文庫に関しては、あんまり影響はなさそうです。

どうせ別タブで開かれたら再描画回数が抑えられるので、requestAnimationFrameがゆっくりとしか周りません。結果としてnehan.jsの組版も、ゆっくりとしか進まなくなります。

修正:2011年の時点から、ゆっくりどころか、全く周らないようになってるそうです。 https://developers.google.com/web/updates/2017/03/background_tabs

というわけで、この背景処理が仮にthrottlingで抑えられたところで、タブがアクティブじゃなきゃ、どのみち大したスピードは出ないわけで…これまでと同じですね。

数年前まではどのブラウザでも「おっきな作品を別タブで開いておいて、組版が終わるまで別サイトを眺めてる」なんて使い方ができたわけですが…

Nehan Reader更新。Windows環境にて行がガタついていた問題が修正されました

あらゆるウェブサイトを縦書き(や横書き)のページ送りにできるChrome拡張「Nehan Reader」を更新しました。

Nehan Reader - Chrome ウェブストア

前々から「Windows環境下にて行のガタ付きが発生している」との報告は上がっていたのですが、ようやく修正できたので、良かったら使ってください。

Windows版のChromeでフォントが見づらくなっている件について

この辺の議論を見る限りでは、Windows版のChromeはversion52からDirectWriteを採用したらしく、その影響でフォントがギザギザに表示されてしまっているようです。

本来はDirectWriteで綺麗になるはずなのですが、まだ色々と調整中なのかもしれませんね。

ちなみに、chrome://flagsあたりで、あれこれパラメーターを調整するとDirectWriteが無効化されて元に戻るらしいので、どうしても気になる方はやってみてください。

常時SSL化とHTTP/2に対応しました

なかなか大変でしたが、常時SSL化とHTTP/2の対応が完了しました。

以下はHTTP/2 Testの結果

f:id:convertical:20161230113534p:plain

ちなみに、HTTP/2 and SPDY indicator - Chrome Web Storeを入れた上でアクセスすると、青いイナズマがピカっと光って気持ちがいいです(笑)。

f:id:convertical:20161230113356p:plain

縦書き文庫でゲームブックを作る方法

ちょいネタですが、縦書き文庫ではアンカーリンクによる内部ジャンプが使えるので、ゲームブックのような仕組みを簡単に実現できます(動くサンプル)。

やり方はシンプルです。

テキストをチャプターに分けて、それぞれのチャプターに「チャプター番号」のアンカーを貼ります。

で、それぞれのチャプターには「ページ内リンク(href=#チャプター番号)」を使ってジャンプすればよいのです。

例えばこんな感じです。

<a name="1"></a>
先頭ページのテキスト
<a href="#2">続きへジャンプ</a>
[page-break]
<a name="2"></a>
次のページのテキスト
<a href="#1">先頭ページに戻る</a>

選択肢を作る

選択肢を作ることもできます。

<a name="1"></a>
恋人がサンタクロース!
どうする!?

<a href="#2">受け入れる</a>
<a href="#4">無理。別れる</a>
[page-break]

<a name="2"></a>
恋人がサンタクロース!
背の高いサンタクロース!
どうする!?

<a href="#3">すべてを受け入れる</a>
<a href="#4">無理。足を切り落とす</a>
[page-break]

<a name="3"></a>
お幸せに!
<a href="#1">先頭に戻る</a>
[page-break]

<a name="4"></a>
破局しました!
<a href="#1">先頭に戻る</a>

読んでいるチャプター以外のテキストはネタバレになってしまうので、チャプター番号ごとに改ページしています。

こういうのって、紙の本だと(たぶん紙がもったいないから)同一ページに別チャプターのテキストが並んでしまうのですが、電子媒体ではそんなことを気にする必要がないのが嬉しいところです。

あとチャプター番号も、紙媒体のゲームブックだと、隣接するテキストによるネタバレを防ぐため、ランダムなチャプター番号へ移動させますが、電子媒体では改ページし放題なので、その必要はありません。

実際にやってみると「あれ? 意外と書きやすいかも?」って感じでした。

課題

ただし課題もいくつかあります。ざっと上げるとこんなところでしょうか。

  • ページ送りボタンで移動できてしまう
  • まだ組版が済んでいないページにはジャンプできない(待たされる)
  • 選択肢によってページをジャンプする影響で、ページ送りによるポイントが付きにくい

いずれも致命的な欠点というほどでもない気がするのですが、最後の「ポイントが付きにくい」ってのは、ちょっとまずいかもしれませんね。