Jazzと読書の日々

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

Logseqのホワイトボードからテキスト抽出

描きやすさだとこれなんだけど。

ホワイトボード

Logseq標準でついているお絵描きソフト。 フローチャートを描く基本が押さえてあって使いやすい。

ednファイルを作るので中を見てみるとTldrawの亜型のようです。 じゃあ、ObsidianのTldrawで開けるのかなあ、と期待したのですが、うまくいきませんね。 json系かと思ったのに、書式が変な形になっているし。 これは使えない。

それで別方向から攻めてみました。

custom.js

起動時にスクリプトを読み込ませてメニューにボタンを作ります。 logseqフォルダの中にcustom.jsを作成するんだけど、以前の記事を参照してください。 Paper使うと手軽にできますよ。

e = document.createElement("div")
e.id = "WBoard"
e.innerHTML = "W"
e.style = "color:darkred;font-size:22px;margin-right:12px;"
head.lastChild.prepend(e)

WBoard.onclick = () => {
  p = document.querySelectorAll(".tl-text-shape-wrapper, .tl-text-label-inner-wrapper")
  s = ""
  for(i=0;i<p.length;i++) {
    d = p[i].innerText
    if(d.charCodeAt(0) != 8203) s+= d + "\n"
  }
  t = document.querySelector(".title").innerText
  s = "obsidian://new?file=Inbox/" + encodeURIComponent(t) + "&content=" + encodeURIComponent(s)
  open(s)
}

たぶん矢印のところだと思うんだけど、幅のない文字を返すみたいで、それを除去するのに難儀しました。 コードが8203だからゼロ幅スペースらしい。

使い方

右上に「W」というボタンが増えます。

ホワイトボードを開いているときに、この「W」をタップしてください。 Obsidianが起動し、ホワイトボード内のテキストを箇条書きで表示します。

もちろんスクリプトを書き換えれば出力先をBearやDraftsにもできます。 Obsidianの場合は、先に起動していないと書き込めないので他のエディタのほうがいいかもしれない。

まとめ

矢印の拾い方がわかれば、mermaidで書き出せるのかなあ。