anti scroll

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

シリーズから作品を簡単に削除できるようになりました

今までシリーズから作品を削除する際には、作品一覧の画面から「シリーズの設定」を選んで、選択されているシリーズを解除する、という(面倒な)操作が必要でした。 シリーズの設定を選んで、登録先を無効化する、という手順が必要だった 今後はシリーズ一…

HomebrewからMacPortsへの移行でハマった部分(主にRust周り)

2023年の中旬ごろ、HomebrewがBigSurなどの古いMacOSをサポートから外してしまいました。 しばらくは「なんとかなるさ!」と使っていたのですが、半年もしないうちに重要なパッケージが更新できなくなり… 特に痛かったのは、libheifが更新できなくなって、Im…

作品ページからシリーズ内の別の作品に移動できるようになりました

小さな修正ですが、作品のビューアー下部に表示されるシリーズ情報から、以下のようにシリーズ内の別の作品に移動できるようになりました(これまではシリーズページをわざわざ開く必要がありました)。 ドロップダウンからシリーズ内の作品に移動できる ぜ…

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

以前、青空文庫の作品をシリーズにまとめた、という記事を書きました。 tategakibunko.hatenablog.com 今回はその第二弾です(ちなみに、鏡の国のアリスは青空文庫ではなく、プロジェクト杉田玄白の作品です)。 細雪(谷崎潤一郎) 鏡の国のアリス(ルイス…

タイトル、筆者名、タグなどで作品が検索できるようになりました

縦書き文庫内の作品が、タイトル名、筆者、タグなどで検索できるようになりました。表示順序は、人気順と新着順が選べます。 これまで縦書き文庫内の検索はグーグルさんの検索に任せていたのですが、最近グーグルさんの検索結果から縦書き文庫のページが(た…

映画を撮るように小説を書こう。縦書き文庫「ドラマモード」の紹介

縦書き文庫にて「ドラマモード」の提供が開始されました。 ドラマモードは、背景画像と、キャラクターのアバターと、アニメーションテキストで語られる表示モードです。 ようするに、ビジュアルノベルみたいな表示ができるモードですね。 動作サンプルはhttp…

ページを指定して作品を開くことができるようになりました

ページ指定の方法 作品ページのURLの末尾に?p={ページ番号}を付けると、そのページ番号から作品を開けるようになりました。 例えば、夏目漱石の「こころ」の10ページ目を開くリンクは、次のようになります。 https://tb.antiscroll.com/novels/library/6162?…

作品の長さに関係なく、高速に作品が表示されるようになりました

非同期処理への対応 少し前にブログで「wasmではjsと非同期のやり取りをするのが難しい」と書いたのですが、この技術的な課題をなんとか解決できたので、組版の完了したページを(全ページの計算の完了を待たずに)表示できるようになりました。 これによっ…

WebAssembly導入の効果をプラットフォーム別に比較してみた

先日、縦書き文庫の組版エンジン(nehan)をRustで書き直し、WebAssembly化したと報告しました。 tategakibunko.hatenablog.com その際に「約3倍の速度向上があった」と書いたのですが、あれから約2週間分の利用者のログをもとに、プラットフォーム別に速度…

nehan(縦書き文庫の組版エンジン)をWebAssembly化することで、約3倍の高速化を達成しました

縦書き文庫の組版エンジンであるnehan(js製)をRustで書き換え、WebAssemblyで実行したところ、約3倍の高速化に成功しました。 現時点ですでに運用されています。 感想としては「本当は10倍ぐらい速くなって欲しかったけど、そこまでは速度が出ずにトホホ……

nehan-player v0.1.1を公開しました

nehan-playerの0.1.1を公開しました。 tategakibunko.github.io 変更点 NehanPlayer.initializeにて、cssTextオプションを指定できるようになりました。 ページ番号(ノンブル)の表示位置が、ページ送りメニューバーの中ではなく、本文画面の中に表示される…

縦書き文庫のビューアーをリニューアルしました

縦書き文庫のビューアーを久しぶりにリニューアルしました。 いくつかあった不満点を、それなりに改善できたと思います。 旧ビューアーの不満点 目次、登場人物、コメントなどの各種情報が確認しにくかった(下方向へのスクロールが必要だった) 解像度の大…

だれでも簡単にページ組版が扱えるウェブ・コンポーネント「nehan-player」を公開しました

nehanによるページ組版を簡単に扱えるウェブコンポーネントを作ってみました。 ドキュメント デモ 導入 テキストの内容を、サーバーからsrc属性で読み込む場合は、こんな感じになります。 <nehan-player writing-mode="horizontal-tb" width="responsive" src="/path/to/your-novel.html" height="500" font-size="16" layout="1x2"> </nehan-player>

数式の表示とプログラムの色付け表示に対応しました

縦書き文庫で数式とプログラムの自動色付け表示ができるようになりました。 縦書き文庫ヘルプ 数式を入力してみよう 縦書き文庫ヘルプ プログラムコードを入力してみよう 数式 数式は文の途中に差し込む場合(インライン表示)と、行全体を使って表示する場…

アンカーリンクと、リンク先のプレビューに対応しました

アンカーリンクと、リンク先のプレビューに対応しました。 アンカーリンクを使ったサンプルを見る アンカーリンクとは id属性を付けた要素に対して、<a href="#そのidの値">...</a>のように宣言したリンクのことを、アンカーリンクといいます。 リンクのhref属性の値が #(シャープ)か…

VirtualBox(v6.1)に付属のVBoxGuestAdditions-5.2.44にて、Centos8が起動しなくなった件について(解決)

原因はGuestAdditionが作成するvboxsf.koが、/lib/modules/4.18.0-193.28.1.el8_2.x86_64/misc/にコピーされていなかったからのようです。 解決方法 まず、最新カーネルイメージは正常起動せず、emergency modeで起動するため、一つ前の世代のイメージからOS…

各種機能を改善しました

縦書き文庫の各種機能を改善しました。 作品一覧にてタグが表示されるように 作品の一覧にて、タグが表示されるようになりました。 タグの表示 これによって、同じ系統の作品にアクセスしやすくなりました。 シリーズに追加できる作品数を20から50に増やしま…

ゲームパッドの操作を記述する言語「combo-script」と、その再生アプリ「combo-player」を作りました

きっかけ 作ったきっかけは、最近買ったウイイレ2020の操作が、ちっとも頭に入らなかったからです。。。 一応ゲーム内にマニュアルがあるんですけど、文字とか矢印で説明されても、ピンと来ないんですよね。。。 そこで思いついたのが「ゲームの操作をぱぱっ…

先頭ページに「登場人物の一覧」が表示されるようになりました

作品に登場人物を登録した場合、先頭ページに「登場人物の一覧」が表示されるようになりました。 登場人物の一覧 市販の書籍でも、だいたいこんな感じで冒頭に表示されてますよね。 登場人物の挿絵については、小説本文の下側に「登場人物」のタブメニューが…

jingoo 1.4.0 をリリースしました

jingoo 1.4.0をリリースしました。 github.com 新しくなった点 Jg_templateモジュールを部分的に改良したJg_template2というモジュールが追加されました。 サンプル これまでJg_templateモジュールは、次のようにmodelsに連想リストを与えていました。 open …

シリーズ作品において続きの作品へのリンクが本文の最後に表示されるようになりました

Togetterの次の記事に「探す作業が嫌だ」みたいなことが書かれていて「そりゃごもっとも…」と思ったので、表題の件を実装しました。 少年ジャンプ+副編集長が大学1年生から「漫画アプリのUIについて物申したい!」というDMが来て実際に会って考えが整理され…

nehan7をリリース

nehan6からnehan7にバージョンアップしました。 インストール npm install --save nehan 変更点 組版速度が約20%向上しました。 コードサイズが約10%削減されました。 nehan.cssが不要になりました。 行内に置換要素、画像、ルビ、圏点傍点、複数サイズの文…

Angular(<=8)でnehanを使っている方への注意

結論だけ先に述べておきます。 Angular8以下では、nehan(<=6.0.38)までしか使えません。 ただしTypescript3.6.3以降を使える環境では、なんの問題もなくnehan(>=6.0.40)を使用できます。 以下に理由を書きますが、非常にしょうもないことです。 package.json…

TypeNovelのVSCode拡張を公開しました

VSCodeのマーケットプレースにvscode-typenovelというTypeNovel用のVisual Studio Code拡張を公開しました。 marketplace.visualstudio.com インストール後は、*.tnファイルを編集するときに有効になります。 実際に動かすと、こんな感じです。 主な機能 ブ…

jingoo v1.3.1をリリース

久しぶりになりますが、jingooのv1.3.1をリリースしました。 Release v1.3.1 · tategakibunko/jingoo · GitHub 変更点 演算子として、新たに+=, -=,*=, /=,%= がサポートされました。 匿名関数がサポートされました。 条件分岐の構文にて、elseif だけではな…

アプリケーションにTypeNovelのコンパイラを組み込む

この記事は、TypeNovelのコンパイラをアプリケーションから利用したい開発者向けのものです。 導入 npm install --save typenovel コンパイラの呼び出し ソーステキストからコンパイルするときは、Tnc.fromStringです。 import { Tnc } from 'typenovel'; co…

TypeNovelをTypeScriptで書き直しました

TypeNovelは、制約と注釈の組み合わせによって、型付きの小説を記述するための言語です。 参考:プロとアマの小説の特徴を数値化して比較してみたらやっぱり差があったので、それを埋めるための型付き小説記述用言語 TypeNovel を公開した件について これま…

TypeNovelで電子書籍を公開する方法

TypeNovelで記述した原稿を公開する時、そのファイルをそのままTypeNovelReaderで開いても、それなりには表示されます。 しかし、どうせなら作品タイトルや、作者の情報や、作中キャラクターの情報などが表示されるように公開したいものです。 ここではそう…

「読者に読解力と記憶力を求めない小説」は可能か? TypeNovel用の電子書籍リーダー「TypeNovelReader」を公開しました

TypeNovel用のリーダーアプリ「TypeNovelReader」を公開しました。 github.com TypeNovelで記載した「時間」とか「人物」などといった情報も、表示に反映されます。 ちなみにTypeNovelコンパイラも一緒に入っているので、別途ダウンロードする必要はありませ…

TypeNovelでルビをふる

ルビタグをそのまま記述しても良いのですが、こういう感じの設定をtnconfig.jsonに加えると(気持ち?)楽になります。 { "markupMap":{ "$ruby":{ "validate": false, "content": "<arg1><rt><arg2></rt>" } } } 本文中はこんな感じでマークアップします。 $ruby("漢字", "かんじ</arg1>…