Another ZK tool: ZTL
Recently published the first version of a Zettelkasten I use in the current format since around a year. The initial inspiration came from Zola, a fast static blog generator, but instead I adapted their template engine to generate previews, Anki card decks and Mastodon toots.
The feature set may be interesting for some of you, starting at https://codeberg.org/losch/ztl#generate-links-without-hassle
Everything is file based, local and FOSS. The project contains a fast note and file span generator called ztl and a shim layer for Neovim called ztl.nvim. Because of the approach extending to more editors should be easy.
The most crucial feature is statefulness, meaning I can keep everything open on a remote server using terminal multiplexing and access from any computer without prior setup.
Next, I want to write a user guide, as good as Mochi, about core concepts such as flags, schedules, card fragments etc.
Cheers
Howdy, Stranger!

Comments
Congratulations on successfully developing it.
I was interested to see Rust/Cargo there, as I'm learning Rust myself right now.
Mochi is new to me, but I'll check it out, thanks for the link.
Thank you, it took me some cycles to polish things a bit : )
Best thing of Rust is that when it compiles it works as expected (bc mental model is quite straightforward), and the ecosystem has super helpful librarys. For example error messages uses the same crate as the Rust compiler. Or parser combinators. And everything runs super fast. Any project you want to share? : )
Mochi also has some note taking functions.
Not yet. My profession is in something else, but I'm learning programming out of personal interest.
First I want to finish a couple of books on computer science and Git, and then I'll be focusing on Rust much more. I've gone through a phase a trying out languages, looking for one I can really get serious with. So far I've enjoyed Rust the most and plan to continue with it as my main language.
My goal is to make my own Zettelkasten app, although I know that'll take some time given my level of knowledge and experience.
Wish me luck!
One thing to keep in mind is reducing the upfront cost of going through whole books without actually practicing things. Git is a prime example for this, I recommend the Git parable https://tom.preston-werner.com/2009/05/19/the-git-parable for an essence without the technical details.
If you want to deal with the complexity of graphic stuff, I can recommend iced supported by System76. But always bet on text.
Release 0.2.0
Second minor release of ZTL. Mainly improves handling of BibTeX entries and integration with Telescope pickers. See Release Notes for more information.
Highlights
Floating Windows
Macro Views
Card Template Render to Anki
Congratulations on the progress.
I was thinking about efficient ways to convert notes to flash cards. The nice thing about Anki is that sometimes somebody has already done the work of creating a deck, but it's not the same as the deck being made of your own notes.
Efficiency is maybe the wrong thing to chase, when creating flash cards as the time consuming part is reviewing. Hence a better measure is maybe card richness, the ZK fortunately provides context which can make cards much better.
To give an example how this works in ZTL, take for example this dictionary note:
## 62ss5p hullu -- verrückt, wahnsinnig, toll _toimia_. Joku toimii väärin. _sairas_. Aivoihin vaikuttava sairaus. <card class="lexi"> <img>Draw an image of a mad professor who is plotting to take over the world</img> </card>The
card class="lexi"statement generates two cards. The first is a simple picture-definition pair:The second generates audio and cloze examples based on the incoming links of the dictionary notes (that is word roots in Finnish in other notes), which is quite powerful:
Under the hood, I use combination of ZK, template rendering and some
text-to-{text,image,audio}features. So for example extracting the outer sentence of a word in an incoming link and converting it to audio, looks like this:{% for link in note.incoming %} {{link | outer_sentence | to_audio(lang = "fin") }} {% endfor %}