隣の芝生は眩い。
Boxes
ObsidianをScrapboxみたいに運用しようというスクリプトです。 カードが並べばそれで満足。 デザインもちょっと似せていきたい。
Boxes.md
dataviewスクリプト。 ファイルに貼り付けてプレビューしてください。
```dataviewjs
s = ".boxes{background:ivory;width:120px;height:112px;padding:3px;border:1px solid #eee;border-top:8px solid gold;border-radius:3px;margin:3px;overflow:hidden;float:left;}"
dv.el("style", s)
const a = dv.el("input")
a.placeholder = "..."
a.style = "font-size:18px;background:whitesmoke;width:auto;"
const btn = dv.el("button","+")
btn.style = "font-size:14px;"
dv.paragraph("---")
const b = dv.el("div","")
b.style = "font-size:small;font-weight:bold;"
disp()
a.onkeyup = function(){
disp()
}
btn.onclick = function(){
open("obsidian://new?file=" + encodeURI(a.value))
}
function disp(){
d = dv.pages('').file
.filter(x => x.name.includes(a.value))
.sort(x => x.mtime, "desc")
.limit(50)
.map(x => "<a class=boxes href=obsidian://open?file=" + encodeURI(x.name) + ">" + x.name + "</a>")
b.innerHTML = d.join("")
}
```
実行例
検索欄の右横に「+」ボタンをつけました。 タップすると新規ファイルの作成になります。 検索欄の文字列をファイル名と見なします。
スタイル管理
classスタイルが使えるかの実験も兼ねてます。 dv.el("style",s)のところ。 普通の使い方ならうまく行きそうです。 これならスタイル管理がしやすい。
ただ、Boxesをサイドパネルに置くと、スタイルが反映しません。 再読み込みで表示はするから、タイミングだろうなあ。
さらに、左サイドパネルで検索しようとすると、一回目はパネルが閉じてしまう。 二回目は閉じない。 この理由が不明。
divタグにonclickを埋め込む方式も試したのですが、こちらは成功しませんでした。 今回もaタグで誤魔化してます。
まとめ
ちょっとずつ改良。ひとりアジャイル。