---
title: Knap
description: Koostab Knap CLI abil mallidest ja andmetest Markdowni.
category: Productivity
sublabel: Obsidian
author: kepano (Steph Ango)
tags: 
license: MIT
source: https://github.com/kepano/obsidian-skills
---

# Knap

Kasuta Knap CLI-d Markdowni mallide renderdamiseks muutujate, filtrite ja loogikaga.

Kui pole paigaldatud: `npm install -g knap` (nõuab Node.js 20 või uuemat). Teise võimalusena kasuta `npx knap`.

Käivita `knap --help` saadaolevate käskude ja valikute jaoks. Avasta keel CLI võrguühenduseta viite kaudu:

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

Kasuta loendeid nimede leidmiseks, seejärel küsi üksikut abi süntaksi, parameetrite ja näidete kohta koos oodatava väljundiga.

## Kasutamine

Renderda mall JSON-muutujatega:

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

Anna mall ja andmed otse:

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

Kirjuta muutuja üle või toru JSON-andmeid:

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

Andmed peavad olema JSON-objekt; selle omadused muutuvad malli muutujateks. `--set` kirjutab litertaalsed tipptaseme võtmed üle stringidega. Kasuta JSON-i pesastatud objektide, massiivide, arvude ja tõeväärtuste jaoks.

Vali üks malli allikas (fail, `-t` või stdin) ja üks andmeallikas (`--data` või `--data-json`). Ainult üks sisend võib lugeda stdinist. Ilma mallifaili või `-t`-ta loeb Knap malli stdinist.

Väljund läheb vaikimisi stdouti. `-o` loob vanemkataloogid ja kirjutab sihtkoha üle pärast edukat renderdamist. Vea korral väljutakse olekuga `1`; diagnostika läheb stderr-i. Hoiatused võivad kaasneda eduka väljundiga.

## Mallid

Kasuta `{{ variable }}` väärtuste, `|` filtrite ja `{% ... %}` loogika jaoks. Näiteks salvesta see failina `template.md`:

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

{{ content }}
```

Kasuta `yaml_property` täielike frontmatteri omaduste jaoks, et väärtused oleksid õigesti jutumärgistatud ja taandatud. CLI sisaldab standardfiltreid, kuid ei paku Web Clipperi brauserimuutujaid, selektoreid, päringuid ega DOM-ist sõltuvaid HTML-filtreid. Anna muutujad JSON-i kaudu.

Kontrolli malli enne renderdamist:

```bash
knap validate template.md
```

Valideerimine kontrollib süntaksit, filtrinimede ja staatiliste filtrite argumente ilma andmete või failiväljundita. See ei kontrolli muutujate olemasolu, käitusaja väärtusi ega dünaamilisi argumente; käitusaja käitumise kontrollimiseks renderda pärisandmetega. Diagnostika läheb stderr-i ja sisaldab asjakohaseid abi käske.

## Defuddle torujuhe

Eralda veebileht JSON-ina Markdown-sisuga, seejärel renderda see märkmeks:

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

Defuddle JSON-omadused, nagu `title` ja `content`, muutuvad otse malli muutujateks.

## Partiikaupa renderdamine

Loo üks fail iga CSV-rea, JSON-massiivi objekti või kaustas oleva JSON-faili kohta:

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

Kasuta `--data articles.json` massiivi jaoks või `--data ./articles` JSON-objektide kausta jaoks. CSV päised muutuvad muutujate nimedeks ja väärtused jäävad stringideks. Toruandmed on vaikimisi JSON; torutud CSV jaoks lisa `--format csv`.

Kasuta `--dry-run`, et valideerida ja loetleda väljundteid ilma faile kirjutamata. Olemasolevad failid nõuavad `--overwrite`, sh kuivkäivituse ajal. Duplikaatsed väljundnimed partiis on vead isegi `--overwrite` korral.

Failinime mallid peavad tootma ühe failinime koos laiendiga, ilma kataloogideta. Kasuta `safe_name` andmetest tuletatud nimede jaoks. Ilma `--filename`-ita säilitab Knap lähte-JSON-i baasnimed või nummerdab CSV-read ja massiivi elemendid kui `1.md`, `2.md` jne.