Anki Papers πŸ“ [Official Support Thread]

Anki Papers

https://ankiweb.net/shared/info/344934142
A modern, elegant addon for Anki that displays your recently added notes in a beautiful side panel. Perfect for reviewing your work and keeping track of your study materials.

Features

  • :memo: Shows your last 10 added notes
  • :framed_picture: Supports images with automatic resizing
  • :crescent_moon: Beautiful dark theme integration
  • :iphone: Responsive layout
  • :dart: Support for Basic and Cloze note types

Note that this add-on is still in development, if you have any problems drop me an email or leave a comment below.

5 Likes

This Add-on gonna follow the roadmap that i posted in this topic months ago
https://forums.ankiweb.net/t/anki-papers-a-universal-anki-note-add-on-idea

1 Like

Great project. This should even be a default Anki feature toggle on/off.

Feature request: It would be great if clicking on a card in the history view opens the Anki editor for that card.

P.S. I’m pretty sure you have editing plans, from what I’ve seen on the roadmap. In any case, thanks and good luck!

2 Likes

Hi @navamed
thanks for your comment
Yeah, actually I was going to add this functionality in the next beta release ; am going to try to add an edit icon and when pressed it will open the note in the browser to edit it.

1 Like

That’s very interesting add-on!

Currently data is saved by writing directly to config.json, but config.json is overwritten when the addon is updated, so data needs to be saved in meta.json. It is easy and common to get the config.json from the addonManager, like this:

def load_config() -> Dict:
    config = mw.addonManager.getConfig(__name__)
    return config

def save_config(config: Dict) -> None:
    mw.addonManager.writeConfig(__name__, config)

I think currently it requires a restart after changing the options. If you move all of NotesHistoryWidget’s load_config into __init__, it should be possible to change it without restarting, like this:

class NotesHistoryWidget(QWidget):
    def __init__(self, parent: AddCards):
        super().__init__(parent)
        self.parent = parent

        self.MAX_NOTES = load_config()["maxNotes"]
        self.MAX_IMAGE_WIDTH = load_config()["maxImageWidth"]
        self.MAX_IMAGE_HEIGHT = load_config()["maxImageHeight"]

        self.setup_ui()
        self.load_recent_notes()

And adding code like this using setConfigAction displays the custom dialog when users select from the Add-ons dialog. (Tools β†’ Addons β†’ Select addon β†’ Config)
But Anki’s default Config has the ability to reset to default, so I think this is fine without it.

def setup_menu():
    #...
    mw.addonManager.setConfigAction(__name__, show_config_dialog)

This is just an idea, I thought it might be useful to have an option to hide the answers on the cards. But the browser will show the answers so this may not be necessary.

2 Likes