给 Gemini 装上“透视眼”:我如何用 AI 手搓了一个 DeepSeek 风格的侧边导航插件

💡 起因:长对话的“迷路”困境

作为一名重度 AI 用户,我每天都在 Google Gemini 上进行大量的长文本对话。无论是写代码、分析文档还是头脑风暴,一个 Session 往往会拖得很长。

这时候,DeepSeek 的 UI 设计给了我很大的触动。它的右侧有一个极简的 Minimap(缩略图导航):平时只是一排低调的刻度,鼠标放上去就能看到所有提问的目录,点击即达。

反观 Gemini,虽然模型强大,但在长对话的导航体验上略显原始——想找前天问的第 3 个代码片段?请疯狂滚动滚轮吧。

“为什么不自己动手做一个呢?”

于是,我决定开发一个 Edge 扩展,把 DeepSeek 那个丝滑的侧边栏“移植”到 Gemini 上。有趣的是,这次开发的“结对编程”伙伴,正是 AI 自己。


🛠️ 从 0 到 1:逆向与 MVP

第一步:寻找“钩子”

Google 的网页通常使用了大量的混淆类名(比如 ng-star-inserted, jsaction),直接通过 CSS 选择器定位并不容易。

我首先利用 Chrome DevTools 也是配合 AI 进行“地毯式搜索”,最终锁定了用户的提问气泡容器:.user-query-container。这就像找到了迷宫的入口,只要拿到了这些元素,我就能提取出所有的提问文本。

第二步:MVP(最小可行性产品)

最初的版本非常简陋。我只是简单地把抓取到的标题列在了一个侧边栏里。虽然能用,但有两个大问题:

  1. 太丑了:像是一个贴在屏幕上的记事本,完全破坏了 Gemini 的美感。
  2. 数据重复:Gemini 的页面渲染机制会导致 DOM 中存在大量“隐形”的重复元素,导致目录里出现了重复的标题。

🎨 进化:打造 DeepSeek 风格 UI

为了追求极致的体验,我开始对 UI 进行大刀阔斧的改造。

1. 隐形刻度设计

我参考 DeepSeek,将侧边栏设计为**“平时隐形,悬停展开”**。

隐藏式刻度

  • 默认状态:屏幕右侧只有一排细小的灰色短横线(Marker),宽度仅 28px,完全不遮挡内容。
  • 悬停状态:鼠标移入,面板平滑展开至 200px,显示提问的前 12 个字,并配有**毛玻璃(Frosted Glass)**特效。

2. 霓虹紫的“赛博”美学

在配色上,我经历了一番波折。最初我想用 CSS 变量自适应 Gemini 的主题,但发现 Google 的变量作用域限制较多。

为了确保视觉上的绝对清晰,我最终选择了一套**“暴力美学”**方案:

展开展示

  • Active 状态:无论背景是黑是白,当前激活的条目都会变成亮眼的霓虹紫 (#d946ef),并带有发光呼吸效果(Glow Effect)。
  • Dark Mode 适配:通过监听 bodyhtml 的类名变化,强制深色模式下背景变为深灰,文字变白,确保夜间使用不刺眼。

⚙️ 核心技术难点:如何让高亮“稳如老狗”?

在开发过程中,最让我头疼的是**“当前阅读位置的高亮同步”**。

方案 A:IntersectionObserver(失败)

最初我使用了交叉观察器。逻辑是:“当提问气泡进入屏幕,就点亮侧边栏”。
Bug:如果两个提问之间隔得太远(比如 AI 回复了一篇 5000 字的论文),屏幕中间会是一片空白。此时,上一个气泡出去了,下一个还没进来,侧边栏的高亮就会消失。

方案 B:霸道占位算法(成功)

我重写了逻辑,改为基于坐标的检测
不再问“谁在屏幕里”,而是问**“我现在滚到了哪里”**。

  • 设定一条基准线(屏幕顶部向下 30% 处)。
  • 遍历所有提问,找到位于基准线之上且距离最近的那一个。
  • 只要你没滚到下一个问题,上一个高亮就死死地钉在那里,绝不消失。

🎹 极客模式:Vim 风格键盘流

作为一个开发者,手离开键盘去摸鼠标是无法忍受的。于是我加入了键盘监听模块。

为了避免和 Gemini 原生的输入框冲突(比如方向键移动光标),我采用了 Vim 用户的肌肉记忆快捷键:

  • **Alt + J**:跳转到下一条 👇
  • **Alt + K**:跳转到上一条 👆

配合平滑滚动(Smooth Scrolling)和目标区域的紫色闪烁提示,现在的体验简直是指哪打哪。


🚀 最终功能清单

经过几个晚上的迭代,这个插件已经具备了以下完整能力:

  1. 自动目录生成:实时抓取对话,去重处理。
  2. 双向同步:点击跳转 + 滚动跟随。
  3. 智能主题:完美适配 Light/Dark 模式。
  4. 极致 UI:呼吸灯特效、毛玻璃背景、极简刻度。
  5. 键盘操控:无冲突的快捷键支持。

📝 结语

这个项目的开发过程,其实也是一次与 AI 深度协作的实验。从 DOM 分析到 CSS 动画,再到高亮算法的优化,AI 展现了惊人的辅助能力。

现在,我的 Gemini 终于拥有了 DeepSeek 那样优雅的导航体验。如果你也像我一样受困于长对话的翻页苦恼,不妨也尝试一下这个解决方案。

附:百度网盘链接

1
https://pan.baidu.com/s/1Qe9SzUnthsM5x78hzk5QBQ?pwd=8qie 提取码: 8qie

解压后里面的README有使用说明


技术栈

  • Vanilla JavaScript (无框架,纯原生)
  • CSS3 (Animation, Flexbox, Backdrop-filter)
  • Chrome Extension Manifest V3

Happy Coding!


给 Gemini 装上“透视眼”:我如何用 AI 手搓了一个 DeepSeek 风格的侧边导航插件
http://example.com/2026/01/16/gemini插件开发历程/
作者
Leo shen
发布于
2026年1月16日
许可协议