TootlikkusObsidian

Knap

Koostab Knap CLI abil mallidest ja andmetest Markdowni.

Kkepano (Steph Ango)·Tootlikkus·MIT

Kogu oskus — vaikeversiooni hoitakse GitHubis; sinu muudatused jäävad sinu enda klooni.

Kasuta seda oskustLaadi alla .zip
Kuidas see töötab?
  • ChatGPT avab uue vestluse, kuhu oskus on laaditud. Kui see on lingi jaoks liiga pikk, kopeeritakse see lõikelauale — lihtsalt kleebi.
  • Claude töötab samamoodi. Püsivaks paigaldamiseks laadi alla .zip ja lae see üles: Claude → Settings → Capabilities → Skills (Pro/Team/Enterprise).
  • Kopeeri oskus kopeerib oskuse, et saaksid selle kleepida mis tahes assistenti, sh Grok.

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:

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:

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

Anna mall ja andmed otse:

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

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

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:

---
{{ 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:

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:

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:

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.