Knap logo

Knap

打开

Knap 是 Obsidian CEO 推出的 MIT 模板语言,用逻辑、变量和过滤器把 JSON 数据变成 Markdown。

分享:
查看替代方案

Knap 是一门把数据变成 Markdown 的模板语言。产品站是 knap.md。仓库 obsidianmd/knapMIT,创建于 2026-08-21,语言 TypeScript。2026-09-12 GitHub 显示 341 star10 fork,最近推送 2026-09-11。当天 npm 最新版是 0.4.2Obsidian CEO Steph Ango(kepano)发布;r/ObsidianMD 热榜帖约 999 赞。它已经给 Obsidian Web Clipper 和 Obsidian Importer 的模板供电。

对照 Obsidian 若你要笔记应用,对照 Markitdown 若你要智能体把文件转成 Markdown,对照 Defuddle 若你只要在套模板之前抽取 HTML 正文。

核心功能

  • Markdown 原生模板{{ title }} 变量,| filter 链(如 blockquotesorttablewikilinkyaml_property),以及 {% if %} / {% for %} 逻辑。
  • CLI 和库npx knap render template.md --data data.json --output note.mdnpm install knap。需要 Node.js 20+。knap validate 不渲染只查语法。knap help filters 是离线目录。
  • 不用 eval:README 写明 AST 解释器,不执行任意 JavaScript。
  • 面向 Obsidian 的输出:YAML frontmatter、[[双向链接]],以及 Markdown 宿主本来就接受的 HTML。
  • Playgroundknap.md/playground 和文档是同一套例子。

限制:341 star 是热度,不是审计。strip_tags 这类 HTML 过滤器不是消毒器。linkimage 会丢掉 javascript:vbscript:data: 目标;宿主仍要自己定协议策略。依赖 DOM 的过滤器要走库 API,不是 CLI。

适用场景

  • Clipper / Importer 作者,想在 Obsidian 工具里共用一门模板语言。
  • CLI 流水线:把 Defuddle 或其他 JSON 写成 Markdown 笔记。
  • 更该直接用 Obsidian 的人:只要仓库,不要模板运行时。

定价

部分 价格 2026-09-12 第一方页面
knap 语言、CLI、npm $0 MIT。约 341 star。npm knap 0.4.2。
Obsidian 宿主 以该产品为准 Clipper 和 Importer 是分开的。

快速开始

  1. 打开 playground,或 npm install knap / npx knap
  2. {{ variables }} 和可选的 {% if %} 写模板。
  3. 渲染:npx knap render template.md --data article.json --output note.md
  4. 无数据校验:npx knap validate template.md

第一方资料:文档README

常见问题

这是 Obsidian 插件吗?

不是。它是语言和 npm 包。Clipper 和 Importer 已经内嵌。任何应用都可以 npm install knap

模板里能跑 JavaScript 吗?

不能。README:AST 解释器,无 eval

Node 版本?

CLI 需要 Node.js 20 或更高。库的 import 不依赖 CLI。

替代方案

  • Obsidian:已经用 Knap 跑 Clipper/Importer 模板的仓库。
  • Markitdown:在智能体里把文件转成 Markdown,不是模板语言。
  • Mustache / Liquid:通用模板引擎。Knap 的过滤器面向 Markdown 和 Obsidian YAML。

使用技巧

  1. 源是 URL 时,把 Defuddle JSON 管道进 npx knap render template.md --data -
  2. 渲染前在 CI 跑 knap validate。它不检查变量是否存在。
  3. 渲染出的 HTML 在宿主消毒之前都当不可信。

总结

JSON 要变成 Markdown 笔记时,尤其是挨着 Obsidian Clipper,Knap 是值得先伸手的小型 MIT 语言。从 knap.md 开始;若你要的是仓库而不是模板器,把 Obsidian 留在短名单。

评论

还没有评论。成为第一个评论的人!