上一篇文章介绍了如何设置Zotero与Logseq的笔记联动,本篇为大家提供文献笔记模版进阶指南。
模版功能亮点✨
这个智能笔记模版可自动捕获以下核心文献信息:
- 📚 双语标题:智能识别中英文题目对照
- 👥 作者列表:自动截断超长作者团队(保留前10位+et al.)
- 🏷️ 期刊信息:包含影响因子分区、出版日期双维度
- 🔗 智能链接:自适应生成PDF本地链接与DOI/URL切换
- 🌐 双语摘要:优先展示翻译版本摘要,无翻译版本自动回退原文摘要
- 📅 时间戳记:自动生成标准化的笔记创建时间
配置步骤详解⚙️
前置插件安装
- Ethereal Style(期刊分区展示)
- 基础安装过程省略
- 绑定EasyScholar账号获取期刊分区数据(设置方法)
- Translate for Zotero(摘要翻译)
- 推荐使用DeepSeek(需自行申请密钥,可参照网络上的教程)
- 支持中英/中日等多语种互译
模版代码定制
路径:Zotero 设置 → Better Notes → 模板编辑器 → 将上一篇文章我们创建的 MD笔记
模板替换为以下内容(可自定义,具体设置方法参见上篇博客)
<!-- 标题智能处理模块 -->
<p><b>${(() => {
const title = topItem.getField("title");
const titleTranslation = topItem.getField("titleTranslation");
return titleTranslation
? `文献笔记:${title} (${titleTranslation})`
: `文献笔记:${title}`;
})()}</b></p>
<!-- 作者列表优化模块 -->
<p>作者: ${topItem.getCreators()
.slice(0, 10)
.map(v => `${v.firstName} ${v.lastName}`)
.join("; ") + (topItem.getCreators().length > 10 ? "; et al." : ";")}</p>
<!-- 期刊信息渲染模块 -->
<p>期刊: ${topItem.getField('publicationTitle')}
(发表日期: [[${topItem.getField("date").split('T')[0]}]])</p>
<!-- 分区样式优化(兼容EasyScholar) -->
<p>期刊分区: ${Array.from(
Zotero.ZoteroStyle.api.renderCell(topItem, "publicationTags").childNodes
).map(e => {
e.innerText = ` ${e.innerText} `;
return e.outerHTML;
}).join(' ')}</p>
<!-- 智能链接匹配系统 -->
<p>${(() => {
const attachments = Zotero.Items.get(topItem.getAttachments());
const [pdf] = attachments.filter(i => i.isPDFAttachment());
const target = pdf || attachments[0];
return target
? `本地链接: <a href="zotero://open-pdf/0_${target.key}">${target.getFilename()}</a>`
: `本地链接: `;
})()}</p>
<!-- DOI/URL自适应模块 -->
<p>${(() => {
const doi = topItem.getField("DOI");
return doi
? `DOI: <a href="https://doi/${doi}">${doi}</a>`
: `URL: <a href="${topItem.getField('url')}">${topItem.getField('url')}</a>`;
})()}</p>
<!-- 摘要智能呈现逻辑 -->
<p>${topItem.getField('abstractTranslation')
? `摘要翻译: ${topItem.getField('abstractTranslation')}`
: `摘要: ${topItem.getField('abstractNote')}`}</p>
<!-- 动态时间戳生成器 -->
<p>笔记日期: ${(() => {
const pad = n => String(n).padStart(2, '0');
const d = new Date();
return `[[${d.getFullYear()}-${pad(d.getMonth()+1)}-${pad(d.getDate())}]] ` +
`${pad(d.getHours())}:${pad(d.getMinutes())}:${pad(d.getSeconds())}`;
})()}</p>
<p><b>📜 研究核心:⚙️ 内容💡 创新点🧩 不足</b></p>
<p><b>🔁 研究内容:💧 数据👩🏻💻 方法🔬 结果📜 结论</b></p>
<p><b>🤔 个人总结:🙋♀️ 重点记录📌 待解决💭 思考启发</b></p>
效果
该模版生成的笔记如下图,如需要增加其他信息亦可自行添加。