Video yükleniyor...
Video Yüklenemedi
This is Knap. It's a new language I created that turns data into Markdown. The syntax should feel familiar and comes with wonderfully pleasant features to modify and format plain text. Knap is open source. Over a million people already use Knap directly or indirectly because it started as... show more
229,199 görüntüleme • 4 gün önce •via X (Twitter)
41 Yorum

Knap: a simple template language that turns data into Markdown using logic, variables, and filters.

It also means "pretty" in Dutch ;-)

I love that the share button now works with Obsidian, but the one feature of Obsidian Web Clipper that I enjoyed was that it kept the URL in the frontmatter. I actually didn't like many more of the properties that were included, but knowing the URL of the source is super helpful.

Just add URL to your template!

ofc you thought of it.

Everyone builds scrapers, but the real bottleneck is clean data-to-Markdown formatting before context hits an LLM. Piping Defuddle into Knap quietly solves that entire ingestion layer.

what makes Knap different than Djot?

They are unrelated in purpose. Djot is an alternative to Markdown. Knap is a templating language to generate Markdown. Though it's not really optimized for that, Knap can also generate Djot.

Obsidian ecosystem is extremely interesting, how new things keep being added even though Obsidian does serve it's purpose well, now contributions seemingly are going towards Markdown Ecosystem as a whole

@round This is crazy man, you’re cooking

@obsdmd So it’s Tera basically

@obsdmd Knap's syntax is intentionally designed to feel familiar if you've used Twig, Liquid, Jinja, Tera, etc. But Knap is specifically designed for generating Markdown with frontmatter, so it has many more built-in filters for that purpose and different defaults for whitespace.

Will you be updating your obsidian skills repo to include Knap? 👀🤔

this is a sneaky-good agent primitive: keep structured data as truth, compile only the exact Markdown each run needs, and stop burning context on giant raw JSON blobs.

I read your text and watched the video and I still don't understand what knap is doing. How is the output with all the data generated from the input which is just code?

Looks like it's heavily inspired by Jinja + Shopify Liquid

Love this!!!

@obsdmd Reminds me of Nunjucks, which I used to use a lot with the 11ty static site generator. Nice, I’ll check it out.

Intriguing!

This will be very useful for my Custom Views plugin. Thanks ❤️

why new lang? why not python, r like

it's not trying to be a full programming language, it's designed to be simple and safe

i see. we don't have to learn new lang anyway thanks to ...

it can be hard to truly blow our minds in this day and age, but Klap will blow millions... 🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯

Welp, that's more or less what I have been looking for. Seems great!

When I built markdown generation for transaction summaries, conditional logic crept into every template until nothing was maintainable. Rewrote it three times before settling on a dumb string builder.

@obsdmd We don’t deserve you

This is amazing. Will definitely try and use this in some apps I'm working on.

nice

i think my claude will like this

Game changer, most data won't always need to be store location simply knap it Keep up the great work 🫡

Love new Jinja templates!

@obsdmd will it be part of obsidian?

I cannot find words to describe the amount of amazement i get from kepano... omg

Any plan on adding custom blocks à-la Nunjucks/Jinja through the API? If so, I'd definitely switch to Knap for my Blueprint Obsidian plugin :D

might as well throw in support to knap on my markdown-graphs lol

dude this is incredibly cool. one thing i love about vue is how conditionals are scoped to the element, so instead of: {% if cast %} {{ cast | sort:"Actor" | table }} {% endif %} it's: {{ if cast | sort:"Actor" | table }} would love a shorthand :)

Jfc only you will make a language just to make a web clipper. No wonder it's the best web clipper around

Prfect timing! Thsnks :)

Bro, that is just jinja with compilation target set to markdown instead of html...

good choice of name
