Jazzと読書の日々

iPadを筆記具として使う方法を模索します

Obsidian Boxesのデザインを変更しました

隣の芝生は眩い。

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タグで誤魔化してます。

まとめ

ちょっとずつ改良。ひとりアジャイル