kepano/knap

Rendern Sie Markdown aus Vorlagen und strukturierten Daten mit der Knap CLI. Verwenden Sie es, wenn der Benutzer eine Knap-Vorlage anwenden, JSON- oder CSV-Daten in Notizen umwandeln, batchweise Markdown-Dateien generieren oder Defuddle-Ausgaben in Notizen formatieren möchte.

Was ist knap?

Dieses Skill ermöglicht die Nutzung der Knap CLI, um Markdown-Dokumente aus Vorlagen mit Variablen, Filtern und Logik zu rendern. Es ist besonders nützlich für Entwickler*innen und Power-User, die strukturierte Daten (JSON, CSV) in formatierte Notizen oder Dokumente umwandeln möchten, sei es für persönliche Wissensbasen, Berichte oder automatisierte Workflows. Das Skill unterstützt die Plattformen Cursor, Claude Code und andere CLI-basierte KI-Agenten. Es nutzt Knaps Template-Engine mit Mustache-ähnlicher Syntax (`{{ }}` für Werte, `{% %}` für Logik) und bietet erweiterte Funktionen wie Batch-Rendering, Defuddle-Integration zum Extrahieren von Webseiten und Validierung von Vorlagen. Die Installation erfolgt per npm (`npm install -g knap`), die Nutzung über Kommandozeilenbefehle wie `knap render` oder `knap batch`.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/kepano/obsidian-skills/tree/main/skills/knap

Installed? Explore more Produktivität & Zusammenarbeit skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht knap?

Verwenden Sie die Knap CLI, um Markdown-Vorlagen mit Variablen, Filtern und Logik zu rendern.

Falls nicht installiert: npm install -g knap (erfordert Node.js 20 oder neuer). Alternativ kann npx knap verwendet werden.

Führen Sie knap --help aus, um verfügbare Befehle und Optionen anzuzeigen. Entdecken Sie die Sprache über die offline verfügbare Referenz der CLI:

knap help syntax
knap help filters
knap help filter date
knap help tags
knap help tag for

Verwenden Sie die Listen, um Namen zu finden, und fragen Sie dann individuelle Hilfe zu Syntax, Parametern und Beispielen mit erwarteter Ausgabe an.

Verwendung

Rendern einer Vorlage mit JSON-Variablen:

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

Vorlage und Daten inline bereitstellen:

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

Eine Variable überschreiben oder JSON-Daten pipen:

knap render template.md --data article.json --set 'title=Benutzerdefinierter Titel'
cat article.json | knap render template.md --data -

Daten müssen ein JSON-Objekt sein; seine Eigenschaften werden zu Vorlagenvariablen. --set überschreibt literale Top-Level-Schlüssel mit Zeichenketten. Verwenden Sie JSON für verschachtelte Objekte, Arrays, Zahlen und Booleans.

Wählen Sie eine Vorlagenquelle (Datei, -t oder stdin) und eine Datenquelle (--data oder --data-json). Nur eine Eingabe kann stdin lesen. Ohne eine Vorlagendatei oder -t liest Knap die Vorlage von stdin.

Die Ausgabe erfolgt standardmäßig auf stdout. -o erstellt übergeordnete Verzeichnisse und überschreibt das Ziel, nachdem das Rendern erfolgreich war. Fehler führen zum Exit-Status 1; Diagnoseinformationen gehen an stderr. Warnungen können erfolgreiche Ausgaben begleiten.

Vorlagen

Verwenden Sie {{ variable }} für Werte, | für Filter und {% ... %} für Logik. Speichern Sie dies beispielsweise als template.md:

---
{{ title | yaml_property:"title" }}
{{ tags | yaml_property:"tags" }}
---
# {{ title | trim }}
{% if author %}
Von {{ author }}
{% endif %}

{{ content }}

Verwenden Sie yaml_property für vollständige Frontmatter-Eigenschaften, damit Werte korrekt zitiert und eingerückt werden. Die CLI enthält Standardfilter, stellt aber keine Web-Clipper-Browservariablen, Selektoren, Aufforderungen oder DOM-abhängige HTML-Filter bereit. Stellen Sie Variablen über JSON bereit.

Überprüfen Sie eine Vorlage vor dem Rendern:

knap validate template.md

Die Validierung prüft Syntax, Filternamen und statische Filterargumente ohne Daten oder Dateiausgabe. Sie prüft nicht die Existenz von Variablen, Laufzeitwerte oder dynamische Argumente; rendern Sie mit echten Daten, um das Laufzeitverhalten zu prüfen. Diagnoseinformationen gehen an stderr und enthalten relevante Hilfebefehle.

Defuddle-Pipeline

Extrahieren Sie eine Webseite als JSON mit Markdown-Inhalt und rendern Sie sie dann in eine Notiz:

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

Defuddles JSON-Eigenschaften wie title und content werden direkt zu Vorlagenvariablen.

Batch-Rendering

Erstellen Sie eine Datei pro CSV-Zeile, JSON-Array-Element oder JSON-Datei in einem Ordner:

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

Verwenden Sie --data articles.json für ein Array oder --data ./articles für einen Ordner mit JSON-Objekten. CSV-Header werden zu Variablennamen, Werte bleiben Zeichenketten. Gepipte Daten standardmäßig als JSON; fügen Sie --format csv für gepipte CSV hinzu.

Verwenden Sie --dry-run, um Ausgabepfade zu validieren und aufzulisten, ohne Dateien zu schreiben. Vorhandene Dateien erfordern --overwrite, auch während eines Probelaufs. Doppelte Ausgabenamen innerhalb eines Batches sind selbst mit --overwrite Fehler.

Vorlagen für Dateinamen müssen einen einzelnen Dateinamen mit seiner Erweiterung erzeugen, ohne Verzeichnisse. Verwenden Sie safe_name für datenbasierte Namen. Ohne --filename behält Knap die Basenamen der JSON-Quelldateien bei oder nummeriert CSV-Zeilen und Array-Elemente als 1.md, 2.md usw.

Individual skills in this repo

This repo contains 5 individual skills — each has its own dedicated page.

kepano/defuddle

Extract clean markdown content from web pages using Defuddle CLI, removing clutter and navigation to save tokens. Use instead of WebFetch when the user provides a URL to read or analyze, for online documentation, articles, blog posts, or any standard web page. Do NOT use for URLs ending in .md — those are already markdown, use WebFetch directly.

kepano/json-canvas

Create and edit JSON Canvas files (.canvas) with nodes, edges, groups, and connections. Use when working with .canvas files, creating visual canvases, mind maps, flowcharts, or when the user mentions Canvas files in Obsidian.

kepano/obsidian-bases

Create and edit Obsidian Bases (.base files) with views, filters, formulas, and summaries. Use when working with .base files, creating database-like views of notes, or when the user mentions Bases, table views, card views, filters, or formulas in Obsidian.

kepano/obsidian-cli

Interact with Obsidian vaults using the Obsidian CLI to read, create, search, and manage notes, tasks, properties, and more. Also supports plugin and theme development with commands to reload plugins, run JavaScript, capture errors, take screenshots, and inspect the DOM. Use when the user asks to interact with their Obsidian vault, manage notes, search vault content, perform vault operations from the command line, or develop and debug Obsidian plugins and themes.

kepano/obsidian-markdown

Create and edit Obsidian Flavored Markdown with wikilinks, embeds, callouts, properties, and other Obsidian-specific syntax. Use when working with .md files in Obsidian, or when the user mentions wikilinks, callouts, frontmatter, tags, embeds, or Obsidian notes.

Verwandte Skills