Git Product home page Git Product logo

autoanki's Introduction

Autoanki

Github Actions CI codecov lerna Commitizen friendly styled with prettier

Status of the project: it barely works for me, there are probably too many rough edges and too little documentation to make it usable by other users. In the near future I don't think I'll have further time to dedicate to this project. Also, when I'll have time to work on this project again, large refactors are planned.

Set of tools that streamline the learning experience with Anki.

Features

  • Ability to write Anki notes in multiple "source file" formats.
    • Writing Anki notes in source files rather than creating them with the Anki GUI interface has the following advantages:
      • For plain text source formats, we can use our favorite text editor.
      • Especially for plain text source formats, it is easy to make collaborative Anki notes, similar to (and probably easier than) CrowdAnki.
        • One additional potential benefit comes when dealing with collaborative Anki notes of copyrighted materials. E.g. imagine the case of a class working together to make cards of a textbook. Instead of distributing the Anki notes as a shared deck, which entails distributing portion of the copyrighted materials, it could be possible to distribute the note sources, which contain links to the copyrighted materials. Everyone who owns the copyrighted materials can generate the Anki notes using their own copy.
      • We structure our information via note taking. We isolate pieces of information and then learn them via spaced-repetition using Anki. By extracting Anki notes from source files (which could be our structured notes), we have best of both worlds: structure + spaced-repetition.
    • List of supported source file formats:
      • YAML
      • Markdown
      • PDF
  • Best-effort automatic bidirectional sync of Anki notes between source files and an Anki profile, using Anki-connect. See @autoanki/sync.
  • Anki collection and deck (apkg) generation, to easily share your work with other people who don't use Autoanki.
  • A out-of-the-box CLI that exposes most of the functionalities of Autoanki for terminal users.
  • Extensibility:
    • Easy to add support for new source file formats, with the plugin-based architecture.
    • Easy to build upon, using APIs provided by a set of simple, yet configurable core components.

Limitations

  • Autoanki deals with Anki notes, not with Anki cards. This means that informations that are bound to Anki cards, such as the card's current deck, are not handled by Autoanki.
    • Some source file formats allow you to specify the deck of a note, but that's only used during note creation.

Usage and supported environments

  • Anki >=2.1.54

Autoanki applications

Autoanki libraries

  • Most of Autoanki packages were designed to work both in the browser and in Node.js.
  • We support TypeScript >=4.8.
  • We officially support all the maintained Node.js versions, which at the time of writing means >=Node.js 14.
  • Packages are transpiled to ES2020 and provided as ES6 module.
    • So that they can run out-of-the-box on the supported Node.js.
    • So that for browser applications the application developers are free to use whatever bundler + transpiler they want, to further process Autoanki packages down to the target they need to support.
      • Polyfills: It complicated..., but following this line of thought we believe it should also be the application developers to assess what they want to support and then introduce the necessary polyfills.

Contributing

See CONTRIBUTING.md

Credits

autoanki's People

Contributors

chenlijun99 avatar pedro-bronsveld avatar timgreen avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.