[HN Gopher] Show HN: I made Ankify that converts notes to Anki c...
       ___________________________________________________________________
        
       Show HN: I made Ankify that converts notes to Anki cards
        
       Backstory: I was in medical school and had to study a ton of
       materials in short period of time. I came across Anki but always
       had trouble with making cards. In my mind, making cards should be
       quick, seconds instead of minutes. My other problem is after making
       the cards, each card does not really relate to the other. When you
       study the individual card, your thought process is very random and
       not cohesive. I wanted to be able to still reference to my notes
       for big concepts and then use the cards to memorize the details but
       also for long term retention.  Ankify came out of that. At the
       time, I did not know any programming and paid someone to write a
       script in Python to convert the cards. Then, eventually I learned
       Python myself and expanded on the script. I also uploaded the
       markdown files online so I could view them anywhere
       (https://kangruixiang.github.io/wiki/).  I ran into a wall in
       making user interface for the program. It was difficult to make
       good looking cross platform user interface with Python. I gave up
       on making user interface for a year or two with end of med school
       and residency. After a while, I went back to see if anyone else had
       made anything similar. Despite many plugins/programs that makes it
       easy to make cards, none of them really focused on readability of
       the original notes. I decided to sit down and learn javascript to
       help with UI creation.  After about 3 years, everything finally
       came together after I learned Svelte, Tailwind, and Electron. I
       know Electron is not the most efficient program, but it's what
       works for me.  Also, it's also the feeling of being able to make
       whatever my mind can think of. It feels really refreshing and
       empowering. Even making the website for Ankify is a lot of fun. You
       have to think so much about the presentation, typography,
       logistics.
        
       Author : kangruixiang
       Score  : 80 points
       Date   : 2022-05-07 13:33 UTC (9 hours ago)
        
 (HTM) web link (ankify.krxiang.com)
 (TXT) w3m dump (ankify.krxiang.com)
        
       | i_like_apis wrote:
       | This is cool.
       | 
       | Is there a way in Ankify to export cards to any mobile apps?I
       | always want to study Anki on mobile but in the mobile apps I know
       | about, the experience of creating cards is too tedious.
       | 
       | It want to be able to create cards on desktop but usually study
       | on mobile!
       | 
       | If you like building in Electron, you may like Ionic if you build
       | a mobile app ;)
       | 
       | https://ionicframework.com/
       | 
       | I wish Anki mobile apps were just a nice simple view/study
       | experience, with the create and edit features much better suited
       | to desktop UI.
        
         | zaik wrote:
         | You can synchronize your Anki decks across devices by creating
         | an account on https://ankiweb.net/
        
         | kangruixiang wrote:
         | Yeah unfortunately this would only work on desktop. But you
         | could make the cards on desktop and then sync to mobile.
        
         | jwrallie wrote:
         | Check about AnkiDroid on Android or Anki app on Apple devices.
         | The latter is a bit expensive but well worth the investment.
         | The best part of Anki is that it has its own cloud service that
         | works for free. With that you can have the exact workflow you
         | described.
        
       | esrh wrote:
       | This is pretty neat, I've also encountered the same problem.
       | Personally, I take my notes in emacs org-mode, and I've built up
       | a workflow around anki-editor[0], some snippets and elisp.
       | 
       | [0] https://github.com/louietan/anki-editor
        
         | kangruixiang wrote:
         | This is really cool as well! It's fun to see how different
         | people have different solutions to the same problem.
        
       | lorey wrote:
       | I've only looked into importing cards automatically briefly. My
       | feeling was that keeping progress might be an issue if cards
       | change (and thus get re-created). Do you deal with that?
        
         | kangruixiang wrote:
         | Yes, Ankify adds an ID to the front of the card so that on re-
         | import, cards are updated instead of re-added. I'm careful
         | about making changes to the MD file. The ID are only added to
         | the front of the card so that the content of the notes are
         | minimally changed.
         | 
         | See more here: https://ankify.krxiang.com/docs/basic
        
       | sean_the_geek wrote:
       | Many thanks. This looks neat and I will check it out. I am heavy
       | user of Anki and was in a similar situation. I ended up taking
       | notes in Notion and using https://2anki.net/ to create cards. It
       | does restrict the type of notes you can take. Your application
       | looks comprehensive. Thanks.
        
         | kangruixiang wrote:
         | Yeah let me know if you have any comments or suggestions!
        
       | JulianWasTaken wrote:
       | Cool.
       | 
       | Tangentially related, but I have a GitHub Action [1] -- which
       | converts all the notes I write in my (oft-neglected) TIL site
       | [2], and which may also be of interest. It's simple stuff but
       | yeah bit of fun.
       | 
       | [1]:
       | https://github.com/Julian/til/blob/1b9ae162625d20d3e4b6a3ffb...
       | [2]: https://github.com/Julian/til/ [2b]:
       | https://til.grayvines.com/
        
         | kangruixiang wrote:
         | this is really cool. Does the cards get automatically added to
         | the Anki database? What do you do if you want to add to
         | different decks?
        
       | [deleted]
        
       | rg111 wrote:
       | Linux version, when?
       | 
       | Also, any plans of an Android version?
        
         | kangruixiang wrote:
         | In the future for Linux yeah. I don't think it'll be too much
         | harder. I just need to make sure the directories are done
         | correctly.
        
       | curacao1962 wrote:
       | Does anyone use/know of an alternative to Anki? Maybe I am just
       | picky or I am simply not cut for SR systems but I find Anki
       | clunky.
        
         | jwrallie wrote:
         | Anki is very powerful, but indeed that makes it a bit
         | complicated to start with.
         | 
         | However, once you get your note types created, which requires
         | HTML notation, you mostly just have to create content. I mostly
         | learned how to do that by downloading community decks and
         | checking out how they did it, and combining the ideas myself.
         | 
         | I create all my cards using Libreoffice Calc and saving as a
         | csv file, then importing to Anki. Each column of the csv has a
         | corresponding field on the note type.
         | 
         | Sometimes I use Perl programs to generate huge csv files from
         | source materials, automating most of the creation of decks, and
         | I convinced my language tutor to give me example phrases in
         | Excel format instead of Word to easily import on Anki.
         | 
         | I think one of the most used alternative to Anki is Mnemosine,
         | you can check it out, maybe it fits you better.
        
         | knubie wrote:
         | I made Mochi[0] as an alternative to Anki, also tackling
         | basically the same problem as OP. The app is based around
         | markdown note/flash cards, but also has a lot of other features
         | inspired by Anki and its various add-ons.
         | 
         | [0] https://mochi.cards/
        
           | curacao1962 wrote:
           | Hey, I remember having seen your program months ago here. I
           | played with it a little bit now and it certainly looks
           | interesting.
           | 
           | A little bit of feedback if you dont mind:
           | 
           | - Allow to deactivate the notifications for reviewed cards
           | and the info on pressing the space bar. They can get annoying
           | pretty fast.
           | 
           | -At least for the desktop browser version put the preferences
           | in a normal page, not a modal. It was a pain to scroll down
           | since I use only a shitty trackpad,so no mouse-wheel.
        
           | kangruixiang wrote:
           | I actually looked into Mochi as well. I really like the
           | ability to make edits inside the program. For me though, I
           | like having my notes in markdown files so I could move it to
           | places, upload to websites, etc.
        
       | zmix wrote:
       | Why not use YAML "front matter" instead of abusing XML comments,
       | which _may_ (I didn 't spend much thought on it) break it for
       | people, who also want to encode the Markdown into XML/HTML?
        
         | kangruixiang wrote:
         | The XML comments are just my personal preference because it's
         | fast. I have it bound to ",," so that with 2 taps, I could make
         | a card in a few seconds. It's also supported automatically in
         | different markdown programs like Typora/Obsidian. When I upload
         | to the web, the comments also disappear, so the flow of the
         | note isn't interrupted if I just want to read. For example,
         | when you can look at my personal wiki here, you wouldn't know
         | these are cards unless you see the original markdown files.
         | https://kangruixiang.github.io/wiki/
         | 
         | You can also use anything else instead. In my example, you
         | could use {{}} as the front of the card instead of comments. I
         | just chose comments myself.
        
       | rsanek wrote:
       | This looks great! I too have long been frustrated by the
       | laborious process of making high-quality notes. I've approached
       | the problem a bit differently, choosing to integrate with APIs
       | and auto-generate notes from that structured information. I've
       | found that when done carefully, this approach can solve
       | especially well for the 'disconnected knowledge' problem.
       | 
       | I see your project uses import-from-csv to get cards into Anki --
       | you can make this significantly more user-friendly by utilizing
       | the genanki Python package [0]. It spits out an apkg for you that
       | you can just double-click on and import. The other side benefit
       | is that you can keep a stable ID of the same cards over time,
       | which means that if you want to eg update the structure or
       | styling of already-exported notes, it is very easy to do so.
       | 
       | [0] https://github.com/kerrickstaley/genanki
        
         | zengargoyle wrote:
         | I used to mess around with Anki many years ago while studying
         | Japanese. The approach I took was to figure out the database
         | structure, then write a bit of code to expand the information
         | on cards. Just alter the database directly. Mostly for things
         | like adding dictionary words to existing kanji decks. Looks
         | like it would be a nice addition to genanki to be able to
         | read/modify/save existing an existing apkg.
        
           | rsanek wrote:
           | Yeah I evolve cards over time as well, it's interesting how
           | even after 7 years of using SRS I still sometimes generate
           | cards that end up being hard to review once I actually start
           | using them. The way that I solve for the modify over time is
           | to simply re-generate the whole set of cards -- on import,
           | Anki will automatically update the older cards (if the
           | generation time is greater than the last modified time within
           | the Anki DB).
        
         | kangruixiang wrote:
         | I've looked into Anki generating packages before. The problem I
         | run into is that you have to specify the ID for the deck that
         | might be different for different people. Especially if they
         | want to import into existing deck. Then you'll have to figure
         | out how to pull the deck information out of the database first
         | and then import cards into it.
         | 
         | The current Ankify already adds ID for the cards so it'll
         | update the contents on each conversion. The only problem is if
         | you delete a card, you'll have to manually do that in Anki.
        
       | blindseer wrote:
       | You can tell the website is using sveltekit by the favicon but
       | also by how seamless the navbar navigation is. Congrats on
       | launching.
        
         | kangruixiang wrote:
         | Thank you. Yeah the navigation is so well thought with
         | sveltekit. It's like a natural extension of svelte.
        
       | [deleted]
        
       | [deleted]
        
       | jwrallie wrote:
       | Thanks for sharing. I'm a big fan of Anki, but mostly I am using
       | it for language learning these days.
       | 
       | Sometimes I branch into other uses. I was quite successful using
       | Anki when studying for my amateur license exam.
       | 
       | I will consider using Ankify if I need to study from notes at
       | some point in the future.
       | 
       | What I loved about your post is how you evolved with Ankify as
       | you developed it, I think this is a great example for people
       | starting on their own journeys of learning how to program, I
       | always felt that having a project in mind from the beginning is
       | the best way to keep moving forward, and your journey is a great
       | example of that.
       | 
       | I am considering using Python for cross platform gui design.
       | Could you expand on why you chose electron over other
       | alternatives, for example Qt?
       | 
       | Also, could you share which resources you used to learn about gui
       | development on Python?
        
         | kangruixiang wrote:
         | Definitely, thank you. Ankify really was present in every step
         | of me learning programming.
         | 
         | I think I just got caught at a bad time with Python. It was a
         | few years ago, and Python was in the process of going from 2 to
         | 3. Consequently, a lot of the things I tried ended up throwing
         | error messages.
         | 
         | I tried few of Python's GUI makers but found that I end up
         | having to learn so many new things that only apply to that one
         | GUI program. Where as with Electron, I'm really using
         | HTML/CSS/tailwind that I use every where else. I could
         | essentially make Ankify web only and it would make minimal
         | difference to the UI.
         | 
         | I was fond of PyAutoGUI. It seemed very intuitive for me at the
         | time.
        
         | kangruixiang wrote:
         | Another thing that made me end up choosing Javascript is
         | because I could define an user interface and then use it over
         | and over.
         | 
         | For this project, I first defined how each component would
         | look, then used the same UI for both the website and the app to
         | have a coherent look: https://kangruixiang.github.io/snow-ui/
        
       | falsenine wrote:
       | Definitely going to check this out, especially as someone
       | applying to medical school. Came upon the same problem with Anki,
       | it's great for memorization but challenging to make a ton of
       | cards.
       | 
       | An aside question: For incoming med students interested in tech,
       | would it be worthwhile to learn programming? I know it would be
       | great for research. But as someone who is unsure about becoming a
       | clinician scientist, it might be a waste of time to learn
       | programming concurrently during med school.
        
         | pc86 wrote:
         | I have many friends who are doctors and the one thing nearly
         | all of them agree on regardless of age, school, or specialty,
         | is that you really don't have time to do _anything_ in med
         | school other than go to med school. Especially something that
         | takes blocks of time as large as programming.
        
         | derac wrote:
         | I would say some programming skill is useful for anyone in the
         | modern world, but I would just learn some Python and data
         | manipulation tools. Something like Automate the Boring Stuff
         | with Python would be good.
        
         | kangruixiang wrote:
         | I agree with "automate the boring stuff with python." It's
         | actually the first book I used to learn Python.
         | 
         | I think it would be good if you learn it prior to going in. You
         | just won't have time to do any programming learning in med
         | school. Med school is more than a full time job by itself.
        
           | wrycoder wrote:
           | You may have more time, once in practice. I recall a couple
           | of decades ago, it seemed every doctor in the country was
           | learning to program, so he could automate his office. But, it
           | turned out that was taken over by large corporations (as
           | usual!) capitalizing on the need to integrate patient records
           | with big hospitals and insurance systems.
        
             | kangruixiang wrote:
             | I have time now :), in residency! And I should have more
             | time as I go further in training!
        
       ___________________________________________________________________
       (page generated 2022-05-07 23:00 UTC)