こなれてきました。
tagging
geminiを使ったタグの埋め込みですが、いい感じ。
たまにgeminiがリスト形式で返してくるので、 それにも対応してみました。
<%* // APIキーを https://aistudio.google.com/app/apikey で取得してください。 const api_key = 'QuuuuuuX' // スクリプト本体 const prompt = "<content>からキーワードを抽出し、フロントマターの形式でtagsに設定してください。" const url = 'https://generativelanguage.googleapis.com/v1beta/models/' const model = 'gemini-1.5-flash' const content = tp.file.content text = `<content>${content}</content>\n:${prompt}` end_point = `${url}${model}:generateContent?key=${api_key}` new Notice("tagging...") const data = { contents: [{ parts: [{ text: text }] }] } response = await fetch(end_point, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(data) }) if(response.ok) { const result = await response.json() new Notice("プロパティに設定") s = result.candidates[0].content.parts[0].text if(s[0]=="\`") { s = s.replace(/^```.*\n/, "") s = s.replace("```", "") } if(s[0]!="-") { s = `---\n${s}\n---\n` } if(content[0]=="-") { s = s.replace("---\n", "") d = content.split("\n---\n") a = d.shift() b = d.join("\n---\n") s = `${a}\n${s}${b}` } else { s = `${s}${content}` } e = app.workspace.activeLeaf.view.editor e.setValue(s) }else{ new Notice(response.statusText) } %>
変数api_keyに、下記リンクで取得したAPIキーを設定してください。
https://aistudio.google.com/app/apikey
Webクリップにタグ付け
Webクリップに使うと便利です。
たとえばKindleハイライトでtaggingすると、 プロパティにタグが追加されます。
これで、2Hop Linksで「お隣さん」を発見できる。
読書が立体的になります。
2Hop Links Plus
2Hop Linksはコミュニティプラグインからインストールしてください。
Import Obsidian: 2Hop Links Plus
2Hop Linksは2つあるけど、モバイル対応はPlusのほう。 配色はStyle Settingsで変更できます。
まとめ
あまりタグは使ってこなかったのですが、 Kindleには有効ですね。 タグを見るだけで内容を思い出せる。 不要なタグは x を押してプチプチ消してください。