RemNote style flashcards with TiddlyWiki + Streams + TiddlyRemember

374 views
Skip to first unread message

si

unread,
Jan 16, 2021, 3:06:19 PM1/16/21
to TiddlyWiki
There are things about RemNote that I don't like, but it does have a really interesting approach to generating SRS flashcards.

You write flashcards along with regular notes in an outliner, which might at first not seem that innovative. But rather than just presenting you with isolated question + answer flashcards, your cards are shown to you alongside their ancestors in the tree. Looking at the images below will make it clear how this works.

This has a couple of benefits IMO:

1. You can be much less verbose when writing your flashcards, and still get all the relevant context needed to answer the question.
2. More importantly can more easily see how the atomic information in your flashcard relates to other information while you are reviewing it. This is a problem that many Anki users note.
3. You are much more likely to jump back to your notes and update them over time as your understanding of a topic changes. You can more easily identify gaps in your knowledge etc.

Anyway I wondered how easy it would be to mimic this with TiddlyWiki, and with help from Saq, I created a mock-up of the basic idea.

So for example if you might create some notes in streams like this:

bash-stream - Copy.png

Anything of the form question::answer will be converted into a flashcard, so you will get cards in Anki like this:

_anki1 - Copy.png
_anki2 - Copy.png
_anki3 - Copy.png

This is obviously just a proof of concept, but to try it out just import the attached tid file. You mush also have Streams and TiddlyRemember set up of course.

If anyone has any thoughts on how this could be taken further please share!

I'm personally interested in doing something that shows the relationships between the flashcard that you are reviewing and other tiddlers, but in a non-hierarchical way. Maybe by listing backlinks or tags in some manner. Not sure how this could work at this stage however.

si

unread,
Jan 16, 2021, 3:08:54 PM1/16/21
to TiddlyWiki
For some reason I could make my OP with an attachment, so here is the code from the tid file. Just create a tiddler and copy it in.

\define showAncestors()
<$list filter="[enlist<mylist>first[]]">
    <ul><li>
<$list filter="[<currentTiddler>!match<bottom-tiddler>then<currentTiddler>]">
<$list filter="[<currentTiddler>has[parent]then{!!text}else{!!title}]">
<<currentTiddler>>
</$list>
</$list>
<$list filter="[<currentTiddler>match<bottom-tiddler>]">
<$vars
question={{{ [{!!text}splitbefore[::]addprefix['']addsuffix['']] }}}>
<<question>>
</$vars>
</$list>
    <$set name="mylist" filter="[enlist<mylist>rest[1]]">
            <<showAncestors>>
    </$set>
    </li></ul>
</$list>
\end

\define getAncestors()
<$list filter="[all[current]get[parent]!is[blank]]" emptyMessage="""<$set name="mylist" filter="[enlist<mylist>reverse[]]"><<showAncestors>></$set>""">
    <$set name="mylist" filter="[enlist<mylist>] [<currentTiddler>]">
            <<getAncestors>>
    </$set>
</$list>
\end

\define thing()
<$set name="mylist" filter="[<currentTiddler>]">
<$vars bottom-tiddler=<<currentTiddler>> >
<<getAncestors>>
</$vars>
</$set>
\end

<$list filter="[search:text[::]!is[system]!<currentTiddler>]">
<$macrocall $name=rememberq id={{!!created}}
question=<<thing>>
answer={{{ [<currentTiddler>get[text]split[::]last[]] }}}
/>
</$list>

Soren Bjornstad

unread,
Jan 17, 2021, 3:56:43 PM1/17/21
to TiddlyWiki
Si,

Thanks for sharing! Love all the remixing that's going on here with TiddlyRemember and other information systems.

This is the coolest thing about TW IMO…it's not as polished as all these other tools out of the box, but then within a few weeks of one of these new features becoming popular, someone spends a weekend hacking in TiddlyWiki and it's available there too. :-)

si

unread,
Jan 18, 2021, 4:06:06 PM1/18/21
to TiddlyWiki
Hi Soren,

Yeah I've been pretty surprised by how flexible TiddlyRemember has turned out to be.

I'm not sure how useful this specific example is, however. I can see it working well for something like learning the command line, but not everything can be so easily turned into a hierarchy. But it's so cool to be able to experiment with a new system without having to switch over to a totally different app.
Reply all
Reply to author
Forward
0 new messages