anti scroll

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

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>…

TypeNovelにおいて、注釈しなくても良い制約を明示的に宣言できるようになりました

どういうものか 次のように、制約の値を"?"で始まる値にすると、その制約は本文中で注釈されなくてもエラーになりません。 @scene({ time:"?" // 注釈する必要のないtime制約 }){ 本文中でtimeの注釈をしなくてもエラーにならない! } どうして必要なのか 注…

TypeNovelで出力したhtmlを縦書き文庫のビューアーで開く方法

最初に Windows用とLinux用のexeのzipができましたので、ご利用下さい。 Windows用のzip Linux用のzip Mac用のインストーラー(pkgファイル) まずは適当な文章を書く 適当にこんな感じの文章を書いたとします。 @scene({season:"summer"}){ @scene({time:"mor…

Paket(.NETのパッケージマネージャー)とFAKE(F#のMake)について

調べてみたのですが、日本語の文献がほとんどなかったので、ここに記しておきます。 間違いなどありましたら、指摘していただけますと幸いです。 予備知識 PaketとFAKEの説明の前に、dotnetの予備知識などを少々。 管理単位「ソリューション」と「プロジェク…

プロとアマの小説の特徴を数値化して比較してみたらやっぱり差があったので、それを埋めるための型付き小説記述用言語 TypeNovel を公開した件について

ラノベのタイトルみたいな記事を書く、という夢が叶いました。 github.com 開発に至った動機 以前から、アマチュアの小説はプロに比べると、描写不足な傾向があるのかもしれない、と思っていました。 特に不足がちだと感じるのは「時間」に関する描写です。 …

投稿画面からプレビューできるボタンを復活させました

やはりプレビューが使えないと色々と不便なので、プレビューボタンを復活させました。 投稿ボタンの下に「プレビュー」ってボタンがありますので、使ってみてください。 プレビューボタン プレビューを押すと、 プレビュー結果 こんな感じで、簡易ビューアー…

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

縦書き文庫をリニューアルしました。 新しくなったところ 小説投稿画面の機能がスマホでも全て使えるように これまではスマホの投稿画面ではルビや太字ぐらいしか選べなかったのですが、すべてのボタンがPCの投稿画面と同様に使えるようになりました。 PCだ…

Angular + Ngrx所感

先月から試験的にAngular+Ngrxを使って縦書き文庫を作り直してみる、ということをしていたんですけど、パソコンが壊れバックアップも取ってなかったので、全て消え去りました(この記事はChromebookで書いてます)。 真面目にやると一年ぐらいかかる作業なの…

AngularのExpressionChangedAfterItHasBeenCheckedErrorに関する覚え書き

ネットでExpressionChangedAfterItHasBeenCheckedErrorを検索すると、よく「子が親の状態を変更するとビューに一貫性がなくなることが警告される」という説明を目にしますが、少し混乱を招きかねない説明なんじゃないかなあと思いました。 正確には「Angular…

Typescriptのアレコレ覚え書き

書いておかないと忘れちゃいそうなので、残しておきます(たまに追記するかも)。 戻り値がbooleanであると同時に、引数が特定の型であることをコンパイラに教えることができる これが便利なのは、こういう感じのコードにおいてです。 class Foo { say(){ co…

opam2のインストールについて

2018年9月にようやく正式リリースされた opam2。 公式が提供するスクリプトでインストールできれば問題ないのですが、それだとうまくいかない環境もあり、色々とインストールが面倒だったのでメモしておきます。 ちなみに以下の内容は次のスクリプトで成功す…