Skip to content

变量由应用定义。例如,Obsidian Web Clipper 提供了一批 Knap 变量,用来统一网页内容的表示方式。

模板被 Knap 渲染时,变量会被替换为取值。变量用双花括号 {{}} 包裹,空白可有可无。

Template
knap
{{ title }}
Output
md
The Machine Stops

过滤器修改取值。过滤器可以链式使用,按从左到右的顺序执行。

Template
knap
{{ title | h2 | upper }}
Output
md
## THE MACHINE STOPS

设置局部变量

{% set %} 为字面量、表达式或过滤后的取值命名,供模板后续使用。

knap
{% set slug = title | lower | replace:" ":"-" %}
File: {{ slug }}.md

赋值按顺序求值,可被后续的输出和逻辑使用。赋值语法与变量作用域见 set 参考

嵌套取值

嵌套对象的属性用点号表示,数组项或更适合写成字符串的键用方括号表示。

knap
{{ author.name }}
{{ authors[0].name }}
{{ metadata["article:section"] }}

方括号表达式也可以使用另一个变量,需要在两个数组之间并行读取时很有用。

knap
{% for line in transcript %}
{{ timestamps[loop.index0] }}: {{ line }}
{% endfor %}

便于阅读的变量名

变量输出支持带空格的名称,因此导入的表格列标题无需预处理就能保持可读。

knap
{{ First name | trim }}
{{ Publication date | date:"YYYY-MM-DD" }}

取值类型

变量可以包含字符串、数字、布尔值、数组、对象和空值。

类型常见用途
string标题、正文、URL
number计数与度量
boolean功能开关与状态标记
array标签、作者、章节
object嵌套的结构化数据
null缺失或空取值

正在用 Knap 开发应用?见 API 参考中的变量与解析器