WingDr / siyuan-plugin-citation

A citation plugin for the SiYuan Note.
MIT License
41 stars 4 forks source link

不知道能不能直接应用zotero better note里的模板 #62

Open Ming-mingjiu opened 11 months ago

Ming-mingjiu commented 11 months ago

我想直接使用zotero better note 里面的模板的主要原因在于,他除了可以获取常规信息,还可以读取style插件里期刊信息的内容,或者不知道能否实现增添获取期刊信息的函数 image 我使用的zotero模板如下: `


${topItem.getField("title")}

${topItem.getField('title')}
(${topItem.getField("titleTranslation")})
期刊: ${topItem.getField('publicationTitle')}(发表日期: ${topItem.getField("date")}
作者: ${topItem.getCreators().map((v)=>v.firstName+" "+v.lastName).join("; ")}
摘要: ${topItem.getField('abstractNote')}
期刊分区: ${ ( ()=> { let tags=Zotero.ZoteroStyle.data.ztoolkit.ItemTree.fieldHooks.globalCache.getFieldHooks.PublicationTags( "", true, true, topItem, undefined); const jsonStartIndex = tags.indexOf('{'); if (jsonStartIndex !== -1) { tags= tags.slice(jsonStartIndex);} let regex = /"(sci|sciif)":"([^"]+)"/g; let matches = tags.match(regex); if(tags){ const keyValuePairs = JSON.parse(tags); const colors = ["#eca8a9", "#f7c97e", "#d3e2b7", "#cce5ff", "#cfafd4"]; let out = ""; for (const key in keyValuePairs) { if (key === "sciUp") { out += `中科院 ${keyValuePairs[key]}`; } if (key === "sci") { out += `SCI ${keyValuePairs[key]}`; } if (key === "sciif5") { out += `IF(5) ${keyValuePairs[key]}`; } if (key === "sciif") { out += ` IF ${keyValuePairs[key]}`; } if (key === "pku") { out += `${keyValuePairs[key]}`; } if (key === "eii") { out += `${keyValuePairs[key]}`; } } return out;} } )()}
原文PDF链接: i.isPDFAttachment())[0].key}> ${Zotero.Items.get(topItem.getAttachments()).filter((i)=> i.isPDFAttachment())[0].getFilename()}
笔记创建日期: ${new Date().toLocaleString()}

💡创新点

Tips: 本文提出了什么新的科学问题,提出了什么新的研究思路,或提出了什么新的研究工具

📚前沿及文献综述

Tips: 本研究的必要性、紧迫性、可行性是什么?作者是如何论述的?
作者引用了哪些该领域的开创性文献

🧩图表

Tips: 看懂每一幅图?

📜过程

Tips: 目的→方法→结论

🤔思考

Tips: 本文有什么优缺点?你是否对某些内容产生了疑问
你是否认为某些研究方式可以改进,如何改进

🎼单词

⭐随手记

`

Ming-mingjiu commented 11 months ago
<html>
<hr/>
<table border="1">

<h2 style="color:  #E65100; background-color:  #FFF8E1;"> ${topItem.getField("title")}</h2>

<tr>
<td><b><i>${topItem.getField('title')}</i></b><br>(${topItem.getField("titleTranslation")})</i></td>
</tr>

<tr>
<td><b>期刊: <b style="color:#FF0000">${topItem.getField('publicationTitle')}</b></b>(发表日期: <b>${topItem.getField("date")}</b>)<br><b>作者:</b> ${topItem.getCreators().map((v)=>v.firstName+" "+v.lastName).join("; ")}</td>
</tr>

<tr>
<td><b>摘要: </b><i>${topItem.getField('abstractNote')}</i></td>
</tr>

<tr>
<td><b>期刊分区: </b>
<!-- zotero7中,引用了Ethereal Style插件的标签 -->
${ ( ()=> { let tags=Zotero.ZoteroStyle.data.ztoolkit.ItemTree.fieldHooks.globalCache.getFieldHooks.PublicationTags(
          "", true, true,
               topItem, undefined);
const jsonStartIndex = tags.indexOf('{');
if (jsonStartIndex !== -1) {
  tags= tags.slice(jsonStartIndex);}
let regex = /"(sci|sciif)":"([^"]+)"/g;
let matches = tags.match(regex);

<!-- 条件语句:防止学位论文、会议论文等找不到分区报错 -->
if(tags){
const keyValuePairs = JSON.parse(tags);
const colors = ["#eca8a9", "#f7c97e", "#d3e2b7", "#cce5ff", "#cfafd4"];
let out = "";

<!-- 英文期刊分区,从上到下分别是:-->
<!-- sci ssci 中科院升级 影响因子 UTD24 FT50 EI FMS,应该够用了 -->
<!-- 分区信息使用的是easyscholar插件,zotero style有教程 -->

for (const key in keyValuePairs) {
  if (key === "sciUp") {
    out += `<span style="background-color: ${colors[2]}; margin-right: 20px; padding:5px">中科院 ${keyValuePairs[key]}</span>`;
  }
  if (key === "sci") {
    out += `<span style="background-color: ${colors[1]}; margin-right: 20px; padding:5px">SCI ${keyValuePairs[key]}</span>`;
  }
  if (key === "sciif5") {
    out += `<span style="background-color: ${colors[0]}; margin-right: 20px; padding:5px">IF(5) ${keyValuePairs[key]}</span>`;
  }
  if (key === "sciif") {
    out += `<span style="background-color: ${colors[0]}; margin-right: 20px; padding:5px"> IF ${keyValuePairs[key]}</span>`;
  }
  if (key === "pku") {
    out += `<span style="background-color: ${colors[4]}; margin-right: 20px; padding:5px">${keyValuePairs[key]}</span>`;
  }
  if (key === "eii") {
    out += `<span style="background-color: ${colors[3]}; margin-right: 20px; padding:5px">${keyValuePairs[key]}</span>`;
  }
}

return out;}

} )()}
</td>
</tr>

<tr>
<td><b>原文PDF链接: </b>
<a href=zotero://open-pdf/0_${Zotero.Items.get(topItem.getAttachments()).filter((i) => i.isPDFAttachment())[0].key}>
                ${Zotero.Items.get(topItem.getAttachments()).filter((i)=> i.isPDFAttachment())[0].getFilename()}
    </a>
</td>
</tr>

<tr>
<td><b>笔记创建日期: </b>${new Date().toLocaleString()}</td>
</tr>

</table>

<h3>💡创新点</h3>
<blockquote>Tips: 本文提出了什么<u>新的科学问题</u>,提出了什么<u>新的研究思路</u>,或提出了什么<u>新的研究工具</u>?</blockquote>
<h3>📚前沿及文献综述</h3>
<blockquote>Tips: 本研究的<u>必要性、紧迫性、可行性</u>是什么?作者是如何论述的?<br>作者引用了哪些该领域的<u>开创性文献</u>?</blockquote>
<h3>🧩图表</h3>
<blockquote>Tips: 看懂每一幅图?</blockquote>
<h3>📜过程</h3>
<blockquote>Tips: 目的→方法→结论</blockquote>
<h3>🤔思考</h3>
<blockquote>Tips: 本文有什么<u>优缺点</u>?你是否对某些内容产生了<u>疑问</u>?<br>你是否认为某些研究方式可以改进,<u>如何改进</u>?</blockquote>
<h3>🎼单词</h3>
<h3>⭐随手记</h3>
</html>
WingDr commented 11 months ago

只能说很难……zotero better note和zotero style是同一个作者,他自己知道该怎么调用自己的插件,但是我要搞懂这个的话可能要去翻他的源码。不过理论上是可行的,毕竟debug-brige相当于直接在zotero内部运行,调用安装好的插件应该也没问题。

但是这个的优先级肯定很靠后了,毕竟真要写起来还是太复杂