入门
配置模板

配置模板

您可以通过在 Obsidian 中导航到“设置”选项卡 > “Templates”来访问模板设置。有两种类型的模板可供使用:

  1. 简单模板:可直接在设置选项卡中进行编辑。
  2. 高级模板(可弹出):保存为 markdown 模板文件,需要保存到模板文件夹进行进一步编辑。

对于我们的模板,我们使用的是 eta (opens in a new tab) 模板引擎,这与 Templater (opens in a new tab) 插件使用的模版引擎十分类似。

编辑简单模板

为了简单起见,让我们从一个简单模板开始。例如,如果您只想在笔记文件名中包含标题,您可以将默认模板替换为以下内容,并按下“Apply”按钮:

Note Filename
<%= it.title %>.md

编辑复杂模板

对于更复杂的定制,比如笔记内容,您需要使用 markdown 模板文件进行编辑,这些文件需要在保存到模板文件夹之前不能进行编辑。

打开可弹出模板编辑器

打开模板设置

导航到 Obsidian 的“模板” > “Ejectable”选项卡

弹出模板文件

单击“Eject”按钮,将模板文件弹出到模板文件夹中。

💡
默认情况下,模板保存在 ZtTemplates 文件夹中。

打开“笔记内容”模板编辑器

单击模板文件路径旁边的“Open Template File”按钮,以打开模板编辑器。

编辑模板

第一列是模板文件编辑器,我们可以在其中编辑模板。稍后我们将讨论其他两列的内容。

使用实时模板编辑器

为了使模板编辑过程更简单,我们提供了一个实时模板编辑器。您刚刚在上一步中打开了它。实时模板编辑器是一个分割视图,左侧是模板文件编辑器,右侧是预览。

如果您还没有选择任何项目,预览将为空白。要选择一个项目:

在 Obsidian 中打开标注面板

我们稍后将详细讨论标注面板的用法,现在我们只需要它来选择一个项目进行预览。

  1. 打开命令面板
  2. 选择“Open Zotero Annotation View in Side Panel”命令

打开标注视图

您应该会看到标注面板打开在屏幕右边。

选择要预览的文献

在标注视图中选择文献
  1. 点击“Choose Follow Mode”按钮
  2. 选择“Link with Selected Literature”选项
  3. 在弹出的搜索框中选择一篇文献

您应该会看到预览随着所选的文献更新。

选择用于预览的文献

在标注视图中显示详细信息

点击顶部左侧的“Show details”按钮,您应该会看到所选文献的详细信息在编辑器中打开。

完整的模板编辑器如下所示:

模板编辑器

在模板编辑器中,您可以:

  • 在左侧编辑模板文件
  • 使用所选项目的数据在中间预览模板
  • 查看所选项目的所有可用数据在右侧

我们将在下面的章节中向您展示如何使用这些功能。

设置模板

    • zt-field.eta
    • zt-note.eta
    • zt-annot.eta
    • zt-annots.eta
  • 笔记属性模板

    让我们从“笔记属性”模板开始。默认模板如下所示:

    Note Properties
    title: "<%= it.title %>"
    citekey: "<%= it.citekey %>"

    这是一个 YAML (opens in a new tab) 模板。它用于设置笔记的 元信息 (opens in a new tab)。您可以在此模板中添加任何您想要的元信息。

    💡

    请注意模板中的带引号的 <%= it.title %><%= it.citekey %>。对于大多数标量数据,您不需要任何引号,但如果您需要定义一些包含可能与 YAML 语法混淆的字符的数据,您需要使用双引号“”或单引号''将其引用为有效的 YAML 文件。简单规则是,如果您的数据包含以下任何字符 :-{}[]!#|>&%@ ,最好将其引用。如果您想要一个字符串,但它可能被错误地解释为有效的数字(整数或浮点数),或者如果它仅包含“Yes”、“No”、“yes”、“no”、“true”或“false”这些内容,而不是有效的布尔值时,也应该进行引用。

    例如,如果您想要在元信息中添加 tags 字段,您可以将以下行添加到模板中:

    Note Properties
    tags: [<%= it.tags %>]

    在这个示例中,我们使用 []tags 字段包裹起来,以确保包含空格字符的标签如 my tag 能够被正确解析。如果您的标签可能包含之前提到的 [], 等特殊字符,则可以使用 JSON.stringify 进行转义:

    Note Properties
    tags: <%= JSON.stringify(it.tags) %>

    有关更多“笔记属性模板”的示例,请参考 How-to 部分。

    💡

    此模板默认在写入笔记之前使用 Obsidian 的内置 YAML 解析器进行排版美化。您可能会注意到生成的实际YAML与模板的格式并不完全相同。

    如果你希望完全控制 YAML 的格式,你可以在模板顶部加上以下内容来禁用 YAML 格式化:

    Note Properties
    ---
    raw: true
    ---

    注意:如果你在后期更新了笔记的属性,由于 Obsidian API 用于更新属性的 API 的限制,无论是否设置了 raw: true ,YAML格式化都会启动并破坏先前的格式。

    笔记正文模板

    默认模板如下所示:

    Note Content
    # <%= it.title %>
    
    [Zotero](<%= it.backlink %>) <%= it.fileLink %>
    <%~ include("annots", it.annotations) %>

    假设我们想要在笔记正文中包含文献的摘要。如果您已经用所选的文献打开了模板编辑器,您应该会在项目详细信息预览中看到 abstractNote,如下所示。您可以右键单击 abstractNote 并选择“Copy Template (Pick first element)”将模板代码复制到剪贴板。

    从详细视图中复制摘要模板

    将其粘贴到模板文件编辑器中的 [!note] 中以替换它。您的模板应该如下所示:

    Note Content
    # <%= it.title %>
    
    [Zotero](<%= it.backlink %>) <%= it.fileLink %>
    <%= it.abstractNote.first() %>

    您应该会看到模板预览随着摘要的更新而更新。

    PDF 摘录模板

    假设您选择的文献有标注,您应该会看到标注面板中填充了标注,如下所示:

    在标注视图中显示详细信息

    您可以点击每个标注标题栏上的 Show Details 按钮预览该标注的详情。

    每个标注的默认模板如下所示:

    annotation
    [!note] Page <%= it.pageLabel %>
    
    <%= it.imgEmbed %><%= it.text %>
    <% if (it.comment) { %>
    ---
    <%= it.comment %>
    <% } %>

    默认情况下,标注被渲染为带有块 ID 的标注 (opens in a new tab),以便插件可以跟踪它们进行未来更新:

    > [!note] Page 1
    > ![](image-excerpt.png)Some Excerpt
    >
    > ---
    >
    > This is a comment
    > ^LUE86KQFaF39HNRLZp2

    假设您希望以调用类型作为标注类型而不是“note”添加颜色,您可以在标注中找到两个关于颜色的变量:colorcolorName。在这里,我们使用 colorName,这是可读性更好的颜色名称而不是颜色的Hex代码。右键单击 abstractNote 并选择“Copy Template”。

    从详细视图中复制颜色模板

    将其粘贴到 [!note] 中以替换它。您的模板应如下所示:

    annotation
    [!<%= it.colorName %>] Page <%= it.pageLabel %>
    ...

    您应该会看到预览随着颜色名称的更新而更新。

    有时候,你可能希望在摘录模板中包含文献的标题,但是您在摘录本身的详细信息中找不到它。这是因为其所属文献的信息存储在 it.docItem 中。因此,要添加标题,您可以在标注模板中使用 <%= it.docItem.title %>

    💡

    如果您想要检查所属文献的详细信息,您可以使用模板预览面板标题栏上的切换按钮。在这种情况下,您可以点击“打开笔记模板”按钮切换到所属文献查看详细信息。

    切换到笔记模板

    批量导入摘录的模板

    您可能会注意到在“笔记内容”模板中有 <%~ include("annots", it.annotations) %>。这是一个特殊的语法,用于使用另一个模板。在这种情况下,它是为批量导入标注而命名为 annots 的模板。

    首先,让我们点击“打开标注模板”按钮打开标注的模板编辑器。

    切换到标注模板

    默认模板如下所示:

    annots
    <% for (const annotation of it) { %>
    <%~ include("annotation", annotation) %>
    <% } %>

    这是一个循环模板。它循环遍历所有的标注,并将每个标注传递给 annotation 模板。annotation 模板是我们在前面一节中编辑的模板。

    现在,假设我们想在每个标注之间添加一个分隔符。我们可以在 annots 模板中添加一个分隔符:

    annots
    <% for (const annotation of it) { %>
    <%~ include("annotation", annotation) %>
    
    ---
    <% } %>

    您应该会看到预览中的每个标注之间添加了分隔符。

    这就是有关在 Obsidian-Zotero 中定制化模板的全部内容。在下一节中,我们将深入探讨如何使您的文献笔记与 Zotero 中的最新更改保持同步。

    Partial模板

    我们使用 Partial (opens in a new tab)include 函数来重用模板的某些部分。

    你可以将需要重用的文件放在模板文件夹中,后缀名设置为 .eta,在模板中用文件名引用他们,比如 part.eta.md 可以使用以下语法引用:

    Note Content
    <%~ include("part", it) %>

    注意,以下名字是保留的,不能用于模板文件名

    • annots - 用于批量导入标注
    • annotation - 用于单个标注
    • note - 用于文献详细信息
    • field - 用于文献元信息