以下の内容はhttps://wineroses.hatenablog.com/entry/2025/06/04/204754より取得しました。


Obsidian:キーワードを抽出しタグに設定する

こなれてきました。

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はコミュニティプラグインからインストールしてください。

Import Obsidian: 2Hop Links Plus

2Hop Linksは2つあるけど、モバイル対応はPlusのほう。 配色はStyle Settingsで変更できます。

まとめ

あまりタグは使ってこなかったのですが、 Kindleには有効ですね。 タグを見るだけで内容を思い出せる。 不要なタグは x を押してプチプチ消してください。




以上の内容はhttps://wineroses.hatenablog.com/entry/2025/06/04/204754より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14