files2flashcards -- Keep your flashcards rooted in the context of your notes
For a many years I've been using flashcards to keep myself sharp on all sorts of subjects. I work in engineering sciences and there is a lot of stuff which is incredibly useful to "just know" and even more that is simply "nice to know." Flashcards and spaced-repetition are magic for this.
However, an issue with flashcards is forming connections between them. To me, at least, they always felt a bit isolated. If only there was a way to embed my flashcards in my Zettelkasten. Ladies and gentlemen, after a few weeks thinking and a few days of programming I bring you a small program to handle that:
Creatively named files2flashcards: https://github.com/henrikh/files2flashcards
It works by processing HTML tags within notes. It takes something like this:
<abbr class="h-fcard" title="Low Earth Orbit">LEO</abbr>
and adds a new flashcard to Anki (a popular flashcard app.)
Why HTML? Well, first of all, it will render nicely in most Markdown previewers. Second, it is easy to parse and very flexible. This program is not just limited to abbreviations, but it can support very elaborate flashcard specifications, if desired.
It also supports updating flashcards in Anki if you change the note. See more details on the Github repository
It is very, very much early, beta software. I use it, but I would encourage anyone else to make sure your backups works. It has very little polish and very little error handling. But it is a first step.
I'd like to hear what you think
Howdy, Stranger!
Comments
Love the idea and love that it's FOSS! More power to you on this journey!
Author at Zettelkasten.de • https://christiantietze.de/
I agree - great idea! Feature suggestion - allow a way to create the card in a note without having any note text required to be linked, so no card information would actually be displayed in the note if shown in a browser. That might sound like a weird idea, because it is essentially allowing a comment to be marked for inclusion in Anki, but it would still be very beneficial to be able to add such a card in a note without having to go to a different program to do it, and I can imagine many situations where I want to make a card based on what I'm writing a note, but I don't want a potential competition between the best wording of something for note versus the best wording of something for an Anik card.
@henrikenggaard This is awesome. It's all the more reason to atomize our notes.
I have a hypothesis that "Anki makes Zettelkasting easier", so far what has been your experience using both? I've used Anki with great success, but I haven't been able to use it for those long-winded, pop-psych, self-help books so I've stopped reading them ever since.
@cobblepot Maybe I am misunderstanding what you mean, but if you don't want content to show up in your browser/preview, then you could either enclose the tags in XML comments
<!-- comment -->
or use thestyle="display: none"
attribute. The way I extract the elements doesn't care about comments and extra attributes, so both of these should work. But in the end it depends on what program you use to view it.I'm also going to add cloze deletions at some point. I expect them to flow better with normal prose.
@improveism I only finished this program yesterday and I have to use it some more before I can tell much about my experience. However, I have been using flashcards for studying (engineering) for several years (since 2015). I quickly learned that flashcards needs to be "atomic" and well-thought out in relation to other flashcards -- sounds a bit familiar, doesn't it?
When I learned about Zettelkasten it was like discovering a missing link: this is how my learning about good flashcards could be turned into a a good note taking practice.
I've never used flashcards for "advice." I use it purely for memorization and keeping myself aware of "fact-stuff." I work in optics/telecom/signal processing and my flashcards and Zettelkasten are mainly such topics. All sorts of relationships about the Fourier transform is worth memorizing since it will always be true. I have not found a good approach (with flashcards) for less absolute subjects.
Hopefully this experiment works out
@henrikenggaard what a coincidence, I'm also an engineer (electronic communications)!
Same here, I agree it's better used for evergreen facts. That was also the problem I had with Anki: it's hard to connect and explain ideas in a logical way even if I've understood a concept perfectly. Zettelkasten practice definitely complemented that.
Looking forward to your success! Looks promising tbh.
@improveism Good flashcards take a lot of work. The way I understand it, flashcards and spaced-repetition is a trick. It exploits a facet of the brains way of remembering and reinforcing things: if you time delays such that the effort is just right, then we can delay the next test further.
However, the problem is that for my brain it is just a game, not at all about learning. I might as well remember details about how I formulated the flashcards and not the actual fact I was interested. To combat this I introduce an idea of "full coverage": if I wrote about, say Fourier transforms of odd functions, then I must also write flashcards about even functions. And they must all be formulated exactly the same.
It is of course hard to self-asses, but I think it worked. I didn't feel like I tricked myself anymore, it felt like an honest test.
This is of course, where putting the flashcards in their note context is important. Instead of having one flashcard about Fourier transforms of odd functions, I now have four-ish flashcards. Anki doesn't capture this connection. Hopefully my notes (and by extension Zettelkasten) can help here and beyond.
@henrikenggaard absolutely, I believe you're saying: create enough flashcards to cover a piece of concept from all angles.
In my experience, multiple specific cards that tackle a concept from multiple angles tend to get answered faster than one card for one concept. It's ironic
@henrikenggaard 🙌🙌🙌🙌🙌🙌🙌🙌🙌
Is there a python for dummies version of this?
@pseudoevagrius
I don't think there is a layman edition of the program, but perhaps I can teach you enough to use it
You can just pm me and I'll help you out as much as possible.