主题
把数据塑造成 .md
Knap 是一门简单的模板语言,用逻辑、变量和过滤器把数据塑造成 Markdown。
工作原理
在 Markdown 中就地插入变量。过滤器用来修改取值和格式。
模板
knap
# {{ title }}
**Plot:**
{{ plot | blockquote }}输出
md
# The Matrix
**Plot:**
> A hacker discovers that reality is a simulation and joins a rebellion against its machines.用逻辑按条件渲染变量,并对数组做迭代。
模板
knap
{% if cast %}
{{ cast | sort:"Actor" | table }}
{% endif %}输出
md
| Actor | Role |
| - | - |
| Carrie-Anne Moss | Trinity |
| Hugo Weaving | Agent Smith |
| Keanu Reeves | Neo |
| Laurence Fishburne | Morpheus |Knap 也支持生成 YAML frontmatter,以及面向 Obsidian 这类应用的 Markdown 扩展。
模板
knap
---
year: {{ year }}
{{ directors | wikilink | yaml_property:"directors" }}
---输出
md
---
year: 1999
directors:
- "[[Lana Wachowski]]"
- "[[Lilly Wachowski]]"
---在终端中使用 Knap
从 Knap 模板生成 Markdown。可选项见 CLI 指南。
shell
npx knap render template.md --data data.json --output note.md在应用中使用 Knap
用 API 为你的应用加入 Knap 模板能力。
shell
npm install knap探索
变量
把数据中的取值插入模板。
过滤器
转换取值,并格式化 Markdown。
逻辑
按条件包含内容,并对数组重复渲染。
Knap 的实际应用
Knap 是开源项目。它最初是 Obsidian 系列工具的模板语言,现在任何工具都可以使用。Knap 的名字来自 knapping——把石头打制成箭头、刮削器等工具的过程。
- Obsidian Web Clipper:用可自定义的模板把网页保存为 Markdown。
- Obsidian Importer:把多种应用和文件格式的数据转换为便于携带的 Markdown 文件。