分割執筆に不可欠。
プログレ・バー
各章の進み具合を閲覧します。 どれくらい書いたかを見える化する。
一晩寝かせて、デザインをじっくりコトコト絞り込みました。
progress.md
dataviewスクリプトです。
---
cssclasses: table-wide, table-nowrap, table-tiny, row-alt, cards
---
```dataviewjs
const s = dv.current().file.folder
const d = dv.pages("").file
.filter(x => x.folder == s)
.sort(x => x.mtime, "desc")
.map(x => [ x.link, "<progress value=" + x.size + " max=3200></progress>", "<div align=right>" + x.size + "</div>"])
dv.table(["", "bar", "size"], d)
```
これを対象フォルダに放り込みます。
一目瞭然
リーディングビューにすると ↑ のようになります。
日付は省いて、ファイルサイズだけ表示します。 右寄せにしてみました。 3200バイトを超えるとバーが満タンになるようにしています。
まだ中身のできてないファイルが一目瞭然。 修正日順に並びます。 ファイル名をタップすると、元ファイルを開きます。 推敲がしやすくなります。
Sortableプラグイン
プラグインのSortableを入れると、progress.mdの右肩にボタンがつきます。 このボタンで、名前順やサイズ順に切り替えることができます。
Sortableを使えば、通常のdataviewテーブルでも、ヘッダーをタップするだけで並び順を変更できます。 これがあってやっとデータ分析っぽくなる。
まとめ
ファイルがある程度揃ってからPlaylistに切り替えるといいかも。
8/22
新規作成ボタンが欲しくなったので。 フォルダ名がボタンになります。
---
cssclasses: table-wide, table-nowrap, table-tiny, row-alt, cards
---
```dataviewjs
const s = dv.current().file.folder
const btn = dv.el("button", s)
btn.style = "font-size:12px;margin:5px;"
const d = dv.pages("").file
.filter(x => x.folder == s)
.sort(x => x.mtime, "desc")
.map(x => [ x.link, "<progress value=" + x.size + " max=3200></progress>", "<div align=right>" + parseInt(x.size/2) + "</div>"])
dv.table(["", "bar", "size"], d)
btn.onclick = function(){
open("obsidian://new?file=" + encodeURI(s) + "/")
}
```