ようするに「チラシの裏」。
localStorage
データの保存ができる。 ということで、もう少し緻密なバージョンを考えてみました。 カーソル位置も記憶します。
scratch.md
setCursorを使ってみます。
<%* e = app.workspace.activeLeaf.view.editor c = e.getCursor() f = tp.file.folder(true) + "/" + tp.file.title + ".md" if(f != "//_scratch.md"){ localStorage.scratch = f localStorage.scratch_cursor = JSON.stringify(c) f = "_scratch.md" p = app.vault.getAbstractFileByPath(f) if(!p) p = await app.vault.create(f, "") app.workspace.activeLeaf.openFile(p) }else{ f = localStorage.scratch c = JSON.parse(localStorage.scratch_cursor) p = app.vault.getAbstractFileByPath(f) await app.workspace.activeLeaf.openFile(p) e.setCursor(c) } %>
ルートに_scratch.md
というファイルを自動で作ります。
使い方
スクリプトを実行すると作業用のファイルが開く。 もう一度実行すると元のファイルに戻る。 そういう挙動をします。
解説
codeMirrorのgetCursorはオブジェクトを返してくるので、そのままlocalStorageで書き込んではいけないのでした。 stringifyで文字列化する必要があった。 ここになかなか気付けなくて、作るまでに時間がかかりました。
まとめ
実は2本指でスワイプすると元のファイルに戻れるので、このスクリプト自体はあまり意味がないことに後で気づいた。