1 联动论文阅读笔记分类问题
前段时间写了一篇文章分享了自己现在阅读论文地方法:尝试了 5 种不同的论文阅读方式后,我终于找到了这种无痛阅读论文的方法。
最近很多人私信我询问使用Zotlit联动Zotero和Obsidian进行文献阅读时,如何把不同颜色的标注在Obsidian中进行自动分类。
这个功能是通过修改Zotlit的模版实现的,今天附赠上我自己修改使用的模版并且进行适当的功能性解释。
由于涉及到一些基础编程知识,非计算机专业或者没有学过编程的同学可能不太能理解,看不懂代码没关系,直接抄作业就可以了。
2 设置方法
首先,Zotlit插件官方提供了详细的模版代码语法,我也是根据它们的官方代码进行修改的,有需要的可以自行去官网查看:https://zotlit.aidenlx.top/zh-CN/getting-started/basic-usage/template-config
在插件商城安装好Zotlit后,在设置中找到Zotlit设置,点击Template模板,然后Eject。
Eject是弹出的意思,这里是先把系统默认的模版备份一份,因为修改这个有一定风险,容易导致软件无法使用。
Zotlit作者怕瞎改后改不回来导致插件无法使用,因此提供了一个备份功能,这样就可以随时进行恢复,非常的良心。
随后,分别设置Note Content, Note Properties, Annotations, Single Annotation, Primary Markdown Citation, Secondary markdown Citation以及Colored highlight这七个模板,点小箭头是修改,点圆圈是恢复到默认。
2.1 Note content
# <%= it.title %>
## 1 文章摘要
<%= it.abstractNote.first().replace(/[\r\n]+/g, " ") %>
[Zotero](<%= it.backlink %>) <%= it.fileLink %>
## 2 结构笔记
<%~ include("annots", it.annotations) %>
这里是文献笔记的主要内容。类似于markdown笔记格式,用#来代表不同等级的标题。
我们把论文的标题作为一级标题显示,因为自动导入的阅读笔记文件名往往用的都是缩写,这里需要一个完整的pdf论文名称。
摘要对一篇论文的重要性自然不用多言,因此我们把摘要内容作为二级标题显示。摘要下面有两个链接,第一个可以直接跳转到Zotero内这篇论文,第二个可以直接使用默认阅读器在本地打开这篇论文。
结构笔记会显示我们Zotero中所有的注释结构笔记,具体的分类在后面。这里只要写成这样放在这里就可以了。
2.2 Note properties
title: "<%= it.title %>"
citekey: "<%= it.citekey %>"
authors: [<%= it.authors %>]
publish-date: <%= it.date %>
tags: "<%= it.tags.filter(t => t.type === 0) %>"
第二个是论文笔记属性配置。这里除了默认模板的显示title和citekey外,我又增加了显示作者,论文出版日期以及我们给论文添加的所有标签,并且自动过滤掉了有些论文自带的自动标签。
这里修改不会影响Zotero内。如果后续Zotero新增或者删除了标签后,这里只要同步下就可以同步进行修改了。
2.3 Annotations
<% const sections = [
{ title: "### 2.1 研究背景", annotations: it.filter(a => a.color === '#ffd400') },
{ title: "### 2.2 现状问题", annotations: it.filter(a => a.color === '#ff6666') },
{ title: "### 2.3 创新方法", annotations: it.filter(a => a.color === '#5fb236') },
{ title: "### 2.4 理论说明", annotations: it.filter(a => a.color === '#2ea8e5') },
{ title: "### 2.5 实验过程", annotations: it.filter(a => a.color === '#a28ae5') },
{ title: "### 2.6 实验结果", annotations: it.filter(a => a.color === '#e56eee') },
{ title: "### 2.7 得出结论", annotations: it.filter(a => a.color === '#f19837') },
{ title: "### 2.8 未来方向", annotations: it.filter(a => a.color === '#00ff7f') }
]; %><% sections.forEach(section => { %><%= section.title %><% if (section.annotations.length > 0) { %>
<% section.annotations.forEach(annotation => { %>
<%~ include("annotation", annotation) %>
<% }); } else { %>
暂无笔记
<% } %>
<% }); %>
这里是把我们的论文结构标注按照颜色进行分类并放在不同的位置。
我这里把一篇论文主要分为八类内容,分别是:研究背景、现状问题、创新方法、理论说明、实验过程、实验结果、得出结论以及未来方向。
注意,这里每种对应的颜色要恰好和Zotero中的颜色能对应上,否则就无法进行正确分类。
随后使用一个循环把不同的annotation按照颜色信息进行类型分类,同一类型下的笔记会按照论文的页码顺序依次显示。
2.4 Single annotation
[!note] <% switch (it.color) {
case '#ffd400':
%><span style="color: <%= '#FFBE7A' %>; font-weight: bold;">研究背景</span><%
break;
case '#ff6666':
%><span style="color: <%= it.color %>; font-weight: bold;">现状问题</span><%
break;
case '#5fb236':
%><span style="color: <%= it.color %>; font-weight: bold;">创新方法</span><%
break;
case '#2ea8e5':
%><span style="color: <%= it.color %>; font-weight: bold;">理论说明</span><%
break;
case '#a28ae5':
%><span style="color: <%= it.color %>; font-weight: bold;">实验过程</span><%
break;
case '#e56eee':
%><span style="color: <%= it.color %>; font-weight: bold;">实验结果</span><%
break;
case '#f19837':
%><span style="color: <%= it.color %>; font-weight: bold;">得出结论</span><%
break;
case '#00ff7f':
%><span style="color: <%= '#32B897' %>; font-weight: bold;">未来方向</span><%
break;
default:
%><span style="color: <%= it.color %>; font-weight: bold;">未知分类</span><%
}
%>
<%= it.imgEmbed %><%= it.text %>
<% if (it.comment) { %>
---
<%= it.comment %>
<% } %>
这里的设置可以保证单个注释卡片不光可以随Zotero注释更换颜色,还可以显示annotation出处文章的标题,以及把翻译和文本自动用横线分开。
并且如果是图片添加的注释也可以显示出来,最后的排序是按照页码顺序排序,而不是阅读或添加顺序,不至于凌乱。真是好用又好看。
看不懂没关系,复制代码粘贴就可以了。
2.5 Primary Markdown citation
<%= it.map(lit => `[[${lit.citekey}|(${lit.authors.first()}${lit.authors.length>1?" et al.":""}, ${lit.year?lit.year:lit.date})]]`).join("; ") %>
这个顾名思义,是用来设置第一种引用格式。引用就是在一个笔记里调用所有的论文名称或具体某一句话,在Obsidian中使用[@]的方式就可以轻松调用。
调用的论文名称会按照这里的格式显示:我这里设置成了姓名加年份的格式。
2.6 Secondary Markdown citation
<%= it.map(lit => [[${lit.citekey}|${lit.authors.first()}${lit.authors.length>1?", et al":""}. ${lit.year?lit.year:lit.date}. ${lit.title}.]]).join("; ") %>
Zotlit提供了两种引用的显示方式。如果使用[@]调用论文时再加上一个/则变成了使用第二种引用方式。
这里我设置第二种引用格式是:作者姓名+年份+文件名的格式,可以使用这个格式轻松构建论文的引用reference库,然后使用第一种引用格式在写文章时具体位置进行调用。
2.7 Colored highlight
<mark style="
<%- if (it.color) { _%> color: <%= it.color %>; <%_ } -%>
<%- if (it.bgColor) { _%> background-color: <%= it.bgColor %>; <%_ } -%>
"><%= it.content %></mark>
最后这个是修改高亮笔记在Obsidian中的显示颜色,这里我简单的让显示颜色等于Zotero中的笔记颜色就可以了。
3 文章总结
这个只是我自己通过思考和网上参考别人的相关示例总结的适合自己的模板和阅读论文的SOP (Standard Operating Procedure,标准化工作流程),这里记录下来仅供大家参考,每个人都可以根据自己的喜好和需要进行修改和创造。
最后祝大家都能在科研工作中找到自己的SOP,找到属于自己的一片天地!