の作業記録
Textboxを整える火曜日
- 作業記録の共有
- ブックカタリスト+配信予約
- Textbox+JSON Callerの実装
- メルマガ+原稿1(3800文字)
- Textbox+Mult Pager
- TH+第三章の本文
- 『群論への第一歩』+第九章
- 環読プロジェクト+第四章続き
- KW+ミニエッセイ
7:00
おはようございます。本日はTextboxの機能を整えます。
ブックカタリスト:
まずは、今日配信される記事の予約から。
* * *
OKです。本日17字に配信されます。
Textbox:
昨日は、インクリメンタルサーチで検索候補を表示するところまでできたので、後は中身の実装です。それはまあ明日でいいですかね。
最終的にやりたいのは、テキストを入力、そのままエンターから下に表示されるものから選択してエンター、そのJSONをカードとして表示という流れ。
で、Obsidianのcommand + O では、テキスト欄が空っぽの状態でも選択肢が表示されていて、一番上の項目が選択状態になっている。これはテキストを入力していても同じ。で、エンターを押すと、その一番上の項目が選択されたことになる。
ようは、テキスト欄のテキストはあくまで補助でしかない。で、一つも候補がヒットしない場合は、テキスト欄から選択肢が作られていて、そこでエンターを押すと新規項目の作成になる。
一応この動作をベースに考えよう。
* * *
できました。
見た目などは未調整ですが、呼びだしが可能になりました。あとは、どういう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を押したら、そのクラスを持っているウィンドウに対して、描写の切り替えを行う。これがやりたいこと。
