Gemini对话转标记文本

Copies conversation content, including AI-generated images as Markdown links, for pasting into Obsidian.

作者
Yu Amamiya
日安装量
0
总安装量
1
评分
1 0 0
版本
1.71
创建于
2025-08-21
更新于
2025-08-22
大小
6.4 KB
许可证
MIT
适用于

在gemini对话界面添加一个按钮,点击可复制当前对话内容的标题和内容并转化成md格式,以便在笔记软件中粘贴
图片内容无法复制图片,只能复制图片链接,但是对话中的图片均为私有链接所以ob无法读取,需手动粘贴图片

安全与隐私:

1. 范围限制 (Scope) - @match

// @match https://gemini.google.com/app/*
@match 指令告诉 Tampermonkey,这个脚本只会在访问 gemini.google.com/app/ 及其子路径的页面时激活和运行。

2. 权限请求 (Permissions) - @grant

@grant GM_setClipboard:

功能: 允许脚本将文本内容写入用户的剪贴板。

用途: 这是脚本的核心功能所必需的。在 copyConversationToClipboard 函数的最后,GM_setClipboard(fullMarkdown.trim(), 'text'); 这行代码正是用它来复制处理好的 Markdown 文本。

在本脚本中,它只用于复制您当前页面上可见的对话内容。

@grant GM_addStyle:

用途: 用于美化和定位“复制为Markdown”按钮 (createCopyButton 函数)。

3. 数据处理 (Data Handling)

读取 (Read): 通过 document.querySelector 和 document.querySelectorAll 等标准浏览器 API 从当前 Gemini 页面的 DOM (Document Object Model) 中读取对话标题、用户提问和 Gemini 的回答。

处理 (Process): domToMarkdown 函数将读取到的 HTML 元素(如 strong, ul, li, p, code等)转换为对应的 Markdown 文本。这个过程完全在您的本地浏览器中进行,是纯粹的文本格式转换。

输出 (Output): 将转换后的完整 Markdown 文本字符串通过 GM_setClipboard 复制到剪贴板。

4. 外部通信 (External Communication)

代码中唯一一个引用外部资源的链接是 @icon:

// @icon https://www.google.com/s2/favicons?sz=64&domain=obsidian.md
这只是为了从 Google 的 favicon 服务获取一个图标,用于在 Tampermonkey 管理菜单中显示。不涉及任何数据传输。