2025/7/15
昨日は久々に雨だったが今日はどうか。
001. ナンバリングは三桁で
明らかに1日で100個も書かないから01とかでいいのだけど、001の方が見た目が気持ちいい
同じように01にするか001にするか少し迷ったが、001の方がしっくりきたので採用した。
たぶん何かしら認知的な理由があるのだろう。
001.01 ナンバー付与はinfoboxを見て
新しく書きはじめるとき、上の項目が見えているならそれを参照したらいいが、上の項目が長すぎてナンバーが見えないときは、infoboxをみれば最新の番号がわかる。
これは案外良い
002. 日ごとノートへのメモはミニブログ
ここへの書き込みは、走り書きメモの感覚ではなく、むしろミニブログ(マイクロブログ)の感覚で行う
→動きました
動いたようで何より。
表示場所については、当初はエディタの右側に表示しようと思っていたのだが、infoboxの有無によって場合分けをする必要がありそうだったので、仕方がなく左側に絶対位置で描写した。
望ましいのは、infoboxが表示されているときはその上に、表示されていないときは、縦のメニューの下に表示すること。
003.01 infoboxのHTMLはどうなっているか
code:index.html
<div class="page-sidebar"><div class="infobox"><div class="title-wrapper"><div class="title"><a href="./2025/7" class="page-link">2025/7</a></div><button type="button" class="settings-button"><i class="kamon kamon-gear"></i></button></div><dl class="definition-list"><div class="definition-list-item"><dt class="definition-term">番号付きリスト または 概要</dt><dd class="definition-description"><div class="info-line">001. ナンバリングは三桁で</div><div class="info-line">001.01 ナンバーうちはinfoboxを見て</div><div class="info-line">002. 日ごとノートへのメモはミニブログ</div><div class="info-line"><span>003. </span><span><a class="page-link" href="./Cosense%E3%81%A7RINK%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%81%99%E3%82%8BUserScript" data-page-title="CosenseでRINKシステムするUserScript">CosenseでRINKシステムするUserScript</a></span><span>の場所</span></div><div class="info-line">003.01 infoboxのHTMLはどうなっているか</div></dd></div></dl></div></div>
上記が、class="page-menu"と同じ高さに並んでいる
infoboxが表示されないページはこのdivそのものが存在しない
003.02 右側に追加する方策
その1:page-sidebarの存在を確認し、存在するならその下に追加し、そうでなければ左側に追加する。(当てるCSSも替える)
その2:page-sidebarの存在を確認し、存在するならその下に追加し、存在しないなら勝手にpage-sidebarを作り、そこに追加する
この場合、自前の表示ができた後で、Cosenseがinfoboxを新しく表示するときにどうなるのか不安が残る
ひとまず「必ずinfoboxがあるページで使う」という前提を置くならば、page-sidebarに追加する形でもいいかもしれない。
003.03 最初から表示する
現在、何かしら編集しないと表示されないが、ページを読み込んだタイミングでというトリガーが見つかれば嬉しい。
scrapbox.on('layout:changed', updateStatusDom)というのでレイアウトのチェンジが追跡できるが、それはホームから個別ページをチェックすると思うけど、ページからページへの移動はチェックしないような気がする。
というか、現状のコードではページからページへの移動で表示が消えない。
page:changedでチェックできそう
ということは?
「新しいページが表示される」という状態は以下の二つ
layoutが変わったとき、それがページであること
pageが変わったタイミング(これはページの移動を追いかけているはず)
このタイミングでトリガーすればまず最初に表示される
004. ページの前後移動の高速化
ページを読み込んだタイミングで、前後のページ移動のためのAPIを叩いて準備しておけば高速に移動できるのではないか。
まあ、現状そこまで遅くもないのだけども。
あと多分、そのやり方だとグローバル変数を使うことになりそう。
005. 日ごとページにカレンダーを表示
infoboxへの追加を使えば、日ごとページにカレンダーを追加することもできそう。
ようは月ごとページに各ページのリンクを置いておいて、それを表示させたらいいわけだから。
まあ、各日付はアルゴリズムで生成できるので、いちいち参照する必要まではないのだけども。
いろいろ収集したい
007. 「そのネットワーク、どこにありますか? 」を更新
008. Cosenseの横移動
さすがに、新しい対象を増やすときにScriptを書き換えるのが面倒になってきた。
現状のリスト
const keywordsArray = ["企画案", "書籍名", "@シンクカード","インスピレーションカード","アニメ記録","倉下忠憲の本棚","WorkFlowy豆技","Obsidianのvaultデザイン"];
対象のリストもCosenseのページにしておけば更新はラクチンだが、APIを叩く回数が一回増えるので速度的に好ましくない。
トリガーの対象を拡げることを検討したほうがいいだろう。
使える条件
そのページのタイトル、本文、リンク、関連ページなどのメタ情報が取得できる
通常のリンクとハッシュタグは、当たっているclassが違うので見分けることは可能。
ただし、メタ情報のリンクからはわからない
cosense.Page.metadata.linksは、ページに出てくる順番にリンクが並んでいる
一番上の行か一番の下の行かに「カテゴリ」となるリンクを書く、というルールにすればひとまずはOK。
ただし、企画案は冒頭に、書籍名は最下位にリンクがあるので、どちらを書き換える必要があるが、そんなことはやりたくない。
どちらに統一して、残った方は別の処理をする、というのでケアできる。
別の視点
ある意味で、const keywordsArray = ["企画案", "書籍名", "@シンクカード","インスピレーションカード","アニメ記録","倉下忠憲の本棚","WorkFlowy豆技","Obsidianのvaultデザイン"];は他のツールで言うところの、タグリスト(カテゴリリスト)と言えなくもない。
それをCosenseのページで管理するのも悪くはないかもしれない。
Cosenseで一番最初にページを読み込んだときに、グローバル変数で上を読み込んでおく?
ページを移動するたびに更新とかでもいいけども。