主题
变量由应用定义。例如,Obsidian Web Clipper 提供了一批 Knap 变量,用来统一网页内容的表示方式。
模板被 Knap 渲染时,变量会被替换为取值。变量用双花括号 {{ 和 }} 包裹,空白可有可无。
knap
{{ title }}md
The Machine Stops用过滤器修改取值。过滤器可以链式使用,按从左到右的顺序执行。
knap
{{ title | h2 | upper }}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 参考中的变量与解析器。