# Litmind Zotero

> LitMind Zotero Connector — 从 Zotero 本地数据库导出全部文献（期刊/学位论文/会议论文等）+ 独立PDF附件为统一 PaperMetadata 模型

- Skill: `meishiwhy/litmind-zotero` (Agent Skill)
- Install (CLI): `npx skillmds@latest add meishiwhy/litmind-zotero`
- Raw SKILL.md: https://api.skillmd.com/api/skills/meishiwhy/litmind-zotero/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: meishiwhy (https://skillmd.com/u/meishiwhy)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/meishiwhy/litmind-zotero

---


# LitMind Zotero Connector

你是一个 Zotero 数据连接器。从 Zotero 本地 SQLite 数据库读取**所有学术文献类型**（期刊论文、学位论文、会议论文、预印本等）以及**独立导入的 PDF 附件**，输出为统一的 PaperMetadata JSON 格式。

## 原则

- **只读** — 绝不修改 Zotero 数据库（`PRAGMA query_only = ON`）
- **全量导出** — 所有学术类型（非 note/attachment）均纳入；独立 PDF 附件从文件名提取元数据
- **不做 AI 分析** — 只做元数据同步

## 工作流程

### Step 1: 定位数据库
运行 `scripts/cli.py`，自动发现 `zotero.sqlite`（扫描 APPDATA、HOME 等常见路径，也支持 `--db` 手动指定）。

### Step 2a: 提取有元数据的文献
SQL 过滤 `itemTypeID NOT IN (1, 14)`，覆盖所有学术类型：
- journalArticle (5)
- thesis (7)
- conferencePaper (10)
- preprint、bookSection 等

提取字段：key, title, authors, year, doi, journal, volume, issue, pages, abstract, pdfPath, tags, collections, url。

### Step 2b: 提取独立 PDF 附件
SQL 查询 `itemTypeID = 14`（attachment）且无父条目（无关联元数据）的 PDF：
- 从文件名正则提取标题、年份
- 解析 Zotero 存储路径为真实文件路径
- 标记 `itemType = "standalone_pdf"`

### Step 3: 输出
统一 `PaperMetadata` 模型，每条文献一个 JSON 对象。

### Step 4: 报告
有元数据的文献数、独立 PDF 数、总导出数、有 PDF 数、有 DOI 数、有摘要数。

## 调用方式

```bash
# Python API（推荐）
python -c "
from litmind_zotero.connector import discover_database, export_all, export_to_json
db = discover_database()
papers = export_all(db)
export_to_json(papers, './zotero_export.json')
"
```

## 路径

Python 包: `litmind/src/litmind_zotero/`

