思源笔记与 Zotero 联动详细教程:如何用思源笔记管理文献、写文献笔记、写论文初稿

PixPin_2025-06-29_20-17-30

思源笔记目前靠「文献引用插件」已经可以很好地与 zotero 联动了,可以引用 Zotero 文献在思源笔记生成笔记、自动把文献添加到思源笔记数据库并生成文献的基本信息,还可以把有引用文献的笔记一键导出为带文献引用格式的 word 文档,完成论文初稿的写作。

之前我也有简单介绍过思源笔记与 zotero 的联动的,不过介绍的都比较简单,只讲体验,没讲如何配置。由于有人给我打赏了 20 块,让我讲讲具体的联动教程,因此有了这篇文章,来详细讲讲思源笔记与 Zotero 联动的详细教程。

过去一些关于记文献笔记的分享:


本文目录

  • 思源笔记与 Zotero 联动管理文献、写论文的好处

  • Zotero 基本配置

    • 复制笔记带回链
    • 设置 zotero 复制批注的笔记模板
    • 取消英文拼写纠正提示
    • Zotero 如何快捷复制条目链接
  • 思源笔记文献引用插件配置

    • 插件基本设置

    • Zotero 安装 debug-bridge 插件

    • 插件模板设置

      • 引用链接模板
      • 文献内容模板设置
      • 文献笔记模板设置
      • 用思源笔记的数据库管理文献
  • 在思源笔记里如何引用 Zotero 文献

  • 我是如何记文献笔记

    • 💡 记 Figure 笔记
    • 💡 记概念笔记
    • 💡 手动构建独属于自己的知识网络
  • 思源笔记如何写论文

1 思源笔记与 Zotero 联动管理文献、写论文的好处

  1. 思源笔记可以用数据库直接管理 zotero 的文献,可以根据主题进行筛选和排序,可以很方便在数据库搜索想要的文献。

    思源笔记的数据库功能相比 notion,有一个改进,一个文档可以加入多个数据库,也就意味着数据库可以当标签 Plus 功能来用,相比其他笔记的标签功能,数据库除了汇集笔记功能,还自带笔记管理功能,很适合整理笔记。

    表格视图预览

    PixPin_2025-06-03_23-40-40

    画廊视图预览(思源笔记 v3.2.0 数据库添加了画廊视图,画廊视图很适合来展示文献笔记,相比文献只是表格的方式展示在 zotero,可以展示文献里的图片,更方便快速回顾文献内容。

    PixPin_2025-06-29_18-38-19

  2. 写笔记和整理参考文献在一个应用里完成: 做好文献笔记后,就可以直接加入自己的文章初稿或者知识领域笔记里,不需要切换应用

  3. 引用文献,可以悬浮预览文献笔记内容

    目前 word 使用 zotero 引用文献如果使用 GB 国标引用格式,引用只有编号,是不方便查看引用是否正确的。

    PixPin_2025-06-04_08-20-48

2 Zotero 基本配置

2.1 复制笔记带回链

设置-导出-笔记格式,把 Markdown 和富文本的「包括 Zotero 链接」都勾选上

否则粘贴到思源笔记或者其他地方,可能会没有回链,无法跳转回 zotero 对应条目

PixPin_2025-06-29_16-13-15

有回链的效果

“由于我们翻译的时间较为短促,加之我们英语和专业水平的限制, 本书难免会存在一些错误和不当之处,愿请读者予以指正。” () ()

2.2 设置 zotero 复制批注的笔记模板

参考官方文档:note templates [Zotero Documentation]

首选项-高级-编辑器设置:搜索 annotations.noteTemplates.highlight

PixPin_2025-06-29_16-36-38

PixPin_2025-06-29_16-36-50

默认模板

<p>{{highlight}} {{citation}} {{comment}}</p>

个人模板:把批注用引述块包裹起来

{{if comment}} 
    <blockquote>
	<blockquote>{{highlight}}
	</br> </br> 
	👉引自:{{citation}}
	</blockquote>  
	<p>{{comment}}</p> 
	</blockquote>
{{else}} 
    <blockquote>
	<blockquote>{{highlight}}
	</br></br> 
	👉引自:{{citation}}
	</blockquote>
	</blockquote>  
{{endif}}

复制 pdf 批注到思源笔记的效果(使用思源笔记 Tsundoku 主题,对引述块样式进行了优化)

PixPin_2025-06-29_19-23-03

2.3 取消英文拼写纠正提示

首选项-高级-编辑器设置:搜索:extensions.spellcheck.inline.max-misspellings,改为 0

2.4 Zotero 如何快捷复制条目链接

zotero 批注笔记复制是自带链接的,但是如果想要复制文献条目的链接,就会有点麻烦,需要用插件

安装 zotero-actions-tags 插件:https://github.com/windingwind/zotero-actions-tags

新建一个动作

PixPin_2025-06-29_19-20-01

数据代码为

// @author windingwind, garth74
// @link https://github.com/windingwind/zotero-actions-tags/discussions/115
// @usage Select an item in the library and press the assigned shortcut keys
// @update Mon, 22 Jan 2024 00:10:18 GMT (by new Date().toGMTString())

// EDIT THESE SETTINGS

/** @type {string} Name of the field to use as the link text. To use the citation key, set this to "citationKey". */
let linkTextField = "title";

/** @type {'html' | 'md' | 'plain'} What type of link to create. */
let linkType = "html";

/** @type {boolean} If true, make the link specific to the currently selected collection. */
let useColl = false;

/** @type {boolean} If true, use Better Notes zotero://note link when the selected item is a note. */
let useNoteLink = false;

/** @type {'select' | 'open-pdf' | 'auto'} Action of link*/
let linkAction = "auto"; // auto = open-pdf for PDFs and annotations, select for everything else

// END OF EDITABLE SETTINGS

// For efficiency, only execute once for all selected items
if (item) return;
item = items[0];
if (!item && !collection) return "[Copy Zotero Link] item is empty";

if (collection) {
  linkAction = "select";
  useColl = true;
}

if (linkAction === "auto") {
  if (item.isPDFAttachment() || item.isAnnotation()) {
    linkAction = "open-pdf";
  } else {
    linkAction = "select";
  }
}

const uriParts = [];
let uriParams = "";

let targetItem = item;
if (linkAction === "open-pdf") {
  uriParts.push("zotero://open-pdf");
  if (item.isRegularItem()) {
    targetItem = (await item.getBestAttachments()).find((att) =>
      att.isPDFAttachment()
    );
  } else if (item.isAnnotation()) {
    targetItem = item.parentItem;
    // If the item is an annotation, we want to open the PDF at the page of the annotation
    let pageIndex = 1;
    try {
      pageIndex = JSON.parse(item.annotationPosition).pageIndex + 1;
    } catch (e) {
      Zotero.warn(e);
    }
    uriParams = `?page=${pageIndex}&annotation=${item.key}`;
  }
} else {
  uriParts.push("zotero://select");
  if (item?.isAnnotation()) {
    targetItem = item.parentItem;
  }
}

if (!targetItem && !collection) return "[Copy Zotero Link] item is invalid";

// Get the link text using the `link_text_field` argument
let linkText;
if (collection) {
  // When `collection` is truthy, this script was triggered in the collection menu.
  // Use collection name if this is a collection link
  linkText = `${collection.name}`;
} else if (item.isAttachment()) {
  // Try to use top-level item for link text
  linkText = `${Zotero.Items.getTopLevel([item])[0].getField(linkTextField)}`;
} else if (item.isAnnotation()) {
  // Add the annotation text to the link text
  linkText = `${targetItem.getField(linkTextField)}(${
    item.annotationComment || item.annotationText || "annotation"
  })`;
} else {
  // Use the item's field
  linkText = item.getField(linkTextField);
}

// Add the library or group URI part (collection must go first)
let libraryType = (collection || item).library.libraryType;
if (libraryType === "user") {
  uriParts.push("library");
} else {
  uriParts.push(
    `groups/${Zotero.Libraries.get((collection || item).libraryID).groupID}`
  );
}

// If useColl, make the link collection specific
if (useColl) {
  // see https://forums.zotero.org/discussion/73893/zotero-select-for-collections
  let coll = collection || Zotero.getActiveZoteroPane().getSelectedCollection();

  // It's possible that a collection isn't selected. When that's the case,
  // this will fall back to the typical library behavior.

  // If a collection is selected, add the collections URI part
  if (!!coll) uriParts.push(`collections/${coll.key}`);
}

if (!collection) {
  // Add the item URI part
  uriParts.push(`items/${targetItem.key}`);
}

// Join the parts together
let uri = uriParts.join("/");

// Add the URI parameters
if (uriParams) {
  uri += uriParams;
}

if (useNoteLink && item?.isNote() && Zotero.BetterNotes) {
  uri = Zotero.BetterNotes.api.convert.note2link(item);
}

// Format the link and copy it to the clipboard
const clipboard = new Zotero.ActionsTags.api.utils.ClipboardHelper();
if (linkType == "html") {
  clipboard.addText(`《${linkText}》<a href="${uri}">link</a>`, "text/unicode");
} else if (linkType == "md") {
  clipboard.addText(`《${linkText}》[link](${uri})`, "text/unicode");
} else {
  clipboard.addText(uri, "text/unicode");
}

clipboard.addText(`《${linkText}》<a href="${uri}">link</a>`, "text/html");

clipboard.copy();

return `[Copy Zotero Link] link ${uri} copied.`;

这样就能右键直接复制条目链接

PixPin_2025-06-29_19-21-42

3 思源笔记文献引用插件配置

这里分享我的配置,其他配置具体看插件 README 介绍

3.1 插件基本设置

  • 数据库类型:选择 Zotero(debug-bridge)
  • 使用 itemKey 作为索引:勾选

PixPin_2025-06-29_17-15-07

3.2 Zotero 安装 debug-bridge 插件

参考: Run Javascript in Zotero

安装 debug-bridge 插件,插件地址:https://github.com/retorquere/zotero-better-bibtex/releases/tag/debug-bridge

这个插件的作用是作为 Zotero 与外部应用程序的通信桥梁,外部程序可以通过 HTTP 接口与 Zotero 进行数据交互,允许第三方应用程序访问 Zotero 的数据和功能

菜单 Tools—>Developer—>Run Javascript,运行如下代码(其中 CTT 为运行外部代码密码):

PixPin_2025-06-29_17-13-32

Zotero 7 在执行 Javascript 窗口,粘贴如下代码,点击执行

Zotero.Prefs.set("extensions.zotero.debug-bridge.token","CTT",true);

Zotero 6 版本是

Zotero.Prefs.set("extensions.zotero.debug-bridge.password","CTT",true);

在文献引用插件的设置里,也设置

  • 「debug-bridge 插件密码」为 CCT

    PixPin_2025-06-29_17-12-47

  • 「插入文献时使用的搜索面板」设置为 Siyuan

    PixPin_2025-06-29_17-21-00

    这样斜杆菜单「插入文献引用」调出的引用搜索面板就是在思源内部的搜索面板,搜索更快更稳定

    PixPin_2025-06-29_17-21-26

    PixPin_2025-06-29_17-20-42

3.3 插件模板设置

3.3.1 引用链接模板

我目前就设置了两个

  • 作者-year:({{shortAuthor}}, {{year}})

    PixPin_2025-06-29_17-17-02

  • 标题:{{title}}

    PixPin_2025-06-29_17-17-43

插件之后引用文献后,之后右键菜单更换引用模板

PixPin_2025-06-29_17-18-53

3.3.2 文献内容模板设置

我这边只设置了「文献内容文档标题模板」为 《{{title}}》({{year}})

PixPin_2025-06-29_17-24-53

这样我的文献笔记标题都是文献名字 + 年份

PixPin_2025-06-29_17-26-31

至于「文献内容模板」我设置为 ,因为文献基础信息我会存储在思源笔记数据库里,文献笔记的模板可以调用思源笔记模板自动生成,这两个设置都在设置的第三栏「数据」里设置。

3.3.3 文献笔记模板设置

这个插件过去为了同时在笔记里同步文献的基础信息并记录个人笔记,需要定义用户数据区域,用户数据区域存放个人笔记,其他部分可以存储文献基础信息

不过目前有了数据库之后,其实可以把整个文档当成用户数据区域,文献的基础信息就用数据库存储了

PixPin_2025-06-29_17-28-55我的文献笔记模板如下:

标题翻译:

## 文章摘要

- **研究的背景是什么**

  -
- **之前研究已经做过什么了**

  -
- **领域未解决的问题是什么?**

  -
- **作者是如何解决问题的**

  -
- **主要发现**

  -
- **研究创新点**

  -

## 作者背景


## 文章背景介绍


## 主要结果


## 可学习的研究方法


## 读完文献我学习了什么知识和概念,我有什么问题


## 本文总结、创新点与不足


## 论文结构和写作思路


## 与哪些已经读过的文献相关?与哪些自己感兴趣的主题笔记有关吗?


## 对我的课题有关吗?对我的课题有帮助吗?

如何在思源笔记创建这个模板

  • 方法一:手动创建

    • 思源笔记的模板文件夹目录在工作空间/data/templates ,在这个文件夹新建 阅读文献模板.md,编写模板
  • 方法二:直接导出

    • 在思源创建“阅读文献模板”这个笔记,编写好模板,直接导出即可

插件使用这个模板,把用户数据模板路径设置为 /data/templates/科研/阅读文献模板.md

3.3.4 用思源笔记的数据库管理文献

思源笔记的数据库功能可以对文献进行筛选、排序,非常适合记录文献的基础信息和管理文献

PixPin_2025-06-29_18-38-19

我的数据库目前有 12 列

  1. Block
  2. 已读
  3. Tag
  4. 图片
  5. 价值评分
  6. 发表期刊
  7. 通讯作者
  8. 第一作者
  9. 发表日期
  10. 链接
  11. Zotero URL
  12. 总结和备注

其中下面这几列是可以通过插件,在引用的时候,自动把文献笔记插入数据库,同时填充内容的

  • 发表期刊
  • 通讯作者
  • 第一作者
  • 发表日期
  • 链接
  • Zotero URL

插件的数据库配置步骤是,

  1. 粘贴文献数据库块的 id,插件会自动识别列 ID
  2. 填写数据库属性模板,指定每列如何填写

PixPin_2025-07-02_09-31-36

目前插件设置数据库属性模板比较麻烦,如果不懂编程的朋友,可以照着我的数据库,同样新建一样的列,然后把模板里的数据库列 id 替换为自己数据库对应的列 id 即可。

我的数据库属性模板如下

数据库列 id 和列名称的对应关系:

  • id: 20240104153321-cpzzkjn, 发表日期,列类型:日期
  • id: 20240225205034-qfeljra, 通讯作者,列类型:多选
  • id: 20240104153158-p1epwj9, 第一作者, 列类型: 多选
  • id: 20240104153236-i9v8625, 发表期刊, 列类型:select
  • id: 20241211174024-qbev7nn, Zotero URL, 列类型:url
  • id: 20240104153434-hjpc1fl, 链接, 列类型:url
[
  {
    "keyID": "20240104153321-cpzzkjn",
    "value": {
      "date": {
        "content": {{ entry.issued && !isNaN(new Date(entry.issued))  ? new Date(entry.issued).getTime() : (year ? new Date(jsonObject.year, 0, 1).getTime() : '') }},
        "isNotEmpty": {{ year ? 'true' : 'false' }},
        "isNotTime": {{ year ? 'true' : 'false' }}
      }
    }
  },
  {
    "keyID": "20240225205034-qfeljra",
    "value": {
      "mSelect": [{
        "content": "{{ authorString ? authorString.split(', ').pop():'' }}",
        "color": "{{(Math.floor(Math.random() * 13) + 1).toString()}}"
      }]
    }
  },
  {
    "keyID": "20240104153158-p1epwj9",
    "value": {
      "mSelect": [{
        "content": "{{ authorString ? authorString.split(', ')?.[0]:'' }}",
        "color": "{{(Math.floor(Math.random() * 13) + 1).toString()}}"
      }]
    }
  },
  {
    "keyID": "20240104153236-i9v8625",
    "value": {
      "mSelect": [
        {
          "content": "{{ containerTitle? containerTitle: '' }}",
          "color": "{{(Math.floor(Math.random() * 13) + 1).toString()}}"  
        }
      ]
    }
  },
  {
    "keyID": "20241211174024-qbev7nn",
    "value": {
      "url": {
        "content": "{{ zoteroSelectURI }}"
      }
    }
  },
  {
    "keyID": "20240104153434-hjpc1fl",
    "value": {
      "url": {
        "content": "{{ DOI ? 'https://doi.org/'+DOI : (URL ? URL : '') }}"
      }
    }
  }
]

4 在思源笔记里如何引用 Zotero 文献

  1. 方法一:Zotero 选中文献后,斜杆菜单选择 引用Zotero中选中的文献,直接插入文献引用

    PixPin_2025-06-29_18-23-59

  2. 斜杆菜单选择 插入文献引用,搜索文献进行引用

    PixPin_2025-06-29_17-21-26

    PixPin_2025-06-29_17-20-42

  3. 直接用 [[ 来引用:如果一篇文献已经通过文献引用插件在思源笔记创建了笔记文档,在思源笔记引用这篇笔记文档,其实就是引用文献,导出 word 文档,笔记引用也会变为文献引用格式。

5 我是如何记文献笔记

仅供参考

5.1 💡 记 Figure 笔记

个人现阶段觉得,对文章内容的总结,很大程度上只需要对 Figure 进行总结就行了。

思源笔记支持笔记快捷分栏,我会把 Figure 放在左侧,右侧记 Figure 中每个子图讲了什么,我有哪些问题?

PixPin_2024-12-14_10-48-13

5.2 💡 记概念笔记

读每篇文献,你都能遇到新的概念新的知识,也能遇到之前了解过的概念。

记这些概念笔记,我会用 「卡片笔记法」的概念来记笔记,一个概念新建一个笔记,这样当我遇到文献又提到这个概念,我就可以继续完善这个笔记,而不是反反复复记同一个概念,但是这些笔记零散地在各处,没有得到有效整合,这样不利于知识积累和复用。

我觉得双链笔记的双链功能在文献笔记里能体现出很有用的功能,但凡有一个文章,提到了这个概念,我就在文献笔记里引用这个概念笔记,这样打开概念笔记,你就能看到不同文章对这个概念的研究。

阅读完一篇文献,对这些引用的卡片概念笔记进行完善,把反链笔记整理进正文,

一个概念笔记积累的多了,最后这条概念笔记将会成为你的简易综述笔记,成为你独有的知识财富。

PixPin_2024-12-14_11-30-08

PixPin_2024-12-14_16-40-20

5.3 💡 手动构建独属于自己的知识网络

不同文献笔记、不同概念笔记之间的相互引用,将会构建出独属于自己的知识网络,将零散的知识点连接成网络,形成系统化的知识框架,有助于把握研究领域全貌。

笔记软件里显示的笔记双链引用网络结构是自发形成的,个人认为不能过于依赖自动化生成的知识网络,因为这是自己是不熟悉的,没有仔细梳理出结构的,是不属于自己的。

于是,除了文献笔记、概念笔记,我还会手动创建一条条主题笔记,把我感兴趣的主题的相关信息进行汇总整理,进行更深入地学习与思考,这些主题笔记,才是独属于我的第二大脑。

现阶段 AI 可以很方便对一篇文献进行总结,也可以很快就罗列出一个领域的知识框架,但是就算 AI 描述地再正确,再详细,都只是没有进入自己大脑的信息,把信息处理为自己的资料,内化为自己的知识,最后再将知识辅助到实践,实际去应用,才是阅读和学习的最终目的,才能真正帮助个人成长。

知识管理上的一个常见误区便是,信息的积累并不等同于知识的掌握,记录笔记的行为也不等同于知识记忆的形成。

在这个方面上,AI 只是工具,辅助我们更快阅读和记笔记,而不能替代个人思考、替代创建个人知识网络的步骤。

PixPin_2024-12-14_15-28-46

PixPin_2024-12-14_15-46-55

6 思源笔记如何写论文

之前写过分享:号外!从此用思源笔记写论文不再是梦,思源笔记和 Zotero 终于实现完美联动

思源笔记可以引用 zotero 文献后,可以直接导出带引用格式的文献

搭配上我写的 word 模板 https://github.com/Achuan-2/pandoc_word_template,可以直接从思源笔记导出一份格式还可以的论文初稿文档

  1. 在思源笔记引用 zotero 文献

    PixPin_2025-06-03_23-20-19

  2. 用插件来导出 word

    PixPin_2025-06-03_23-26-37

  3. 查看导出的 word:只需要点击 zotero 的 Refresh 按钮,更新 zotero 引用,就可以获得一份带文献引用的 word 文档

    PixPin_2025-06-03_23-20-16

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    28446 引用 • 119783 回帖
  • Zotero
    16 引用 • 182 回帖 • 2 关注
4 操作
Achuan-2 在 2025-07-23 12:47:37 更新了该帖
Achuan-2 在 2025-07-02 09:37:03 更新了该帖
Achuan-2 在 2025-06-30 08:38:47 更新了该帖
Achuan-2 在 2025-06-29 19:25:55 更新了该帖

相关帖子

优质回帖
  • Achuan-2 1

    看帖子这块的截图,插件数据设置这里,粘贴数据库 id,自动获取列 id 的

  • Achuan-2 1 赞同

    嗯,zotero 估计是没存储共同第一作者

    谷歌学术是会特别标注共同第一作者的,但也不是全部

    这种共同第一作者,有些期刊是只能通过文章作者贡献得知的

    对我而言,大部分文献其实只需要了解排名第一的第一作者和最后的通讯作者大老板即可,真重要的文章,会手动添加作者进去的

    没必要追求文献信息大而全

  • Achuan-2 1 赞同

    v3.3.0 改数据库结构了,和插件作者反馈吧,得改 api 调用方式了

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • l335215546

    感谢确实少了一个逗号

  • Mayrain

    今天配置了一下,可以正常得到论文题目,但是其他的信息就都抓不到。

    我的模板是:

    {
    "keyID": "20250828121723-zf32n4o",
    "value": {
    "date": {
    "content": {{ entry.issued && !isNaN(new Date(entry.issued))  ? new Date(entry.issued).getTime() : (year ? new Date(jsonObject.year, 0, 1).getTime() : '') }},
    "isNotEmpty": {{ year ? 'true' : 'false' }},
    "isNotTime": {{ year ? 'true' : 'false' }}
    }
    }
    },
    {
    "keyID": "20250828121850-gyzimsc",
    "value": {
    "mSelect": [{
    "content": "{{ authorString ? authorString.split(', ').pop():'' }}",
    "color": "{{(Math.floor(Math.random() * 13) + 1).toString()}}"
    }]
    }
    },
    {
    "keyID": "20250828121813-ff89ngv",
    "value": {
    "mSelect": [{
    "content": "{{ authorString ? authorString.split(', ')?.[0]:'' }}",
    "color": "{{(Math.floor(Math.random() * 13) + 1).toString()}}"
    }]
    }
    },
    {
    "keyID": "20250828121615-533lso4",
    "value": {
    "mSelect": [
    {
    "content": "{{ containerTitle? containerTitle: '' }}",
    "color": "{{(Math.floor(Math.random() * 13) + 1).toString()}}"
    }
    ]
    }
    },
    {
    "keyID": "20250828121905-2erx8dp",
    "value": {
    "url": {
    "content": "{{ zoteroSelectURI }}"
    }
    }
    },
    {
    "keyID": "20250828121732-r4hmc1y",
    "value": {
    "url": {
    "content": "{{ DOI ? 'https://doi.org/'+DOI : (URL ? URL : '') }}"
    }
    }
    }
    ]
    
    

    显示的列是:

    在引用时将文献内容文档添加进指定数据库,并按照该模板对数据库属性进行幅值,以下将动态展示数据库块的id和列名称的对应关系:
    id: 20250828113440-l79bqzb, name: Block, type: block
    id: 20250828113440-ougne2d, name: 已读, type: checkbox
    id: 20250828121513-4k5fsmb, name: Tag, type: mSelect
    id: 20250828121541-avntvvr, name: 图片, type: mAsset
    id: 20250828121558-uov5h94, name: 价值评分, type: select
    id: 20250828121615-533lso4, name: 发表期刊, type: select
    id: 20250828121723-zf32n4o, name: 发表日期, type: date
    id: 20250828121732-r4hmc1y, name: 链接, type: url
    id: 20250828121742-p7k7kvy, name: 总结和备注, type: text
    id: 20250828121813-ff89ngv, name: 第一作者, type: mSelect
    id: 20250828121850-gyzimsc, name: 通讯作者, type: mSelect
    id: 20250828121905-2erx8dp, name: Zotero URL, type: url
    

    按理说应该没有填错,我检查了两次感觉模板完全是对的。

    1 回复
  • Achuan-2 1 赞同

    v3.3.0 改数据库结构了,和插件作者反馈吧,得改 api 调用方式了

  • Tisamn

    你应该是 Zotero7,执行代码输入错了image.png

  • Mayrain

    哦,还有一个问题,想问一下如果想换别的字段引用怎么办?我们这里一般是找会议标题,按照 AI 的改法试着改了个字段,但是抓不到,可以帮忙看一看吗:

    "keyID": "20250902191410-z4u8236",
    "value": {
    "mSelect": [
    {
    "content": "{{ entry.conferenceName ? entry.conferenceName : '' }}",
    "color": "{{(Math.floor(Math.random() * 13) + 1).toString()}}"
    }
    ]
    }
    }
    
    
  • 跟着教程几乎设置好了,但是发现从 Zotero 笔记复制过来的标注没有链接,但是复制到文本文档里就是有的,看来是思源这边的问题?

    直接复制卡片有链接了,但是引用格式又没了(

    1 回复
    1 操作
    jiayougan 在 2025-09-28 12:25:34 更新了该回帖
  • Achuan-2

    zotero 没设置富文本链接格式,教程里有说

    粘贴时可以选择粘贴为纯文本

    2 回复
  • 设置过了呀,现在是复制卡片没问题了,但是复制笔记或者用插件导入笔记,没有链接,甚至引用也没有。

    搜到论坛里两年前有过讨论

    image.png

  • goldenfish

    大佬,想问一下我使用你的数据库代码不能抓到 date 类型的”发表日期栏的项目“,会有如下报错:SyntaxError: Unexpected token ',', ..."content": , "... is not valid JSON v3.3.3
    问了 AI 但修改完成后无法读取到数据,想咨询您一下,辛苦您了

    1 回复
  • Achuan-2

    json 格式被你搞破坏了,建议重新复制下我的代码,只修改 id,不要改其他的,注意逗号不要乱删除

    1 回复
  • mengmeizi95

    谢谢大佬分享!跟着教程一步一步很顺利成功了!如果想在模板基础上增加 title translation 字段,不知道数据库的代码应该怎么写呢?仿照了一个但是运行不成功,诚心求解:

    {
    "keyID": "20251007105701-e1owcg8",
    "value": {
    "text": {
    "content": "{{ titleTranslation ? titleTranslation : '' }}"
    }
    }
    }

  • youxia

    在链滴里面搜 zotero,好像主要就是川佬的内容

  • goldenfish

    好的,谢谢大佬,后面直接在源代码上修改了,发现好像是“发表日期”行的问题,当去除发表日期行的项目就可以正常运行了

请输入回帖内容 ...