Wikilink to Zotero Word
unlistedby chmzs
Export Obsidian wikilinks to Word with Zotero citations via Pandoc
Wikilink to Zotero Word
English | 中文
将 Obsidian [[wikilink]] 文献引用导出为 Word 中的 Zotero 活引文,或 Markdown 作者年份制脚注。
[!tip] 推荐搭配 本插件与 Zotero One(公众号 青柠学术 出品)配合使用效果最佳——Zotero One 自动同步文献笔记到 Obsidian,笔记文件名自带引用所需的 itemKey,本插件负责将写作成果导出为 Word。
为什么需要这个插件
Zotero 是优秀的文献管理软件,但其笔记管理与写作输出仍有不足——新时代我们急需将知识输入高效转化为学术发表。Zotero One 打通了 Zotero 与 Obsidian,自动同步文章笔记,加上 Obsidian 自带的双链快捷引用和即时预览,写作体验十分流畅。
相比之下,Word 中直接通过 Zotero 插入文献显得迟缓,跳转回 Zotero 查阅原文也颇为繁琐。但 Word 仍是学术交流的硬通货——复杂排版、 CSL 样式切换、期刊投稿都离不开它。
wikilink-zotword 正是为打通这"最后一公里"而生。 借助 Better BibTeX 提供的 zotero.lua,我们将 Obsidian 中的双链引用无缝转换为 Word 中可动态更新的 Zotero 活引文(Live Citation),高效融合 Obsidian 写作的畅快与 Word 排版的专业能力,上手轻便。
图文版上手教程见 docs/tutorial.md。
导出模式
| 模式 | 命令 | 输出 | 依赖 |
|---|---|---|---|
| BBT | Export to Word (Zotero Citations) | .docx(活引文) | Zotero + BBT + Pandoc |
| Lite | 同上 | .docx(活引文) | Zotero + Pandoc |
| 脚注 | Export to Markdown (Obsidian Footnotes + Zotero) | .md(作者年份制脚注 + HTML 图表题注) | Zotero + Pandoc |
| 修订对比 | Export to Word with Track Changes (compare with older docx) | .docx(Word 原生修订痕迹) | Zotero + Pandoc + Microsoft Word |
- BBT(推荐):活引文最稳定,支持 CSL 样式切换,高级作者名处理
- Lite:无需安装 BBT,适合受限环境。生成的活引文可正常刷新
- 脚注:适合微信公众号、博客等 Markdown 发布平台
- 修订对比:先正常导出新版,再与本插件(或同管线)导出的旧版 docx 比较,生成带 Word 原生修订标记的对比文档,导师可在 Word 中逐条接受/拒绝
[!tip] 图文教程 更直观的上手教程(含截图与效果示例)见 docs/tutorial.md。
安装
手动安装
- 从 Releases 下载最新版
wikilink-zotword.zip - 解压得到
wikilink-zotword/文件夹,整个放入{vault}/.obsidian/plugins/下 - 重启 Obsidian(或在 设置 → 第三方插件 中点刷新),启用 "Wikilink to Zotero Word"
依赖安装
| 依赖 | 必需? | 说明 |
|---|---|---|
| Pandoc ≥ 2.16.2 | ✅ 全部模式 | 需在 PATH 中,或在设置中填入完整路径 |
| Zotero | ✅ 全部模式 | 需运行(端口 23119) |
| Better BibTeX | 仅 BBT 模式 | Zotero 插件 |
| pandoc-crossref | 可选 | 图表公式交叉引用;Quarto 用户自动检测 |
快速上手
- 安装插件和依赖
- 打开一篇包含
[[wikilink]]引用的笔记 Ctrl+P→Export to Word (Zotero Citations)- Word 中打开导出的
.docx,Zotero 会提示设置文档偏好
就这么简单。
[!note] 引用格式 笔记中引用需要包含 Zotero 的 8 位 itemKey(Zotero One 自动生成):
[[2024_Smith_Advances in method_KEY-ABC12345|Smith et al., 2024, J. Sci.]]管道符
|后的别名仅在 Obsidian 中显示,导出时由 Zotero 替换为 CSL 格式。
图表题注与交叉引用
在 Obsidian 中使用 Callout 语法为图片和表格添加题注:
> [!figure] 图 1 实验结果对比
> 说明文字
>
> 
如 @fig:1 所示,……
> [!table] 表 1 参数对比
> 数据来源:综合文献
>
> | 参数 | 说明 |
> |------|------|
> | A | 描述1 |
> | B | 描述2 |
如 @tbl:1 所示,……
行内公式:$y = ax^2 + bx + c$ {#eq:quadratic}
如 @eq:quadratic 所示,……
[!info] 交叉引用说明
@fig:name→图 N(引用图片)@tbl:name→表N(引用表格,无空格)@eq:name→式 N(引用公式)- 标签名规则:仅允许
a-zA-Z0-9-,用-连接单词(如{#fig:temp-curve}),不允许下划线- 子图:同一图多个子图共享标签名,引用加空格+字母:
@fig:name a→图 1a(脚注导出自动去空格,Word 导出手动去空格)- 前缀继承:使用
图、表、式还是Fig.、Tab.、Eq.,由设置中的前缀(Figure/Table/Equation prefix)控制,文档 YAML 用crossref_lang: zh/crossref_lang: en切换中英文预设- Word 导出需安装 pandoc-crossref,在设置中填入可执行文件路径
- Easy Typing 用户:若
{#fig:label}被自动加空格,在 Easy Typing 设置 → 自动格式化 → 用户自定义正则表达式区块首行添加\{#[\w\-:]+\}|--
Word 导出后批量修正子图空格
Word 导出后子图引用会有空格(如 Fig. 1 a、图 1 a),需分前缀分步用 Word 通配符替换(Word 通配符不支持 | 表示“或”)。
示例:
- 中文前缀:查找
图 ([0-9]@) ([a-z])→ 替换图 \1\2 - 英文前缀:查找
Fig\. ([0-9]@) ([a-z])→ 替换Fig. \1\2 - 英文前缀:查找
Figure ([0-9]@) ([a-z])→ 替换Figure \1\2
其他前缀(表/式/Table/Eq./Equation)同理,逐个前缀重复上述步骤。
[!tip] 子图字母列表(
a,c)自动支持 同一表达式无需改即可处理逗号列表:图 1 a,c→图 1a,c、Fig. 1 a,c→Fig. 1a,c(首个字母前的空格被去掉,,c原样保留)。
[!note] Word 通配符语法要点
- 数字:
[0-9]@(@表示前字符出现 1 次或多次,不用\d、+、{1,})- 字母:
[a-z]或[a-zA-Z](不用\w)- 捕获组引用:
\1\2(不用$1$2)- 不支持
|表示“或”,需分前缀分步替换- 点号
.需转义\.(如Fig\.、Eq\.)
双语图表题注
中文期刊与学位论文常要求图表题注中英文对照。题注中用 | 分隔中英文,插件自动排成上下两行(格式参照向丽雄博士论文的题注风格):
> [!figure] 图 1-1 全新世温度重建 | Fig. 1-1. Holocene temperature reconstruction.
> 数据说明
>
> 
> [!table] 表 1-1 代用指标对比 | Tab. 1-1. Proxy comparison.
>
> | 指标 | 信号 |
> |------|------|
- Word 导出:中文行、英文行在同一题注段内上下两行(Word 真实换行,非软回车);编号按你写的保留——Word 模式的编号由你自己或模板控制
- Markdown 脚注导出:两行均自动加编号(
图 1 中文题注+Fig. 1 English caption)。题注里不要再手写编号;英文行前缀取自设置的 English 列(Figure prefix 默认Fig.,Table prefix 默认Tab.) - 双语内容需自己翻译,插件不做翻译;不需要双语时题注中不写
|即可 - 注意:
|分隔符只对 figure/table callout 题注生效,普通图片嵌入![[file|caption]]的|仍是宽度/题注参数
修订对比(Word 修订痕迹)
修改论文后,让导师在 Word 中直接看到你的修改(原生 Track Changes,可逐条接受/拒绝):
- 第一版用
Export to Word (Zotero Citations)导出并发给导师(这份 docx 就是"旧版") - 修改笔记后,
Ctrl+P→Export to Word with Track Changes (compare with older docx) - 弹窗中确认旧版 docx 路径——默认预填上次所选,直接点"开始导出"即可;不对再"选择文件…"重新挑
- 插件先正常导出新版 docx,再调用 Microsoft Word 比较两份文档,生成
{笔记名}_修订对比.docx并在资源管理器中定位
[!note] 修订对比的注意事项
- 依赖本机安装 Microsoft Word(Windows 平台,COM 自动化),WPS 暂不支持
- 旧版与新版建议都由本插件导出(同一条 Pandoc 管线、同一 Word 模板)。若旧版是老师手动排过版的文件,排版差异会污染比较结果
- 修订作者名继承 Word 自身的用户名设置(Word → 文件 → 选项 → 常规 → 用户名)
Markdown 脚注导出
适合微信公众号、博客、Notion 等 Markdown 发布平台。
- 设置面板 → CSL style file 填入样式文件路径或 URL(默认
apa) Ctrl+P→Export to Markdown (Obsidian Footnotes + Zotero)- 自动生成
{文件名}_footnotes.md并在 Obsidian 中打开
输出效果:
## 图表题注(HTML 格式)
<center><img src = "图片路径" width = "100 px"/></center>
<center><b>图 1 实验结果对比</b></center>
<center><font color="#595959">说明文字</font></center>
如 图 1 所示,……
<center>表1 参数对比</center>
| 参数 | 说明 |
|------|------|
| A | 描述1 |
<center><font color="#595959">数据来源:综合文献</font></center>
如 表1 所示,……
$$y = ax^2 + bx + c \tag{式 1}$$
如 式 1 所示,……
## 参考文献
[^1]: 张三, 李四. (2024). 一项研究. *示例学报*, 12(3), 456-478.
- 图表题注:图片、表格、公式题注转换为 HTML 格式,居中显示,编号自动生成(图 1、表1、式 1)
- 交叉引用:
@fig:name、@tbl:name、@eq:name自动替换为对应的编号 - 标题等级:保持源文档的标题等级(
##不变) - 正文:
作者 (年份)[^n](作者年份制) - 文末:完整参考文献(含 DOI)
- 无需 BBT,仅需 Zotero 运行
设置
导出设置
| 设置项 | 默认值 | 说明 |
|---|---|---|
| Export mode | BBT | BBT / Lite |
| CSL style file | apa | 脚注导出的 CSL 样式(作者年份制推荐 APA) |
| Output directory | (空=笔记同目录) | Word 导出目录 |
| Word template | (空=默认模板) | 自定义 .dotx/.docx 模板路径(推荐下方内置模板) |
| 上次比较的文件 | (空) | 「导出为修订对比版」默认使用的旧版 docx 路径,导出弹窗中可临时更换 |
| Pandoc path | pandoc | Pandoc 路径 |
[!tip] 推荐 Word 模板(学术投稿版) 仓库自带适配中文学术期刊/学位论文的脱敏模板 docs/templates/academic-cn.dotx:图片/图题/表题居中、三线表、标题层级(一级黑体16pt居中 / 二级黑体14pt / 三级楷体12pt)、正文宋体+Times 五号、通用字体无需方正字库。下载后在 Word template 填入完整路径即可,效果见图文教程。
[!note] Word 导出的引文样式 Word 模式生成 Zotero 活引文,引文格式由 Word 中的 Zotero 插件控制(文档偏好 → 选择 CSL 样式),无需在插件设置中指定。
图表交叉引用
| 设置项 | 默认值 | 说明 |
|---|---|---|
| Figure prefix | 图 | 图前缀 |
| Table prefix | 表 | 表前缀 |
| Equation prefix | 式 | 公式前缀 |
| pandoc-crossref path | (空=不使用) | pandoc-crossref 可执行文件路径,需自行下载安装 |
下载 Windows 版本
pandoc-crossref.exe后,在设置中填入完整路径(如D:/tools/pandoc-crossref.exe)。
用户配置指南
BBT 模式(推荐)
- Zotero → 工具 → 附加组件 → 获取更多附加组件 → 搜索 "Better BibTeX" → 安装 → 重启 Zotero
- 配置引用键格式:
- BBT 默认公式为
auth.lower + year,建议改为auth.lower + year + '-' + item(即{auth.lower}{year}-{item}) - 末尾的
+ item是 BBT 的关键词,用于在 citekey 中嵌入 8 位 item key,不可写为itemkey - 若不包含 item key,Lite 模式无法匹配引用
- BBT 默认公式为
- 配置特殊字符过滤(解决弯撇号问题):
- 编辑 → 首选项 → 高级 → 配置编辑器
- 搜索
extensions.zotero.translators.better-bibtex.citekeyUnsafeChars - 值末尾添加弯撇号
'(U+2019):"#%'(),={}~'" - 重启 Zotero → BBT → 管理引用键 → 重新生成所有引用键
- 设置引文样式:Word 导出后,在 Word 中点击 Zotero → Document Preferences 选择 CSL 样式
- 中文常用:
china-national-standard-gb-t-7714-2015-numeric(GB/T 7714 国标) - 更多:https://www.zotero.org/styles
- 中文常用:
Lite 模式
无需 BBT,仅需 Zotero 运行。适用于无法安装 BBT 的受限环境。
自定义 Word 模板
- 准备
.docx模板(含页眉页脚、标题样式、正文字体等) - 插件设置 → Word template 填入绝对路径
- 导出时自动应用模板样式
FAQ
导出后引文显示 `open Zotero document preferences: [@xxx]`
这是正常的域代码占位符。在 Word 中点击 Zotero → Refresh,首次弹出 Document Preferences 对话框,选择 CSL 样式后即可正常显示。
`d'cona Guedes` 等弯撇号作者导出失败
BBT 模式需配置 citekeyUnsafeChars(见上文配置指南)并重新生成引用键。Lite 模式无此问题。
找不到 Pandoc
确认 Pandoc 已安装且在 PATH 中。或在设置中填入完整路径(如 D:/Program Files/Quarto/bin/tools/pandoc.exe)。
同名 Word 被占用
关闭正在打开的同名 .docx 文件后重试。
中文作者 citekey 格式
中文作者保持原样(不转小写),如 张三丰2023-4NX85H85。
如何批量导出多个笔记?
当前版本暂不支持,计划在后续版本实现。
未来计划
- 双语引文(中英文混合)
- 多种导出格式支持(https://github.com/mokeyish/obsidian-enhancing-export、https://github.com/l1xnan/obsidian-better-export-pdf)
- 边写边引:命令面板搜索 Zotero 文献 → 插入 wikilink
- 批量导出多个笔记 + 导出进度条
- 代码重构:将 preprocessor.ts 拆分为 markdown.ts / word-export.ts / footnotes-export.ts
开发
npm install
npm run dev # 开发监听
npm run build # 生产构建 → dist/
npm run test # 运行测试
致谢
- Better BibTeX — 提供
zotero.luaPandoc filter - Zotero One — 打通 Zotero 与 Obsidian
- pandoc-crossref — 图表公式交叉引用
- Pandoc — 文档格式转换引擎
- Obsidian for paper — Obsidian学术写作教程
License
MIT
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.