官方教程
本文基本是官方教程中文版直译。博主跟着翻译一边基本也每天用在dairy上了,成品如下
这里立个flag,后面有机会再更新使用技巧吧!
文章目录
1. 介绍
Templater 是一种模板语言,可让您将变量和函数结果插入到笔记中。它还允许您执行操作这些变量和函数的 JavaScript 代码。
使用 Templater,您将能够创建强大的模板来自动执行手动任务。
快速示例
以下模板文档,使用 Templater 语法:
---
creation date: <% tp.file.creation_date() %>
modification date: <% tp.file.last_modified_date("dddd Do MMMM YYYY HH:mm:ss") %>
---
<< [[<% tp.date.now("YYYY-MM-DD", -1) %>]] | [[<% tp.date.now("YYYY-MM-DD", 1) %>]] >>
# <% tp.file.title %>
<% tp.web.daily_quote() %>
插入后会产生以下结果:
---
creation date: 2021-01-07 17:20
modification date: Thursday 7th January 2021 17:20:43
---
<< [[2021-04-08]] | [[2021-04-10]] >>
# Test Test
> Do the best you can until you know better. Then when you know better, do better.
> — <cite>Maya Angelou</cite>
1.1 安装
您可以通过 Obsidian 中的 Community Plugins 选项卡安装此插件。搜索 “Templater”。
最好在安装 Templater 后重新启动 Obsidian 应用进程,以确保一切正常。
1.2 术语
为了理解Templater是如何工作的,让我们定义几个术语:
- templater是包含commands的文件。
- 以
<\%
开始,以<'%'
结束的文本片段就是我们所说的commands。 - function 是一个可以在命令内部调用并返回值(替换字符串)的对象。
可以使用两种函数:
- 内部函数。插件中的预定义函数。例如,tp.date.now是一个内部函数,它将返回当前日期。
- 用户函数。用户可以定义自己的函数。它们要么是系统命令,要么是用户脚本。
下面的模板包含2个命令,调用2个不同的内部函数:
Yesterday: <% tp.date.yesterday("YYYY-MM-DD") %>
Tomorrow: <% tp.date.tomorrow("YYYY-MM-DD") %>
1.3 语法
Templater使用自定义模板引擎(rusty_engine)语法来声明命令。您可能需要一点时间来适应它,但是一旦您了解了它的意思,语法就不是那么难了。
Templater的所有函数都是使用命令调用的JavaScript对象。
命令语法
命令必须同时具有开始标记< %
和结束标记% >
。
使用tp.date.now内部函数的完整命令如下:<% tp.date.now() %>
函数语法
对象层次结构
所有Templater的函数,无论是内部函数还是用户函数,都可以在tp对象下使用。你可以说我们所有的函数都是tp对象的子对象。要访问对象的“child”,我们必须使用点表示法tp
.
这意味着Templater函数调用将始终以tp<something>
开始。
调用函数
要调用函数,我们需要使用特定于函数调用的语法:在函数名之后附加一个左括号和右括号。
例如,我们将使用tp.date.now()来调用tp.date.now内部函数。
函数可以有参数和可选参数。它们位于左括号和右括号之间,如下所示:
tp.date.now(arg1_value, arg2_value, arg3_value, ...)
所有参数必须以正确的顺序传递。
函数的参数可以有不同的类型。这里是一个函数可能类型的非详尽列表:
string
类型意味着值必须放在单引号或双引号("value"
或"value"
)中;number
意味着值必须是整数(15
,-5
,…)boolean
意味着值必须为true
或fasle
(完全小写),除此之外别无其他。
在调用函数时必须尊重参数的类型,否则它将不起作用。
函数文档语法
Templater内部函数的文档使用如下语法:
tp.<my_function>(arg1_name: type, arg2_name?: type, arg3_name: type = <default_value>, arg4_name: type1|type2,…)
其中:
arg_name
表示参数的符号名称,以便理解它是什么。
Type
表示参数的预期类型。在调用内部函数时必须遵守此类型,否则会出错。
如果参数是可选的,它将被附加一个问号?,例如arg2_name?: type
如果参数有默认值,它将使用等号=来指定,例如arg3_name: type = <default_value>
。
如果一个参数可以有不同的类型,它将使"|"来指定,例如| arg4_name: type1|type2
语法警告
请注意,此语法仅用于文档目的,以便能够理解函数期望的参数。
在调用函数时,不能指定参数的名称、类型或默认值。只需要参数的值
示例