<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>MathonDocs</title><link>https://hiraethecho.github.io/docs/tags/math/</link><description>Recent contentinMathonDocs</description><generator>Hugo --0.152.2</generator><language>en</language><managingEditor>wyz2016zxc@outlook.com(Hiraeth)</managingEditor><webMaster>wyz2016zxc@outlook.com(Hiraeth)</webMaster><lastBuildDate>Mon, 16 Mar 2026 15:39:39 +0800</lastBuildDate><atom:link href="https://hiraethecho.github.io/docs/tags/math/index.xml" rel="self" type="application/rss+xml"/><item><title>zotero</title><link>https://hiraethecho.github.io/docs/software/zotero/</link><pubDate>Mon, 13 Nov 2023 00:00:00 +0000</pubDate><author>wyz2016zxc@outlook.com(Hiraeth)</author><guid>https://hiraethecho.github.io/docs/software/zotero/</guid><description>&lt;h1 id="zotero"&gt;
&lt;a class="anchor inpage" href="#zotero"&gt;#&lt;/a&gt;Zotero&lt;/h1&gt;
&lt;h2 id="install-and-basic-setting"&gt;
&lt;a class="anchor inpage" href="#install-and-basic-setting"&gt;##&lt;/a&gt;Install and basic setting&lt;/h2&gt;
&lt;h2 id="plugins"&gt;
&lt;a class="anchor inpage" href="#plugins"&gt;##&lt;/a&gt;Plugins&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;zotero 7:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;常用：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Zotero attanger&lt;/li&gt;
&lt;li&gt;Del item with Attachment&lt;/li&gt;
&lt;li&gt;Ethereal Reference&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;好用：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;zotero better notes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;没必要但可以：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ethereal Style&lt;/li&gt;
&lt;li&gt;Attachment Scanner&lt;/li&gt;
&lt;li&gt;arXiv Workflow for zotero&lt;/li&gt;
&lt;li&gt;Zoplicate&lt;/li&gt;
&lt;li&gt;Linter for zotero&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="sync"&gt;
&lt;a class="anchor inpage" href="#sync"&gt;##&lt;/a&gt;Sync&lt;/h2&gt;
&lt;p&gt;using &lt;del&gt;zotmoov&lt;/del&gt; attanger to move files&lt;/p&gt;
&lt;p&gt;zotero 7 to rename:&lt;/p&gt;
&lt;details open&gt;
&lt;summary&gt;TEXT&lt;/summary&gt;&lt;pre
class="codeblock"
&gt;&lt;code class="language-" data-lang=""&gt;{{ title case=&amp;#34;snake&amp;#34; }}{{ creators case=&amp;#34;snake&amp;#34; prefix=&amp;#34;_&amp;#34; max=&amp;#34;1&amp;#34;}}{{ year prefix=&amp;#34;_&amp;#34; }}&lt;/code&gt;&lt;button onclick="copyCode(this)" class="copybtn"&gt;copy&lt;/button&gt;&lt;/pre&gt;&lt;/details&gt;
&lt;script&gt;
function copyCode(btn) {
const code = btn.previousElementSibling.textContent.trim();
navigator.clipboard.writeText(code).then(() =&gt; {
btn.innerText = "copied";
setTimeout(() =&gt; (btn.innerText = "copy"), 2000);
});
}
&lt;/script&gt;&lt;p&gt;use any cloud drive to sync. I&amp;rsquo;m using koofr.&lt;/p&gt;</description><content:encoded><![CDATA[<h1 id="zotero">
  <a class="anchor inpage" href="#zotero">#</a>Zotero</h1>
<h2 id="install-and-basic-setting">
  <a class="anchor inpage" href="#install-and-basic-setting">##</a>Install and basic setting</h2>
<h2 id="plugins">
  <a class="anchor inpage" href="#plugins">##</a>Plugins</h2>
<p><strong>zotero 7:</strong></p>
<p>常用：</p>
<ul>
<li>Zotero attanger</li>
<li>Del item with Attachment</li>
<li>Ethereal Reference</li>
</ul>
<p>好用：</p>
<ul>
<li>zotero better notes</li>
</ul>
<p>没必要但可以：</p>
<ul>
<li>Ethereal Style</li>
<li>Attachment Scanner</li>
<li>arXiv Workflow for zotero</li>
<li>Zoplicate</li>
<li>Linter for zotero</li>
</ul>
<h2 id="sync">
  <a class="anchor inpage" href="#sync">##</a>Sync</h2>
<p>using <del>zotmoov</del> attanger to move files</p>
<p>zotero 7 to rename:</p>
<details open>
    <summary>TEXT</summary><pre
        class="codeblock"
      ><code class="language-" data-lang="">{{ title case=&#34;snake&#34; }}{{ creators case=&#34;snake&#34; prefix=&#34;_&#34; max=&#34;1&#34;}}{{ year prefix=&#34;_&#34; }}</code><button onclick="copyCode(this)" class="copybtn">copy</button></pre></details>

  <script>
    function copyCode(btn) {
      const code = btn.previousElementSibling.textContent.trim();
      navigator.clipboard.writeText(code).then(() => {
        btn.innerText = "copied";
        setTimeout(() => (btn.innerText = "copy"), 2000);
      });
    }
  </script><p>use any cloud drive to sync. I&rsquo;m using koofr.</p>
<h2 id="zotero-better-notes">
  <a class="anchor inpage" href="#zotero-better-notes">##</a>zotero better notes</h2>
<p>用来
</p>
<p><strong>templates:</strong> you can copy these:</p>
<details open>
    <summary>quickinsert</summary><pre
        class="codeblock"
      ><code class="language-quickinsert" data-lang="quickinsert"># This template is specifically for importing/sharing, using better
# notes &#39;import from clipboard&#39;: copy the content and
# goto Zotero menu bar, click Tools-&gt;New Template from Clipboard.
# Do not copy-paste this to better notes template editor directly.
name: &#34;[QuickInsertV2]&#34;
zoteroVersion: &#34;7.0.9.SOURCE.fadbf3d2d&#34;
pluginVersion: &#34;2.0.18&#34;
savedAt: &#34;2024-11-07T07:59:45.835Z&#34;
content: |-
  // @use-markdown
  &lt;a href=&#34;${link}&#34;&gt;${linkText}&lt;/a&gt; [md](/wiki/math/zotero/${subNoteItem.getNoteTitle ? subNoteItem.getNoteTitle().replace(/[/\\?%*:|&#34;&lt;&gt; ]/g, &#34;-&#34;) &#43; &#34;-&#34;:&#34;&#34;}${subNoteItem.key})</code><button onclick="copyCode(this)" class="copybtn">copy</button></pre></details>

  <script>
    function copyCode(btn) {
      const code = btn.previousElementSibling.textContent.trim();
      navigator.clipboard.writeText(code).then(() => {
        btn.innerText = "copied";
        setTimeout(() => (btn.innerText = "copy"), 2000);
      });
    }
  </script><details open>
    <summary>quickimport</summary><pre
        class="codeblock"
      ><code class="language-quickimport" data-lang="quickimport"># This template is specifically for importing/sharing, using better
# notes &#39;import from clipboard&#39;: copy the content and
# goto Zotero menu bar, click Tools-&gt;New Template from Clipboard.
# Do not copy-paste this to better notes template editor directly.
name: &#34;[QuickImportV2]&#34;
zoteroVersion: &#34;7.0.9.SOURCE.fadbf3d2d&#34;
pluginVersion: &#34;2.0.18&#34;
savedAt: &#34;2024-11-07T05:54:37.696Z&#34;
content: |-
  &lt;blockquote&gt;
  ${{
    return await Zotero.BetterNotes.api.convert.link2html(link, {noteItem, dryRun: _env.dryRun});
  }}$
  &lt;/blockquote&gt;</code><button onclick="copyCode(this)" class="copybtn">copy</button></pre></details>

  <script>
    function copyCode(btn) {
      const code = btn.previousElementSibling.textContent.trim();
      navigator.clipboard.writeText(code).then(() => {
        btn.innerText = "copied";
        setTimeout(() => (btn.innerText = "copy"), 2000);
      });
    }
  </script><details open>
    <summary>quicknote</summary><pre
        class="codeblock"
      ><code class="language-quicknote" data-lang="quicknote"># This template is specifically for importing/sharing, using better
# notes &#39;import from clipboard&#39;: copy the content and
# goto Zotero menu bar, click Tools-&gt;New Template from Clipboard.
# Do not copy-paste this to better notes template editor directly.
name: &#34;[QuickNoteV5]&#34;
zoteroVersion: &#34;7.0.9.SOURCE.fadbf3d2d&#34;
pluginVersion: &#34;2.0.18&#34;
savedAt: &#34;2024-11-07T05:54:55.255Z&#34;
content: |-
  ${{
    let res = &#34;&#34;;
    if (annotationItem.annotationComment) {
      res &#43;= await Zotero.BetterNotes.api.convert.md2html(
        annotationItem.annotationComment
      );
    } else {
  	res &#43;= &#34;No comment&#34;;
    }
    return res;
  }}$

  // @use-markdown
  ***
  ${{
  	let res = &#34;&#34;;
    res &#43;= await Zotero.BetterNotes.api.convert.annotations2html([annotationItem], {noteItem, ignoreComment: true});
    return res;
  }}$</code><button onclick="copyCode(this)" class="copybtn">copy</button></pre></details>

  <script>
    function copyCode(btn) {
      const code = btn.previousElementSibling.textContent.trim();
      navigator.clipboard.writeText(code).then(() => {
        btn.innerText = "copied";
        setTimeout(() => (btn.innerText = "copy"), 2000);
      });
    }
  </script><details open>
    <summary>exportmdfilename</summary><pre
        class="codeblock"
      ><code class="language-exportmdfilename" data-lang="exportmdfilename"># This template is specifically for importing/sharing, using better
# notes &#39;import from clipboard&#39;: copy the content and
# goto Zotero menu bar, click Tools-&gt;New Template from Clipboard.
# Do not copy-paste this to better notes template editor directly.
name: &#34;[ExportMDFileNameV2]&#34;
zoteroVersion: &#34;7.0.9.SOURCE.fadbf3d2d&#34;
pluginVersion: &#34;2.0.18&#34;
savedAt: &#34;2024-11-07T05:55:24.890Z&#34;
content: |-
  ${(noteItem.getNoteTitle ? noteItem.getNoteTitle().replace(/[/\\?%*:|&#34;&lt;&gt; ]/g, &#34;-&#34;) &#43; &#34;-&#34; : &#34;&#34;)}${noteItem.key}.md</code><button onclick="copyCode(this)" class="copybtn">copy</button></pre></details>

  <script>
    function copyCode(btn) {
      const code = btn.previousElementSibling.textContent.trim();
      navigator.clipboard.writeText(code).then(() => {
        btn.innerText = "copied";
        setTimeout(() => (btn.innerText = "copy"), 2000);
      });
    }
  </script><details open>
    <summary>exportmdfileheader</summary><pre
        class="codeblock"
      ><code class="language-exportmdfileheader" data-lang="exportmdfileheader"># This template is specifically for importing/sharing, using better
# notes &#39;import from clipboard&#39;: copy the content and
# goto Zotero menu bar, click Tools-&gt;New Template from Clipboard.
# Do not copy-paste this to better notes template editor directly.
name: &#34;[ExportMDFileHeaderV2]&#34;
zoteroVersion: &#34;7.0.9.SOURCE.fadbf3d2d&#34;
pluginVersion: &#34;2.0.18&#34;
savedAt: &#34;2024-11-07T05:55:34.047Z&#34;
content: |-
  ${{
    let header = {};
    header.tags = noteItem.getTags().map((_t) =&gt; _t.tag);
    header.parent = noteItem.parentItem
      ? noteItem.parentItem.getField(&#34;title&#34;)
      : &#34;&#34;;
    header.collections = (
      await Zotero.Collections.getCollectionsContainingItems([
        (noteItem.parentItem || noteItem).id,
      ])
    ).map((c) =&gt; c.name);
    return JSON.stringify(header);
  }}$</code><button onclick="copyCode(this)" class="copybtn">copy</button></pre></details>

  <script>
    function copyCode(btn) {
      const code = btn.previousElementSibling.textContent.trim();
      navigator.clipboard.writeText(code).then(() => {
        btn.innerText = "copied";
        setTimeout(() => (btn.innerText = "copy"), 2000);
      });
    }
  </script><details open>
    <summary>exportmdfilecontent</summary><pre
        class="codeblock"
      ><code class="language-exportmdfilecontent" data-lang="exportmdfilecontent"># This template is specifically for importing/sharing, using better
# notes &#39;import from clipboard&#39;: copy the content and
# goto Zotero menu bar, click Tools-&gt;New Template from Clipboard.
# Do not copy-paste this to better notes template editor directly.
name: &#34;[ExportMDFileContent]&#34;
zoteroVersion: &#34;7.0.9.SOURCE.fadbf3d2d&#34;
pluginVersion: &#34;2.0.18&#34;
savedAt: &#34;2024-11-07T05:56:22.434Z&#34;
content: |-
  ${{
    let start = mdContent;
    let rmspan = start.replace(/&lt;\/?span.*?&gt;/g,&#39;&#39;);
    let pdflink = rmspan.replace(/(&lt;a .*?open.*?&gt;)“(.*?)”/g,&#39;$2 $1(pdf)&lt;/a&gt;&#39;);
    let dir2zotero = pdflink.replace(/&lt;a href.*?zhref=&#34;(.*?)&#34; ztype.*?&gt;/g,&#39;&lt;a href=&#34;$1&#34;&gt;&#39;);
    return dir2zotero;
  }}$</code><button onclick="copyCode(this)" class="copybtn">copy</button></pre></details>

  <script>
    function copyCode(btn) {
      const code = btn.previousElementSibling.textContent.trim();
      navigator.clipboard.writeText(code).then(() => {
        btn.innerText = "copied";
        setTimeout(() => (btn.innerText = "copy"), 2000);
      });
    }
  </script><p>annotation will be exported as</p>
<details open>
    <summary>TEXT</summary><pre
        class="codeblock"
      ><code class="language-" data-lang="">&lt;span class=&#34;highlight&#34; data-annotation=&#34;&lt;data-annotation&gt;&#34; ztype=&#34;zhighlight&#34;&gt;&lt;a href=&#34;zotero://open/library/items/G4BKVA2X?page=2&amp;#x26;annotation=LZLEYYRJ&#34;&gt;“&lt;content&gt;”&lt;/a&gt;&lt;/span&gt; &lt;span class=&#34;citation&#34; data-citation=&#34;&lt;citation&gt;&#34; ztype=&#34;zcitation&#34;&gt;(&lt;span class=&#34;citation-item&#34;&gt;&lt;a href=&#34;zotero://select/library/items/GLXUZZJT&#34;&gt;&lt;/a&gt;&lt;/span&gt;)&lt;/span&gt;</code><button onclick="copyCode(this)" class="copybtn">copy</button></pre></details>

  <script>
    function copyCode(btn) {
      const code = btn.previousElementSibling.textContent.trim();
      navigator.clipboard.writeText(code).then(() => {
        btn.innerText = "copied";
        setTimeout(() => (btn.innerText = "copy"), 2000);
      });
    }
  </script><p>the color of annotation is coded as <code>%23&lt;rgb&gt;</code> in <code>&lt;data-annotation&gt;</code>, for
example blue (#2ea8e5) annotation is <code>%232ea8e5</code></p>
]]></content:encoded></item></channel></rss>