Knap

作者 kepano3ccff5338ea7無授權條款49K 個星標收錄於 2026年10月8日更新於 2026年10月8日儲存庫3 週前更新

Render Markdown from templates and structured data using Knap CLI. Use when the user asks to apply a Knap template, turn JSON or CSV data into notes, batch-generate Markdown files, or format Defuddle output into a note.

僅含說明Documents & Office
AI 產生的概覽

使用 Knap CLI 將範本與 JSON 或 CSV 資料算繪成 Markdown 筆記,並支援批次產生。

功能
此技能指示代理使用 Knap CLI 算繪含有變數、篩選器與邏輯的 Markdown 範本。內容涵蓋從 JSON 檔案、內嵌 JSON、標準輸入、CSV 或資料夾提供資料、驗證範本,以及依每筆資料記錄批次產生一個 Markdown 檔案。它也說明將 Defuddle 網頁輸出轉成筆記的流程。
適用情境
當使用者要求套用 Knap 範本、把 JSON 或 CSV 資料轉成 Markdown 筆記、批次產生 Markdown 檔案,或將 Defuddle 輸出格式化為筆記時使用。
執行需求
需要 Knap CLI,可透過 npm 全域安裝或以 npx 執行,並需要 Node.js 20 或更新版本。此技能僅為說明文件,不附帶指令碼;只有選用的 Defuddle 擷取步驟需要網路存取。

Knap

Use Knap CLI to render Markdown templates with variables, filters, and logic.

If not installed: npm install -g knap (requires Node.js 20 or later). Alternatively, use npx knap.

Run knap --help for available commands and options. Discover the language through the CLI's offline reference:

bash
knap help syntaxknap help filtersknap help filter dateknap help tagsknap help tag for

Use the lists to find names, then request individual help for syntax, parameters, and examples with expected output.

Usage

Render a template with JSON variables:

bash
knap render template.md --data article.json -o note.md

Supply a template and data inline:

bash
knap render -t '# {{ title | trim }}' --data-json '{"title":"Hello"}'

Override a variable or pipe JSON data:

bash
knap render template.md --data article.json --set 'title=Custom title'cat article.json | knap render template.md --data -

Data must be a JSON object; its properties become template variables. --set overrides literal top-level keys with strings. Use JSON for nested objects, arrays, numbers, and booleans.

Choose one template source (file, -t, or stdin) and one data source (--data or --data-json). Only one input can read stdin. Without a template file or -t, Knap reads the template from stdin.

Output defaults to stdout. -o creates parent directories and overwrites the destination after rendering succeeds. Errors exit with status 1; diagnostics go to stderr. Warnings can accompany successful output.

Templates

Use {{ variable }} for values, | for filters, and {% ... %} for logic. For example, save this as template.md:

knap
---{{ title | yaml_property:"title" }}{{ tags | yaml_property:"tags" }}---# {{ title | trim }}{% if author %}By {{ author }}{% endif %}
{{ content }}

Use yaml_property for complete frontmatter properties so values are quoted and indented correctly. The CLI includes standard filters, but does not supply Web Clipper browser variables, selectors, prompts, or DOM-dependent HTML filters. Supply variables through JSON.

Check a template before rendering:

bash
knap validate template.md

Validation checks syntax, filter names, and static filter arguments without data or file output. It does not check variable existence, runtime values, or dynamic arguments; render with real data to check runtime behavior. Diagnostics go to stderr and include relevant help commands.

Defuddle pipeline

Extract a web page as JSON with Markdown content, then render it into a note:

bash
defuddle parse https://example.com/article --md --json \  | knap render template.md --data - -o note.md

Defuddle's JSON properties, such as title and content, become template variables directly.

Batch rendering

Create one file per CSV row, JSON array object, or JSON file in a folder:

bash
knap batch template.md --data articles.csv --output-dir notes \  --filename '{{ title | safe_name }}.md'

Use --data articles.json for an array or --data ./articles for a folder of JSON objects. CSV headers become variable names and values remain strings. Piped data defaults to JSON; add --format csv for piped CSV.

Use --dry-run to validate and list output paths without writing files. Existing files require --overwrite, including during a dry run. Duplicate output names within a batch are errors even with --overwrite.

Filename templates must produce a single filename with its extension, without directories. Use safe_name for data-derived names. Without --filename, Knap preserves source JSON basenames or numbers CSV rows and array items as 1.md, 2.md, and so on.

來源與署名

來源:kepano/obsidian-skills位於skills/knap提交3ccff53

授權條款: 無授權條款

內容歸原作者所有。SourceWeft 從公開儲存庫中收錄這些內容。

檢舉或申請下架