思源笔记文献引用插件 siyuan-plugin-citation

本贴最后更新于 527 天前,其中的信息可能已经时移俗易

  思源笔记文献引用插件 siyuan plugin citation

  思源笔记也可以快捷插入参考文献啦,还能方便导出为 Word(这个需要后续继续开发),在 Word 中还能增、改、删参考文献

  还能导入 zotero 中的笔记到思源笔记中

  ‍

视频链接 https://www.bilibili.com/video/BV17u411j79z/

  背景音乐:他 - 斯丹曼簇

  ‍

  大家好,又见面了,老样子,还是没有配音的分享~~~

  ‍

  之前乱侃过一些帖子,

   【乱侃】使用 markdown 软件 +zotero 进行学术写作的一些经验 - 链滴 总结就是 markdown 类笔记软件中插入 zotero 之类的的文献引用有一下几种方式:

  1. 方法 1:调出 zotero 自身界面,获得 citation key;【siyuan-plugin-citation v0.0.5 已支持】
  2. 方法 2:直接连接 zotero.sqlite 库,获得 citation key;【siyuan-plugin-citation IS COMING】
  3. 方法 3:zotero 中导出一个“Better CSL JSON 格式”文件,并保持更新;【siyuan-plugin-citation v0.0.5 已支持】
  4. 方法 4:使用 quicker 动作或者手动复制粘贴、敲键盘输入 citation key;【和今天主题无关】

  ‍

  zotero 联合 markdown 软件 - 以思源笔记为例 暨 Pandoc 转换 markdown 为 Word - 链滴

  Pandoc 通过 citation key 转换 markdown 文档为 Word,在 Word 中还能增、改、删 zotero 参考文献

  ‍

  今年(2023 年)思源笔记引入了“插件”机制,最近有大佬开发了一个方便插入参考文献到思源笔记的插件 WingDr/siyuan-plugin-citation: A citation plugin for the SiYuan Note.

  我以思源笔记 v2.9.4 + zotero v6 为基础展示一下上述**“方法 1”的工作流**,分享一下经验,抛砖引玉

  ‍

  1. 【必装】BBT 插件,这是 zotero 的插件:Better BibTeX for Zotero,维护 citation key,相当于这篇文献在你文献库里面的身份证号,一般定义为“wang2020”这样的形式;
  2. 【可选,但是建议安装】zotero-better-notes:windingwind/zotero-better-notes: Everything about note management. All in Zotero.:这个插件用于生成、维护 这种链接,比如,,后面有展示用途

  ‍

  插件官网上不去的,来这个地方找一下:

  Zotero 中文社区

  zotero-plugins-market: 到 Zotero 插件市场,找到你需要的插件。

  ‍

  这是我 zotero 环境展示:

  zotero--编辑--首选项--Better BibTeX--Open Better BibTeX preferences...--Citation keys--Citation key formula [auth:lower][year]

  ‍

安装 siyuan-plugin-citation 插件

  思源笔记--设置--集市--插件--文献写引用 siyuan-plugin-citation

  (题外话:图标炫不炫?我感觉很有科研那个意思:像一个啄木鸟一样硬肯,不断扩充人类知识的边界,那个 C 型,更有编程(C 语言)的意味。不过据开发者自己透露,只是网上查了一下“citation”的图标,然后看见这个就觉得特别经验,一看应该没有版权问题,就用上了)

  ‍

siyuan-plugin-citation 插件设置

  1. 笔记本:对应着思源笔记文档树中的笔记本,只能下拉选择,假设我选择了一个名叫“文献阅读”的笔记本;
  2. 鼠标悬浮在思源笔记文档树“文献阅读”的笔记本上,出现三个点和一个加号,点击加号,新建子文档,这个子文档命名成任何名字,不过尽量和其它同级别的子文档名字不一样,比如“MyReferences”。目前目录树的部分结构是:“文献阅读”→ “MyReferences”(注意真实名字中没有双引号);
  3. 文献库路径:路径以“/”开头,例如“/References”,因为我前面设置中是“MyReferences”,所以此处我填写的是“/MyReferences”(注意,不要双引号);
  4. 如果在步骤 2 中是多层目录(个人不建议),比如:“文献阅读”→ “大学文献”→“MyReferences”,那么在步骤 3 中填写应该是“/大学文献/MyReferences”(注意,不要双引号),依次类推,(可以考虑基于某篇文献新建一个路径,但是不建议)。
  5. 刚才忘了,这次“数据库类型”选择用“zotero”(此处取决于前面的方法 1 工作流)

  ‍

  ‍

  打开“开发者模式”,“引用模板”填写 [@{{citekey}}](({{citeFileID}} "↟"))[@{{citekey}}] 用于后续 markdown 转为 Word 使用;(({{citeFileID}} "↟")) 这一部分是在思源笔记中作为一个双向链接的锚点,citeFileID 是类似 20230708205914-7jc99im 这样的思源块 ID,“↟”仅仅是一个锚点文本,你可以定义一个 markdown 不常用、在你文章也不常出现的字符或字符串,尽量短【目前推荐“↟”这个配置,不过可能在一些编辑器中不能正常显示这个字符,参考 UTF-8 箭头 | 菜鸟教程 】;

[@{{citekey}}](({{citeFileID}} "↟"))

  ‍

  1. 后期如果插件作者搞好了导出为 Word 那部分功能,可能就不需要打开“开发者模式”了,到时候看情况吧;

  2. 目前(citation v0.0.5)下面这两种模式是等价的(效果完全相同)(仅供喜欢折腾的友友参考,如果不喜欢折腾,直接抄前面作业就行):

    1. 关闭开发者模式,“引用模板”填写 ({{shortAuthor}} {{year}})

    2. 打开“开发者模式”,“引用模板”填写 (({{citeFileID}} '({{shortAuthor}} {{year}})'))(插件 v0.0.5,单引号)、(({{citeFileID}} "({{shortAuthor}} {{year}})")) (插件后续版本可能要修改为在“关闭开发者模式”时,使用双引号,单引号、双引号主要是涉及到在思源笔记中的一些问题,目前不用过分关注),此处最外层的两个括号是思源笔记中双向链接的语法;

      ((20230709090634-ut8c2kw "( 2019)")),中文作者参考文献(中文文献处理可能还得优化一下,可能是我自己设置问题)

      ((20230709090655-p957u07 'einstein1922')),英文作者参考文献,没有问题

  ‍

  刚才白色间隙,表明是不同的笔记块(视频配的说明)

  文献内容模板,自己编辑就好,那些空行是有必要的,保证导出的文献档案在思源笔记中是多个块,而不是一个块


### {{authorString}},{{year}}

---

Author:	{{authorString}}

Year:	{{year}}

Title:	{{title}}

---

#### Abstract

{{abstract}}

#### 文献源

[zotero]({{zoteroSelectURI}})

[HTTP]( {{URL}})

DOI: {{DOI}}

#### Files

{{files}}

#### Note

{{note}}



### 其它变量效果

citekey:{{citekey}}

authorString:{{authorString}}

containerTitle:{{containerTitle}}

eprint:{{eprint}}

eprinttype:{{eprinttype}}

eventPlace:{{eventPlace}}

page:{{page}}

publisher:{{publisher}}

publisherPlace:{{publisherPlace}}

titleShort:{{titleShort}}



  ‍

  ‍

插件的一些参数(插件 readme 里面的,随着插件开发,可能会有改变)

  参考:siyuan-plugin-citation/README_zh_CN.md at main · WingDr/siyuan-plugin-citation · GitHub

  在文献内容和引用的模板中可以使用如下变量,但是请注意,zotero 中条目信息一般不是都有这些参数的,一些字段会缺失,比如很多没有短标题:

- {{citekey}}:文献的唯一标识,建议用zotero的better biblatex插件生成
- {{abstract}}:摘要
- {{authorString}}:所有作者按顺序排列的字符串
- {{containerTitle}}:文献所在刊物(论文集、期刊等)标题
- {{DOI}}:文献的DOI
- {{eprint}}:预印本
- {{eprinttype}}:预印本类型
- {{eventPlace}}:(会议等)地点
- {{page}}:页码
- {{publisher}}:出版商
- {{publisherPlace}}:出版商所在地
- {{title}}:标题
- {{titleShort}}:简写标题,很多文献不存在间歇标题
- {{URL}}:文献的访问网址
- {{year}}:文献的发表年份
- {{files}}:文献的附件
- {{zoteroSelectURI}}:可以直接跳转到Zotero对应的条目
- {{note}}:在Zotero中做的笔记,其中的链接支持直接跳转到Zotero

  此外,在引用链接中还可以使用下面的变量:

- {{shortAuthor}}:按照IEEE格式(大概)生成较短的作者字符串,例如`Lin and Morse et al.`
- {{citeFileID}}:文献内容文档在思源内部的ID,用于辅助生成引用链接或者外链,例如 `20230707192208-ocs4482`

  ‍

  设置好之后,重新启动一下思源笔记:配置“文献库路径”之后,需要重启思源笔记,否则会提醒“文献库路径不存在”

  ‍

  建议关闭“思源笔记--设置--编辑器--悬停出现浮窗”:启用后鼠标悬停块引、面包屑块标等位置会出现浮窗,关闭后需按住 Ctrl 键才会出现浮窗,如果文章里面块引太多,鼠标划过笔记,就会卡顿。

  ‍

  如果插入文献时,citation 插件有“Zotero 没有在运行”的弹窗,重启思源笔记试试(如果还有这个弹窗,再次重启思源笔记,这个 bug 原因不知道,可能和软件权限之类有关(瞎猜))

  ‍

【使用效果】

  /add 唤起插件

  ‍

  【很多内容是做视频留下的,懒得删了】

  你觉得这个背景音乐咋样?

  ‍

  哈哈哈,忘了启动 zotero

  [@kongzi2021]((20230709193210-j9vtkzb "↟"))认为你需要给这个视频一键三连

  [@einstein1922]((20230709193210-v6u0gnn "↟"))认为,如果可以的话,可以请开发者喝一杯奶茶,为他加油

  你觉得呢?

  ‍

  [@sunweimin2013]((20230709193210-nk9mxxk "↟"))[@robertson1949]((20230709193210-vj08di9 "↟"))[@kongzi2021]((20230709193210-j9vtkzb "↟"))认为,如果可以的话,可以请开发者喝一杯奶茶,为他加油

  ‍

  [@robertson1949]((20230709193210-vj08di9 "↟"))这里是个小树锚文本(向上双箭头,寓意天天向上,好事成双)

  ‍

  刚才看到 zotero 中,这个父条目下有 5 个子笔记,和这里的 note No.x 是对应的,并且点击,可以跳转到 zotero

  [@hanbingzhe2019]((20230709193210-lyv0fpz "↟"))

  ‍

  [@hanbingzhe2019]((20230709193210-lyv0fpz "↟"))

  ‍

  成功更新 hh

  ‍

  在被引文献文档上查看哪个地方引用了这篇文献(展现思源笔记双链的用途)

  ‍

  ‍

  刚才插入有个小 bug,我回头反馈一下,就是这个 bug,果然是个 bug,add 模式没有问题,但是鼠标点选可能有问题

  目前有一个已知 bug,可能是思源笔记自身的,也可能是 citation 插件的,正在排查:

  1. 插入一篇文献之后,再次输入斜杠准备插入第二篇时,然后锚文本被吞掉了;
  2. 插入一篇文献之后,空格 +back 或者向左按钮 + 向右按钮(也就是一对相反操作)之后,再输入斜杠,插入文献没有问题(刚才就是触发了 bug,把小树苗吞了,解决方案在这里)
  3. 或者使用 /add 模式,这个模式不会触发这个 bug

  ‍

  ‍

  转换为 Word:目前插件转换为 Word 的功能还在开发中,我之前写过一个格式化期刊文章的方法,可以参考思源笔记格式化成期刊文章,注意,此处需要设置“思源笔记设置--导出--引用--设置为:仅锚文本”,导出到 markdown,然后再转换

  ‍

  需要注意的是,导出为 Word 之后,在 Word 中先把前面那个“↟”锚文本批量删去(替换为空就行),这样对于那种“一个知识点多篇文献”的地方才能正确转换

  ‍

  在 Word 中还能增、改、删参考文献

  ‍

  [@citationkey] 更详细的用法参考 有些时候需要手动修改一下格式

  ‍

小细节

  ‍

  插入时,zotero 窗口如果没有来到桌面顶端,手动点击一下 windows 系统任务栏第二个 zotero 图标即可来到最上层。

  ‍

  zotero 两种窗口模式:zotero 编辑--首选项--引用--文档编辑软件--使用经典版“添加引注”对话框

  1. 传统的大窗口(“经典版‘添加引注’对话框”)
  2. 新的小窗口

注意事项:

  你有注意到思源笔记文档树有什么变化吗?

  插入了一些新文档,这些文档都是根据“文献内容模板”生成的,

  ‍

  1. 插件插入参考文献的过程:

    1. 当第一次插入某篇文献 A 之后,会按照插件设置中“文献内容模板”,生成这篇文献的“档案”,文档名是这篇文献的 citation key,v0.0.5 版 将文献的索引方式从文档标题变为文档命名(思源笔记的一个概念,在块属性里面),现在标题可以自定义了,也就是,v0.0.5 版起,citation key 放到文档名块属性的“命名”中,把文档名让权给用户(即,允许用户编辑文档名)(文档名属于显性元素,面向人,让出来给用户的话,用户可以手动命名文档名,如果有查找需求的话,下次也可以直接浏览思源笔记的文档树、查找笔记;命名和 citation key 这些 隐性的、晦涩难懂、不能修改,但是唯一的,留给软件,这是软件擅长的);

    2. 当第二次及之后插入文献 A,文献 A“档案”文档名块 ID 是不变的,但是文献 A“档案”文档内容的块 ID 在每次重新插入这篇文献时都会更新,并且保持和 zotero 中的信息一致;

      20230709105925-2oqs4xx20230709105925-s1ixeb4

      我们再次插入这篇文献,查看 ID 是否变化

      20230709105925-2oqs4xx20230709110310-wl79xnb

      这就是文献 A“档案”文档名块 ID 是不变的,但是文献 A“档案”文档内容的块 ID 在每次重新插入这篇文献时都会更新,

    3. citation 插件更改文献引用就是依靠 文献A“档案”文档名块ID(底层技术就是思源笔记的双链),所以目前(citation v0.0.5)除了文档名,不要手动修改插件生成的 /MyReference 下面那些文档,如果你删除了一篇,那么点击引用这篇文献的地方,思源笔记就会出现“未找到 ID 为 [20230708230706-ylq9g5s] 的内容块 v2.9.4”的错误弹窗;我们试一下

    4. citation 插件有计划在文献档案下面留一片“自留地”,允许用户在“自留地”写东西,并且更新时不受影响,目前还没搞定,期待发展;

  2. 插件有部分数据(插件设置)存储在 [思源笔记工作空间]/data/storage/petal/siyuan-plugin-citation,不要删除;

  3. 面前 zotero 7 beta17 版本的插入还是有点问题的(在 obsidian 那边也会有问题,个人认为是 zotero 的问题,只能等 zotero7 正式版了);

  ‍

IS COMING

  1. 目前插件还无法直接带参考文献导出为 Word,不过有支持的计划;
  2. 直接连接 zotero.sqlite 库(前述的方法 2,我很期待这种方案);

  ‍

  如果可以的话,也可以请开发者喝杯咖啡!,在这里可以找到开发者的二维码哦~~~

  (这次没刷新出来,可能是我网络问题,正常是有两个二维码的。)

  欢迎来这里提 issue,WingDr/siyuan-plugin-citation: A citation plugin for the SiYuan Note.

  ‍

  最后,如果觉得好用,请动动你的左金右玉大拇指,点赞,投币,关注,毕竟孔子和 Einstein 都一键三连了,谢谢!!!

  ‍

  ‍

  ‍

  • 思源笔记

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

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

    22920 引用 • 92154 回帖 • 1 关注
3 操作
Diamond 在 2023-07-10 08:51:17 更新了该帖
Diamond 在 2023-07-10 08:48:12 更新了该帖
Diamond 在 2023-07-09 21:32:51 更新了该帖

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • @ethanyang 只有拥有父条目的才能被引用,可以右键 pdf 创建父条目,本质上是提取 zotero 中的信息到思源,而纯 pdf 或者笔记是没有基本信息的。我没想好如果是纯 pdf 或者笔记的话该怎么引用,欢迎到 github issue 提供思路。

  • 其他回帖
  • suiji

    大佬,我又来问了。请问我插入新文献时,生成的页面第一行是“user data”,这个 userdata 是指向本页面最后一个一级标题”user data“的块引用。为什么会创建这个?另外,希望模板参数能增添编辑 editor 和期刊 publication。谢谢 🙏 !

    1 回复
    1 操作
    suiji 在 2023-07-19 13:48:36 更新了该回帖
  • Diamond 1

    抱歉,大部分原因是思源笔记和社区渲染有差异导致的,已经修改

    我思源笔记中的网址是这样,右括号和网址之间有个空格(没空格的话,QQ 还是微信会把右括号当作网址的一部分),但是思源笔记中点击可以正常打开

    [思源笔记文献引用插件 siyuan-plugin-citation - 链滴](https://ld246.com/article/1688908419920 )

    社区渲染之后,会把空格当作网址的一部分,打开时是在原有网址基础上加个 %20 字符,导致 404

    下次我注意一下

  • Diamond

    现在不用 quicker 也可以在思源笔记中插入文献引用啊,

    如果是为了找一个类似 quicker 的 Mac 工具,你可以参考一下:

    Alfred - Productivity App for macOS

    Alfred - Productivity App for macOS

    高效使用 Mac,从 Alfred 开始 - 少数派

    Keyboard Maestro

    Keyboard Maestro 10.2: Work Faster with Macros for macOS

    Popclip 插件

    珍爱生命,善用 Popclip 插件 | 领客专栏·Pinapps

    2 回复
  • 查看全部回帖