Skip to content

SavchenkoValeriy/memrise.el

Repository files navigation

memrise.el Build Status

Table of Contents

Motivation

I like to learn languages and among other things I use Memrise. It is a great learning tool and I strongly prefer it to simple flash card systems. However, as a developer, I spend way more time in front of a desktop computer than on my phone. This makes Memrise app not as useful for me. The web version of Memrise even though is good and provides bindings, still lacks customizability. I believe that with a good browser extensions this problem is solvable, but this is not the way I chose to go.

I am an Emacs geek and I want everything to be in Emacs, especially something that I do on a regular basis. For this reason, memrise.el is born. It aims to be a full-blown Memrise integration for Emacs with all the features you like and some additional perks of it being inside of Emacs.

Installation

Installation from MELPA

memrise.el is not yet on MELPA, but I hope it will be soon, sorry for the inconvenience!

Installation with Quelpa

Quelpa gives you an ability to install Emacs packages directly from remote git repos. I recommend using it with quelpa-use-package if you already use use-package.

Here how it's done:

(use-package memrise
  :quelpa (memrise
           :fetcher github
           :repo "SavchenkoValeriy/memrise.el"))

Manual installation

NOTE: installing memrise.el manually you'll have to install all of it dependencies on your own

use-package

  1. Clone the repo
  2. Add the following code to your init.el file:
(use-package memrise
  :load-path "<path/to/my/cloned/memrise.el/directory>")

direct

  1. Clone the repo
  2. Add the following code to your init.el file:
(add-to-list 'load-path "<path/to/my/cloned/memrise.el/directory>")
(require 'memrise)

How to use

Basically memrise.el has only one entry point: memrise-dashboard. If you are not logged in, it will ask for your user credentials and then proceed to the dashboard.

NOTE: memrise.el doesn't store your credentials in ANY form. Later authorization happens solely using cookies.

After that you can choose a course from the list of your courses and start either review or learning session.

Troubleshooting

memrise.el is not a polished package yet, so there are a few problems that you might encounter:

I called memrise-dashboard, but nothing happened. It only created empty *dashboard* buffer.

There is a problem that I didn't really look at now and it is connected to asynchronous requests (Issue #30).

Workaround: (setq memrise-sync-requests t)

I called memrise-dashboard and it keeps asking me for my credentials.

memrise.el has a bug (issue #29) of not showing actual result of authentication. Probably credentials are incorrect, try them on Memrise login page.

I keep getting some weird symbols on the dashboard and during the session instead of icons and radio buttons

memrise.el uses all-the-icons that requires you to install its additional fonts. You can do it by running

M-x all-the-icons-install-fonts [RET]

Default bindings

Memrise Dashboard

binding action
n Jump to the next course
p Jump to the previous course
r Review/water the current course
l Learn new words/phrases in the current course
g Refresh the dashboard

Memrise Session

binding action
C-m Submit your answer
C-' Pop up a completion prompt (if available)
C-r Replay the audio from the question (if available)

Other bindings are explicitly displayed during the session.

Customization

While providing some reasonable defaults, memrise.el tries to make everything customizable.

The main parameter that you might want to tweak is memrise-session-length, which is a number of tasks in one session or nil if you want to use all the tasks received from Memrise.

You can find more things to customize in two groups: memrise and memrise-faces. Run M-x customize-group [RET] memrise [RET] and see what we got there.

Philosophy

memrise.el is designed for the educational purposes only. Its' developers and users should not consider it as a hack on Memrise and use it for any other purposes than learning. Memrise gives us a great platform to learn and share courses.

memrise.el tries to be as user-friendly as possible. We should make it equally useful to Emacs newcomers and hardcore users.

memrise.el should be customizable in ANY ways useful to its' users.

Roadmap

  • Make a very first version that actually does the job
  • Check it on a big variety of Memrise courses (especially very different from English)
  • Support videos
  • Support OAuth authentication
  • Cover a bigger part of the code with tests
  • Integrate typing tests with Emacs input methods and figure out the best way to learn a keyboard layouts of other languages

Screenshots

Here is a few screenshots of differents parts of memrise.el

Dashboard

It summarizes all the courses that the user studies at the moment.

Screenshot of a Memrise dashboard

Tests

In this section, you can find short GIFs of how Memrise tests look like in memrise.el

Multi-choice test

In this category of tests, user must pick the only correct version from the given list of options.

Screenshot of a multi-choice test

Audio test

Audio test asks user to pick the right audio for the given word or phrase.

Screenshot of an audio test

Tapping test

Tapping tests are similar to multi-choice tests as they provide a list of words to choose from, but in this case, user has to compose the right phrase using available words.

Screenshot of a tapping test

Typing test

Typing test is the hardest, it asks user to type in the correct translation. All the required additional symbols are easily accessible.

Screenshot of a typing test

Completion

Sometimes fetching for the right option might take some time even when the user knows exactly what she is looking for. In this case, the user can use her completion system to find the option she needs.

Check the demo for the mutli-choice test:

Screenshot of a completing multi-choice test

...and for the tapping test:

Screenshot of a completing tapping test

Demo

You can find a short video of me doing some German here: https://www.youtube.com/watch?v=9BC875XHq0o

Contribute

All contributions are most welcome!

Don't hesitate firing up new PRs if you have any questions, problems or ideas. If you want to get involved in the project more than that, please do! We have a contributing guide to give you some information on that.

Alternatives

License

The source code of the package is published under the GPL-3.0 license.

memrise.el and any of its' maintainers are in no way associated with or endorsed by Memrise.

About

Emacs Memrise integration

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published