🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

Zotero 文献引用 yuzh2001/dsh-zotero

Cordis
yuzh200181 天前有提交已提供中文文档扫描:含敏感能力

在侧边栏浏览文献库,双击或搜索即可插入引用

24.4/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/22 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add yuzh2001/dsh-zotero
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · browser
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 81 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件发起外部网络请求
查看扫描证据(共 13 处,展示前 13 条)
  • 发起网络请求
    src/client/zotero-api.ts:26
    response = await fetch(`/zotero/api/${method}`, {
  • 写入本地文件
    src/host/zotero-sqlite.ts:565
    if (this.options.cacheDir) mkdirSync(dir, { recursive: true })
  • 写入本地文件
    src/host/zotero-sqlite.ts:566
    else { try { mkdirSync(dir, { recursive: true }) } catch { } }
  • 读取本地文件
    src/host/zotero-sqlite.ts:603
    try { return statSync(this.liveDbPath).mtimeMs } catch { return 0 }
  • 读取本地文件
    src/host/zotero-sqlite.ts:615
    if (!existsSync(this.liveDbPath)) {
  • 写入本地文件
    src/host/zotero-sqlite.ts:620
    try { mkdirSync(dir, { recursive: true }) } catch { }
  • 写入本地文件
    src/host/zotero-sqlite.ts:625
    copyFileSync(this.liveDbPath, tmp)
  • 写入本地文件
    src/host/zotero-sqlite.ts:626
    renameSync(tmp, this.snapshotPath)
  • 删除本地文件
    src/host/zotero-sqlite.ts:631
    try { unlinkSync(tmp) } catch {}
  • 读取本地文件
    src/host/zotero-sqlite.ts:643
    if (!existsSync(this.snapshotPath) || this.snapshotOlderThanLive()) {
  • 读取本地文件
    src/host/zotero-sqlite.ts:651
    return statSync(this.snapshotPath).mtimeMs < statSync(this.liveDbPath).mtimeMs
  • 读取本地文件
    src/host/zotero-sqlite.ts:674
    try { return statSync(this.liveDbPath).mtimeMs } catch { return 0 }
  • 读取本地文件
    src/host/zotero-sqlite.ts:679
    try { return statSync(this.snapshotPath).mtimeMs } catch { return 0 }
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

在 DeepSeek Harness 中浏览、搜索并引用你的 Zotero 文献库(侧边栏文件树 + & 与 /zotero 快速引用)

README

由 DeepSeek 最新模型翻译生成
dsa-zotero-sidebar 在 DeepSeek Harness 里直接浏览、引用你的 Zotero 文献库 Zotero 文件树 双击引用 内联搜索 /zotero 命令 模型工具右侧边栏 + 输入框快捷引用,边读论文边写提示词。 基于 dsh-better-sidebar 的右侧栏,宿主侧直接读 Zotero SQLite 🌏 中文 ✨ 功能一览 - 🗂️ Zotero 文件树:在 better-sidebar 右侧栏渲染你的 Zotero 文库(收藏夹层级、懒加载展开),宿主直接读本地 zotero.sqlite,无需 API key - 🖱️ 双击引用:双击任意论文/文件夹 → 在输入框注入可读引用 《论文题名》{%ZoteroItem:key%},光标零破坏(纯文本,不用 DSH chip 占位) - 🔎 & 内联搜索:在输入框打 & 弹出自绘搜索层(真 input、自动聚焦),按标题/作者搜库、方向键或回车选择,选中即插入引用 - ⌘ /zotero 命令:斜杠命令打开同一个搜索层,交互与 & 完全一致 - 🛠️ 模型工具:注册 resolve_zotero_ref,模型看到 {%ZoteroItem:key%} 即可解析该论文的标题/作者/年份/摘要在库路径
展开完整文档(README 剩余 1 节)
dsa-zotero-sidebar

在 DeepSeek Harness 里直接浏览、引用你的 Zotero 文献库 Zotero 文件树 双击引用 内联搜索 /zotero 命令 模型工具右侧边栏 + 输入框快捷引用,边读论文边写提示词。
基于 dsh-better-sidebar 的右侧栏,宿主侧直接读 Zotero SQLite

🌏 中文

✨ 功能一览

- 🗂️ Zotero 文件树:在 better-sidebar 右侧栏渲染你的 Zotero 文库(收藏夹层级、懒加载展开),宿主直接读本地 zotero.sqlite,无需 API key
- 🖱️ 双击引用:双击任意论文/文件夹 → 在输入框注入可读引用 《论文题名》{%ZoteroItem:key%},光标零破坏(纯文本,不用 DSH chip 占位)
- 🔎 & 内联搜索:在输入框打 & 弹出自绘搜索层(真 input、自动聚焦),按标题/作者搜库、方向键或回车选择,选中即插入引用
- ⌘ /zotero 命令:斜杠命令打开同一个搜索层,交互与 & 完全一致
- 🛠️ 模型工具:注册 resolve_zotero_ref,模型看到 {%ZoteroItem:key%} 即可解析该论文的标题/作者/年份/摘要在库路径
- 🔗 Zotero 深链:悬停引用可跳转 zotero://select/items/... 在本地点开原文

🚀 安装

前置:已装好 DSH(dsh web 能正常运行)、部署了 dsh-better-sidebar、Node.js ≥ 20、pnpm ≥ 10,且本机装有 Zotero 桌面端(读取 %LOCALAPPDATA%/Zotero/ 或 ~/Zotero/ 下的 zotero.sqlite)。

macOS / Linux:

curl -fsSL https://raw.githubusercontent.com/yuzh2001/dsh-zotero/main/scripts/install.sh | bash

Windows(PowerShell 5.1+ / pwsh):

irm https://raw.githubusercontent.com/yuzh2001/dsh-zotero/main/scripts/install.ps1 | iex

装完硬刷新浏览器(Cmd/Ctrl+Shift+R)即可看到右侧栏的 Zotero 标签页(client 改动无需重启 DSH;仅 host 半改动时需要重启)。

指定配置档 / 装完自动重启(可选)

macOS / Linux:安装到指定 profile ext-dev,装完重启
curl -fsSL https://raw.githubusercontent.com/yuzh2001/dsh-zotero/main/scripts/install.sh | bash -s ext-dev --restart

Windows PowerShell
& ([scriptblock]::Create((irm 'https://raw.githubusercontent.com/yuzh2001/dsh-zotero/main/scripts/install.ps1'))) -Profile ext-dev -Restart

不确定的话,可先加 --dry-run(PowerShell 用 -DryRun)预览步骤再执行。

手动安装(逐步命令,想看清每一步)

与一键脚本等价。第 ③ 步可重复执行;①② 只需做一次。

macOS / Linux(bash):

cd ~/.dsh/profiles/web # 换成你的目标 profile

① 放行构建脚本(pnpm 11 拦截)
pnpm approve-builds --all

② 放行新版本(一次性;若已有该键,把 - dsa-zotero-sidebar 并入其下即可)
echo -e "\nminimumReleaseAgeExclude:\n - dsa-zotero-sidebar" >> pnpm-workspace.yaml

③ 安装并自动挂载(识别 dsh.bundle.patch,登记进 dsh.profile.bundles)
npx -y --package @deepseek-ai/dsh dsh plugin --profile web add dsa-zotero-sidebar

脚本内部做了什么(技术细节)

一键脚本自动完成 5 件事(全部幂等,可安全重复执行):

0. 上游依赖自检:若该配置档未装 dsh-better-sidebar(本插件的宿主),先执行它的官方一键安装;
1. 预写 allowBuilds(规避 pnpm 11 的构建脚本拦截);
2. 预写 minimumReleaseAgeExclude,放行「发布不足 24 小时」的新版本;
3. 执行 dsh plugin --profile <profile> add dsa-zotero-sidebar:登记依赖 → 识别包内 dsh.bundle.patch → 自动注册进 dsh.profile.bundles 挂载;
4. 清理旧版残留的手动挂载行,避免「双挂载」(页面出现两个 Zotero 标签)。
curl | bash / irm | iex 会执行远程代码——脚本已随仓库开源(scripts/install.sh / scripts/install.ps1),可先下载审阅。插件以 npm 包 dsa-zotero-sidebar@0.1.0 发布,通过 dsh.bundle.patch(随包的 cordis.patch.yml)由官方 CLI 自动挂载,不修改 DSH 源码。

更新

dsh plugin --profile web add dsa-zotero-sidebar

或重跑一次一键脚本;也可把 ~/.dsh/profiles/web/package.json 里的版本号改高后 pnpm install。改完硬刷新浏览器(Cmd/Ctrl+Shift+R)即可(client 改动无需重启 DSH)。

常见问题

| 现象 | 原因与解决 |
| 右侧栏没有「Zotero」标签 | 需要先装好 dsh-better-sidebar;本插件挂在它提供的右侧栏上。 |
| 搜不到论文 | 宿主在 %LOCALAPPDATA%/Zotero/zotero.sqlite(Win)或 ~/Zotero/zotero.sqlite(mac/Linux)找库;改过自定义 data dir 的话,用 DSH_ZOTERO_DIR 环境变量指过去。 |
| 报 Ignored build scripts | pnpm 11 拦截构建脚本。跑 pnpm approve-builds --all(一键脚本已自动处理)。 |
| 页面出现两个 Zotero 标签 | 双挂载:cordis.patch.yml 还留着旧的手动挂载行,删掉那段 - insert: ... zotero-sidebar ...(一键脚本会自动清)。 |

从源码安装 / 开发(可选)

git clone https://github.com/yuzh2001/dsh-zotero.git ~/Dev/dsh-zotero
cd ~/Dev/dsh-zotero && pnpm install && pnpm build
把 ~/.dsh/profiles/<profile>/package.json 的 dependencies 写 "dsa-zotero-sidebar": "link:~/Dev/dsh-zotero" 或直接 dsh plugin --profile <profile> add /path/to/dsa-zotero-sidebar.tgz

更新:git pull && pnpm install && pnpm build → 硬刷新(client 热加载;host 半改动才需重启)。

🔌 接入:作为 better-sidebar 的客户端

本插件通过 ctx.betterSidebar.registerTab 注册 id: 'dsa-zotero:library' 的 Zotero 标签页,与 better-sidebar 内置的 Explorer 等 tab 平级。

🛠️ 开发与构建

pnpm install
pnpm typecheck # tsc --noEmit
pnpm bundle # tsdown → lib/index.js + lib/client.js + lib/types

架构:单 npm 包、host/client 双半结构——host(src/index.ts):/zotero/api JSON 路由(library.tree / node.expand / search / item.resolve),直读本地 zotero.sqlite(node:sqlite),受 Host 头信任围栏保护;client(src/client/index.tsx):better-sidebar 的 Zotero 标签页 + &//zotero 引用浮层 + 背景懒加载。引用是纯文本 token 《题名》{%ZoteroItem:key%},不走 DSH 的 chip/occurrence 占位,因此光标永远对齐、不破坏输入。

⚠️ 已知限制

- 需要本机装着 Zotero(读它的 SQLite),不支持只读 Zotero Web API
- 双击/搜索引用插入的是题名字面 + key 的纯文本,不改写原库

🔗 友情链接

- dsh-better-sidebar:本插件的右侧栏宿主
- DSH-better-sidebar 提供 ctx.betterSidebar.registerTab 扩展点
预览分享卡片长什么样 ↓yuzh2001/dsh-zotero
分享 · DeepSeek Harness Hub
yuzh2001/dsh-zotero

在侧边栏浏览文献库,双击或搜索即可插入引用

这是你的仓库?认领条目

回到顶部