[中文版介绍]
CrowdAnki is a plugin for http://ankisrs.net/ that allows users to import and export decks/notes and all relevant information in a JSON format. The main purpose is to facilitate crowd-sourcing for Anki decks and notes.
Starting with version 0.6 it also features a close integration with Git.
Providing you with an ability to automatically maintain history of edits for your decks.
See more details below.
AnkiWeb link for the plugin: https://ankiweb.net/shared/info/1788670778
Please consider supporting the plugin development by becoming a Patron - this helps me to dedicate more time and love to the project
This section illustrates collaboration workflow using GitHub.
Suppose you have a deck named DeckX and you want to collaborate on its improvement with other people. In order to achieve this you will need to:
File > Export >
Export format: CrowdAnki JSON Representation
. Include: DeckX.Preface:
My goal here is to provide a user-friendly description of collaboration workflow. In order to do that, I looked through multiple GUI git clients. For our purposes here, I think GitHub Desktop is the best choice (as the most user-friendly client that works). There is one problem with GitHub Desktop, though - it doesn't have a Linux version. Which makes me particularly sad, as I use Linux as my main OS. I've considered using GitKraken for this tutorial, but it has some problems that disqualify it for our purposes (but if you're Linux user or if you don't like GitHub Desktop for some reason - you may still want to consider using it).
If somebody just wants to use the deck you've uploaded to GitHub - they can import decks directly from there.
When you or one of your collaborators want to upload changes you've made to the GitHub, you need to:
If you just want to get latest changes from other people - you need to perform only steps 1 and 2.
Initialize repository with following commands:
git init
git remote add origin git@github.com:<username>/<repository>.git
Where
git remote add origin git@github.com:Stvad/DeckX.git
Add the content of your directory to the repository:
git add *
git commit -m "initial export"
Upload changes you've made to the GitHub:
git push origin master
Install git on their machine.
Clone the repository you've created:
git clone https://github.com/Stvad/DeckX.git
If somebody just wants to use the deck you've uploaded to GitHub - they can import decks directly from there.
When you or one of your collaborators want to upload changes you've made to the GitHub, you need to:
Get the latest changes from the GitHub:
git pull
Add the changes to the repository:
git add *
git commit -m "new updates"
Upload changes you've made to the GitHub:
git push origin master
If you just want to get latest changes from other people - you need to perform only steps 1 and 2.
The current workflow could be described as following:
To perform the export go to menu File > Export
Select the deck and the export format "CrowdAnki JSON representation". After pressing the Export button - select directory where the result should be stored.
To perform the import go to menu File > CrowdAnki: Import from disk
and select the directory where the deck is stored.
To get the deck from a git repository (such as GitHub) go to menu File > CrowdAnki: Import git repository
and enter the repository's full URL.
So, for example, to get my git deck you would need to enter https://github.com/Stvad/Software_Engineering__git
.
CrowdAnki can help you preserve the history of edits for your decks.
It does this by exporting them in a specified location and creating a git commit each time you do a snapshot.
You can take snapshots manually via File > CrowdAnki: Snapshot
menu action.
Or you can enable automated snapshots in add-on configuration (see below) which will take a snapshot each time you open or close anki.
You can find the add-on's config page via Tools -> Add-ons, select CrowdAnki then hit Config
.
In here you can set a some config options, as well as a detailed explanation on what each does, with examples and default behaviour.
Here is a general summary of the currently available config options:
Snapshot Path
: location of the snapshot will be exported toSnapshot Root Decks
: when a snapshot is taken a git repo will be generated for each of these decks Automated Snapshot
: whether the snapshot happens automaticallyDo Not Move Existing Cards on Import
: whether to move already existing cards on import or notDeck Sort Methods
: how to sort cards on exportReverse Sort Order
: whether to reverse the sorting of cards on export