最新与obsidian定制开发小程序笔记联动教程(可代替citations和mdnotes)
定制开发小程序网上有很多关于zotero定制开发小程序与联动的教程,大都使用better bibtex和citations进行联动,定制开发小程序但在将笔记导入obsidian后在zotero定制开发小程序中更新数据之后需要重新导入,定制开发小程序经过一天折腾终于找到定制开发小程序一个最新的插件可完全代替citations。(定制开发小程序本文适用于习惯使用markdown定制开发小程序做笔记的同学)。
一、联动原理
zotero通过Better-BibTeX软件生成JSON定制开发小程序文件导入至Obsidian文件目录,Obsidian插件Bibnotes Formatter读取JSON定制开发小程序文件信息在用户命令下生成指定文献的md格式笔记,笔记中包含有{{localLabraryLink}}
(zotero中文献条目链接)和{{file}}
(zoterp中文献pdf链接)可以从Obsidian中直接打开zotero查看文献,而zotero通过MarkDBConnect插件搜索Obsidian中的@{{citeKey}}
格式文件名将zotero中的文献条目与Obsidian中的文献笔记关联实现联动。
二、插件配置
所需插件:
- (zotero插件)
- (obsidian插件)
- (zotero插件)
安装配置步骤如下:
1、zotero-better-bibtex
(1)下载.xpi
插件
方式一:
方式二:
github下载慢的话可以从我提供的蓝奏云下载:
下载:https://wwd.lanzouj.com/iKBkb05zflli
密码:25io
(2) 安装该插件
安装步骤与其他zotero插件的安装方式一致,不会安装的可以参考我。
(3) 配置zotero-better-bibtex
①设置 Citation keys
Citation keys用于后面obsidian笔记的命名和zotero和obsidian的联动,可以自己设置格式,这里设置为[auth:lower]([year])-[shorttitle1_0:lower]
(作者姓氏小写(年份)- 标题的第一个单词小写)
[shorttitleN_M:lower]
:取标题前N个单词,前M个大写
②设置哪些字段不导出
③其余保持默认设置即可,到此该插件配置完成
2、Bibnotes Formatter
(1)下载插件
方式一:
方式二:
github下载慢的话可以从我提供的蓝奏云下载:
下载:https://wwd.lanzouj.com/iZPG005zfl8f
密码:awp5
(2)安装此插件(和obsidian安装插件的方式相同)
①解压缩.zip
文件
②将解压缩后的文件复制到obsidian文件根目录下隐藏文件夹”.obsidian“中的”plugins“文件夹下
③重启obsidian并打开插件(注意关闭”安全模式“)
(3)配置此插件
①在zotero中导出.json
文件
在 Zotero 的主菜单中,点击”文件“ -> ”导出文献库“(导出整个库)。
②选择导出格式为”BetterBibTeX JSON“,选择”导出笔记“和”Keep updated“(导出文件会使JSON文件很大,因此不勾选,为在添加/删除/修改条目后自动更新导出的库,需要勾选”Keep updated“)
③将JSON文件保存至obsidian的目录中(我将其保存在存放obsidian保存文献笔记的目录)
导出的文献信息可以在Better BibTeX的设置中查看和更改。
④将步骤③中的保存路径填写到下图序号1所在的路径中,其余的配置可参照下图,需要注意的是序号3处一定要增加@,因为在MarkDBConnect插件中设置是使用@{{citeKey}}来索引笔记的
⑤第四步中选择自定义模板后有默认的一套模板,但其中无效字段较多,可以参考我改进的模板
# {{title}}## Metadata- **CiteKey**: {{citekey}} - **Type**: {{itemType}} - **Title**: {{title}}, - **Author**: {{author}}, - **Year**: {{year}} ;- **Journal**: {{publicationTitle}}, - **Pages**: {{pages}}- **Publisher**: {{publisher}},- **Location**: {{place}},- **DOI**: {{DOI}}------## Files and Links- **Url**: [Open online]({{url}})- **zotero entry**: {{localLibrary}}- **open pdf**: {{file}}- **Keywords**: {{keywordsAll}}## Abstract{{abstractNote}}----## Comments{{UserNotes}}----## Extracted Annotations{{PDFNotes}}****## Summary ## Research Objective(s)## Background / Problem Statement## Method(s)## Evaluation## Conclusion## Notes
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
⑥Bibnotes Formatter插件默认使用电脑自带的PDF阅读器打开PDF文件,因此需要对插件做一定的修改。打开插件文件中的main.js文件,找到其中的createLocalFileLink()
函数,用下面的代码替换
function createLocalFileLink(reference2) { if (reference2.attachments.length == 0) return "{{localFile}}"; const filesList = []; for (let attachmentindex = 0; attachmentindex < reference2.attachments.length; attachmentindex++) { if (reference2.attachments[attachmentindex].itemType !== "attachment") continue; // if (reference2.attachments[attachmentindex].path == void 0) { // reference2.attachments[attachmentindex].path = ""; // } // const attachmentPathCorrected = reference2.attachments[attachmentindex].path.replaceAll(" ", "%20"); // const selectedfile = "[" + reference2.attachments[attachmentindex].title + "](file://" + attachmentPathCorrected + ")"; if (reference2.attachments[attachmentindex].uri == void 0) { reference2.attachments[attachmentindex].uri = ""; } const selectedfileUri = reference2.attachments[attachmentindex].uri const attachmentKey = selectedfileUri.split('/')[selectedfileUri.split('/').length - 1] selectedfile = "[" + reference2.attachments[attachmentindex].title + "](zotero://select/library/items/" + attachmentKey + ")"; if (reference2.attachments[attachmentindex].title.endsWith('pdf')) { selectedfile = selectedfile.replaceAll("zotero://select/","zotero://open-pdf/"); } filesList.push(selectedfile); } const filesListString = filesList.join("; "); return filesListString;}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
若觉得修改比较麻烦可以直接下载我修改后的main.js文件替换插件文件夹下的main.js文件。
下载:https://wwd.lanzouj.com/iZ9IH05zp2gj
密码:8ib6
⑦其他的配置默认即可,若想要自己修改可参考官网的使用说明。
3、MarkDBConnect
(1)下载.xpi
插件
方式一:
方式二:
github下载慢的话可以从我提供的蓝奏云下载:
下载:https://wwd.lanzouj.com/ibygo05zflob
密码:gx9u
(2)安装插件过程就不再赘述
(3)配置插件
①依次点击zotero菜单栏的“工具”->“MarkDBConnect Preferences”进入配置页面
②设置文献保存路径(要填写Bibnotes Formatter配置中设置的文献笔记保存路径,填写的路径如下黑色背景图中所示)
③其他保持默认设置即可,至此该插件安装完成,所有插件也都配置完成。
三、zotero与Obsidian联动
1、打开obsidian软件,按下ctrl+P
调出命令面板,输入bib
,选择下图红框所示命令,之后选择自己想要阅读的文献。
该插件在 Obsidian 中有两个命令:
Update Library
:当您选择此命令时,插件将生成/更新自上次选择同一命令以来从 Zotero 修改的所有笔记。如果第一次选择此命令,则插件将为导入的参考书目中的所有条目创建/更新文献信息。
Create/Update Literature Note
:当选择此命令时,系统将提示您从已导入的库中选择参考文献之一。如果在指定文件夹中尚未导入该文献笔记,则会根据之前设置的模板生成新的笔记。如果笔记已经存在,其内容将被更新而不会覆盖现有笔记(例如,从 Obsidian 中手动添加的笔记和块引用不会被覆盖)。可以选择第一个选项(“整个库”)来创建/更新导入库中的所有笔记。
2、按照上述方法操作会在设置的文献笔记保存路径下生成一个名为@{{citeKey}}的md文件,如下图所示,在此文件中会自动提取你在zotero自带阅读器中所做的笔记
3、使用MarkDBConnect插件将zotero文献链接到obsidian中的笔记文件
(1)依次点击zotero菜单栏中的”工具“->“MarkDBConnect Sync Tags”,若设置正确插件会自动找到步骤2中的md笔记文件并与之关联
(2)关联以后即可从zotero中打开obsidian中生成的文献笔记(右击关联了文献笔记的文献条目)
(3)在阅读完一篇论文后可能会在论文中做许多标记,此时右击”从注释中添加笔记“会将pdf中做的笔记和高亮部分提取出来
(3)导出笔记后在obsidian中运行再次运行Create/Update Literature Note
命令即可将更改的信息全部更新至obsidian文献笔记中,不会覆盖前一次的笔记,同时也会记录每一次的阅读笔记,当然也可以在阅读完文献以后再生成阅读笔记,此过程可反复操作,至此zotero和Obsidian的联动就完成了,可以很方便地在两个软件中快速实现切换。
zotero的常用插件配置可以参考我这篇博客:
参考:
1、
2、