準備を進める月曜日

7:00

おはようございます。今日はかなり暖かいですね。とりあえず、もろもろの準備を進めましょう。

publish:なぜメモ論なのか / うまく考えられるようになりたい / 俯瞰と使用|倉下忠憲

メルマガ:

まずはファイルの準備などを。

* * *

だいたいOKです。今週書くこともざっと考えておきました。

ブックカタリスト:

下書きを配信予約しておきましょう。

* * *

OKです。明日の17時に配信されます。

あとで読む:Why We Don’t Have an Exit Strategy

8:00

ショートカット:

inboxにメモを送るショートカットの動作を少し変更します。

* * *

Safariからの保存が、これまで単にURLだけだったのが、タイトル+urlでマークダウンの形になりました。これで処理しやすいですね。

* * *

メモを消した際に「save」ボタンを押すのを忘れますね。別のタイミングでトリガーした方がよさそう。

Textbox:

どのタイミングで保存するか。一つは、チェックボックスにチェックを入れた瞬間即座に、もう一つは、フォーカスを失ったとき、さらにもう一つはサイドバーを閉じたとき。差分で消すようにしたから、タイミング自体はいつでもOKです。

というか、本当は完全に消すのではなく、アーカイブに移動させるくらいのことをしたいですね。ふむ。

処理的に難しいことではありません。

* * *

とりあえず、タイミング的には完全性を期すならば、チェックボックスをチェックしたとき(オンにしたとき)でしょう。

もし、将来的にサイドバー上から項目を追加できるようになったとしたら?

差分で消すだけでなく、追加もできるようになる必要がある。で、そのときにタイミングはどうなるか?

チェックボックスをオンにしたときに消すと、オフに戻す作業をしたときにどうなるか。たぶん、それは消えたままになってしまうだろう(差分で保存する、ということをしていないため)。

ということは、差分で保存する機能を付与して、チェックボックスのオンオフ時にトリガーするか、サイドバーを閉じたときに保存するか。

* * *

とりあえず、サイドバーを閉じたときにしておきましょう。

* * *

だいたいOKです。saveボタンもいちおう残しておきます。

9:00

Textbox:

昨日実装した機能とjsonを使って、お仲間ページを表示させる実装をやってみましょう。

最終的には本体でやりたいところですが、とりあえずはどこかのページだけで実装しましょうか。いや、そもそも複数ページを対象とする機能だから、index.htmlでいいかもしれませんね。

ページを呼びだして、frontmatterを処理するところで、お仲間を探す、というところから。

* * *

できました

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
      const filteredObjects = deepFilelists.filter(object => object.type === hasType[1]);

      if (filteredObjects.length > 1){
        console.log(filteredObjects)
        filteredObjects.forEach(elm=>{
          //今表示しているページと同じなら表示しない
          if ("list/"+ elm["title"] != obj.nowPage){
            type = type + "<span> [[" + elm["title"].replace(".md","") +"]]</span>"
          }

        })
        
      }

Image from Gyazo

わかりにくいですが、「2023年分の確定申告」というページに、「第二回環読プロジェクト」というページへのリンクが追加されています。

* * *

かなり利便性がアップしましたね。ある情報を表示させるとき、それと似た情報が欲しくなる。そういうことがありそうです。

で、気がつきましたが、現状はフロントマターから情報を拾っているわけですが、たとえばページ中にリンクがあるならば、そのリンクを拾うこともできます。

たとえば、Aというページに、Bというページのリンクがある場合、Aページの項目に、reffer: Bとすることができるでしょう。で、CというページにもBページへのリンクがあるならば、同様になります。するとどうなるか。

まず、ページBを開いたときに、「自分について言及しているページ」を表示できるようになります。つまりバックリンクです。

また、Aというページを開いたときに、同じrefferを持つページを表示させるということもできるでしょう。つまり2hopリンクです。

ということは、この機能の実装で、かなりScrapboxっぽいことができるようになった、ということです。単にお仲間ページを表示させるだけならば、「同じrefferを持つページ」だけでも実装できそうです。

あるいは、同タイプは上部、2hopは下部に表示というやりかたもありますね。

* * *

もし、typeが複数ある場合はどうするのか、という問題が一つ。

もし、同じtypeを持つページが山のようにある場合はどうするのか、という問題がもう一つ。前者はアルゴリズムの処理を変えれば済みます。

後者は、基本的な考えかたになりますね。projectは、動いているものだけを対象として、終わったものはdone-とかcomplete-などの接頭辞を付けることで表示を抑制できます。あと、10個以上は表示しないなどのScrapboxと同じ手続きが必要でしょう。

で、booksなどは単純に考えてやまほど表示されるわけで、そこをケアする必要があります。

あるいは、typeとは違う要素を与える?つまり、お仲間表示したいものだけで使うプロパティーとそれ以外をわける、というやりかたはありそう。

あとで読む:記憶装置としてのカード - 作品メモランダム

あとで読む:File over app — Steph Ango

14:00

今日は気圧のせいか、めちゃくちゃ頭が重いです。軽い作業をしましょう。