Textboxを整える火曜日

7:00

おはようございます。本日はTextboxの機能を整えます。

ブックカタリスト:

まずは、今日配信される記事の予約から。

* * *

OKです。本日17字に配信されます。

Textbox:

昨日は、インクリメンタルサーチで検索候補を表示するところまでできたので、後は中身の実装です。それはまあ明日でいいですかね。

最終的にやりたいのは、テキストを入力、そのままエンターから下に表示されるものから選択してエンター、そのJSONをカードとして表示という流れ。

で、Obsidianのcommand + O では、テキスト欄が空っぽの状態でも選択肢が表示されていて、一番上の項目が選択状態になっている。これはテキストを入力していても同じ。で、エンターを押すと、その一番上の項目が選択されたことになる。

ようは、テキスト欄のテキストはあくまで補助でしかない。で、一つも候補がヒットしない場合は、テキスト欄から選択肢が作られていて、そこでエンターを押すと新規項目の作成になる。

一応この動作をベースに考えよう。

* * *

できました。

Image from Gyazo

見た目などは未調整ですが、呼びだしが可能になりました。あとは、どういうjsonファイルを対象にするのかということ。あと、doやhistoryといったファイル名もインクリメンタルサーチの対象にするかどうかですね。

* * *

historyは、callしたいものもあれば、そうでないものもあります。英語ノートなどは別に個別に呼びだすことは無さそうです。あと、titleを対象にしているので、type:lineは、本文がtitleに入っているのですごく鬱陶しい。

この辺をうまく調整できれば、すごく便利になりそう。

* * *

残すはマルチページの実装ですね。これができれば、Textbox3.0は達成と言えそうです(2.0はJSONを導入した当たり)。

9:00

メルマガ:

原稿を書きましょう。

* * *

3800文字の原稿を書きました。だいたい二つ分くらいのボリューム。

13:00

『群論への第一歩』:

第九章を頭から読み返していきます。

publish:『群論への第一歩』「第9章 作用」ノート - 倉下忠憲の発想工房

14:00

Textbox:

ついでにMult Pagerも実装してしまいましょう。

現状hatchという、独立ウィンドウとして、ページを開く機能があるので、それを改造しようと思います。

表示先を独立ウィンドウではなく、メインウィンドウの「横」に並べるようにすればまずはOKです。

* * *

まずは、現状の実装の確認から。

html要素として、id="hatch"がindex.html上に設置されている。初期は、display:none;。

makehatch()という関数がある。それでページを呼びだしている模様。

呼びだして、表記を置換している。保存するときはその置換をひっくり返すように。これは編集モードとプレビューモードを分けることができなかったからの苦肉の策だろう。今回はこれを改善する。

通常のページと同じようにファイルを描写する。基本的にはそれだけ。表示する用のdivを作り、編集する用のtextboxを置く。問題はその置き方。divとtextareaはどちらかだけが表示されて、基本的に同じサイズで同じ位置であって欲しい。

メインのxhr-result1は、bodyの直下に置かれているので、横に置くとなると工夫が必要。flexbox用のdivでくるむか、追加するdivは、絶対位置にするか。

これはかなり大きな問題です。

Scrapboxはシングルウィンドウ。Obsidianは基本的に横に開くか独立ウィンドウ。Emacsはページを複数の形で分割できる。

独立的に表示できるなら小さな機能のページを作り、それをウィジェットとして利用することができる。そうすると、固定位置ではない方がいい?そのばあい、ドラッグして移動させるためのハンドルを付ける必要がある。

* * *

なんとなく、他のツールではできないことが良い印象。自由配置を可能にしてみようか。でも、それだったらObsidianと同じということになる。

* * *

ファイル名とウィンドウサイズを与えると、それを生成してくれる関数。位置も渡せた方がいいかな。

* * *

とりあえずHatchを書き換えます。

* * *

表示とドラッグでの移動が可能になりました。

ついでにヘッダーをダブルクリックで削除できるようにしました。ただ、リサイズは課題ですね。

* * *

リサイズはリサイズ用の領域を細く(薄く)作り、そのドラッグ操作でなんとかする模様。これは実装すること自体はできそう。

あとは、編集モードとプレビューモードの行き来。それをショートカットキーで実装するためには「フォーカス」の概念が必要になる。

* * *

is-window-focusというclassを付ける。これは通常では、メインウィンドウに当たっている。command + eを押したら、そのクラスを持っているウィンドウに対して、描写の切り替えを行う。これがやりたいこと。

17:00

publish:BC086『体育館の殺人』から考える新しい読書について - by goryugo - ブックカタリスト