Textboxで日付まわりのデータをどう扱うか
https://gyazo.com/47edae12e0e8db23014abc5efbebcb92
最初の目標は上記のような日付のデータを扱うこと
昔は一日に一つのテキストファイルを準備していて
上記はモックアップなので普通にHTMLのテーブルを書いているが
最終的にはJSONにしたい
どんなJSONか
code:dates.json
[
{
"id": "bd34142763b8ec9ff6368f36c611a64f",
"title": "2023年6月14日水曜日",
"created": 1686438115606,
"updated": 1686438115606,
"accessed": 1686438115606,
"lines": [
"LM+画像の追加を連絡"
],
"descriptions": "",
"image": null,
"pin": 0,
"address": "",
"type": "date",
"state": {
"set": "2023-06-11",
"touch": "2023-06-11",
"start": null,
"done": null
}
},
別のjsonデータをそのままコピペしたので、不要なもの、必要なのに記載されていないものはありそう
linesに何が入るのか
その他のデータとどう関連付けるか
たとえば「気になっている本」があり、それが発売日のデータを持っているとする
そのデータとこの日付をどう関連付けるか
たとえばリンクがある(関連するページ)
なんらかの方法であるデータに日付を入力すると、上記のdatesにその情報が反映される
relatedみたいな属性に、そのデータのIDが入る
描写するときにそれを呼び出す
かなり効率的な処理ではあるが、ややこしい。
ただ、自動的にこのページにデータが集約されるようにするならば必要だろう。
逆に、自動的であることを避けるなら、単にlinesをGUIで編集できたらいい。
データの生成時に曜日ごと、日付ごとのルーチンを入れ込むこともできる。
このデータはどのように作られるか?
たとえば一週間に一回コードを走らせることで、次の周のデータが作成される。
あるいは一年に一回コードを走らせることで、その一年分のデータが作成される。
毎日一つその日のデータが作成されるというのは、上記のような一週間の俯瞰ができないので却下
3年分くらいまとめて作っておいてもいい。
jsonは年単位で区切るのか、通年をすべて保存するのか。
それをどう処理するか
dates.jsonを呼び出して、その日を起点、ないしはその周の月曜日を起点に描写する。
左右の移動ボタンを設置して、一週間単位で移動させる。
週番号があった方がいい?
IDをハッシュではなくて、その日付にしたらいいのでは?
20230611
こうしておくと、他のデータからこの日付データを参照するときにいちいちIDを探さなくても済む。
この8桁はdates.jsonでは一意なので問題は生じないような気もする。
その文、処理をわけないといけないわけだが。
一番大きな問題は、他のデータとの関連付け、ということがわかった。
カレンダーや手帳のように単に「その日用のメモ欄」として使うなら実装はそう難しくない。
他のjsonデータと関連付ける場合、そのデータの処理および、「メモ欄」との併用が課題になる。
ただ、関連付けはこちらではなく他のデータの処理において行われるので、こちらは「メモ欄」ベースで進めてもいいだろう。
ただし、idをどうするのかはちょっと考えておきたい。
このままでいくのか、他のデータから参照しやすい日付ベースのidにするのか
でも、単に探す場所がIDか別の場所(たとえばtitleか)の違いなだけな気もする。