Skip to content

把数据塑造成 .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——把石头打制成箭头、刮削器等工具的过程。