? Это наконец здесь! Вы можете создать автоматически карты ANKI из вашего приложения C#. ?
Я ищу некоторых разработчиков для разработки версии Java, JavaScript и Python, если вы заинтересованы в ней, пожалуйста, свяжитесь со мной здесь: https://clement-jean.github.io/contact/
Вы можете найти список для выполнения здесь: Список дел
Ankisharp использует Syrcelink (https://github.com/dotnet/sourcelink). Это помогает вам отладки вашей программы с помощью этого Nuget.
Если вы столкнетесь с исключением, исходящим от Ankisharp:
- Put a breakpoint on the function which as a problem
- Once on the breakpoint, click on the 'Step Into' button (F11)
Тогда вы будете перенаправлены в коде ankisharp nuget. Наконец, пожалуйста, сообщите о проблеме и начните вносить свой вклад.
Это репо как вики: вики. Вы можете посмотреть на любую функцию индивидуально или следить за путешественником, нажмите на следующую ссылку в конце каждой страницы.
AnkiSharp . Anki test = new AnkiSharp . Anki ( _NAME_OF_ANKI_PACKAGE_ ) ;
test . AddItem ( "Hello" , "Bonjour" ) ;
test . AddItem ( "How are you ?" , "Comment ca va ?" ) ;
test . AddItem ( "Flower" , "fleur" ) ;
test . AddItem ( "House" , "Maison" ) ;
test . CreateApkgFile ( _PATH_FOR_ANKI_FILE_ ) ; AnkiSharp . Anki test = new AnkiSharp . Anki ( _NAME_OF_ANKI_PACKAGE_ ) ;
//Permits to set more than two fields
test . SetFields ( "English" , "Spanish" , "French" ) ;
test . AddItem ( "Hello" , "Hola" , "Bonjour" ) ;
test . AddItem ( "How are you ?" , "Como estas?" , "Comment ca va ?" ) ;
test . AddItem ( "Flower" , "flor" , "fleur" ) ;
test . AddItem ( "House" , "Casa" , "Maison" ) ;
test . CreateApkgFile ( _PATH_FOR_ANKI_FILE_ ) ; AnkiSharp . Anki test = new AnkiSharp . Anki ( _NAME_OF_ANKI_PACKAGE_ ) ;
//Permits to change the css of your cards by providing it a css string
test . SetCss ( _CSS_CONTENT_ ) ;
test . AddItem ( "Hello" , "Bonjour" ) ;
test . AddItem ( "How are you ?" , "Comment ca va ?" ) ;
test . AddItem ( "Flower" , "fleur" ) ;
test . AddItem ( "House" , "Maison" ) ;
test . CreateApkgFile ( _PATH_FOR_ANKI_FILE_ ) ; AnkiSharp . Anki test = new AnkiSharp . Anki ( _NAME_OF_ANKI_PACKAGE_ ) ;
test . SetFields ( "English" , "Spanish" , "French" ) ;
//Everything before '<hr id=answer>' is the front of the card, everything after is the behind
test . SetFormat ( "{0} - {1} \ n<hr id=answer> \ n {2}" ) ;
test . AddItem ( "Hello" , "Hola" , "Bonjour" ) ;
test . AddItem ( "How are you ?" , "Como estas?" , "Comment ca va ?" ) ;
test . AddItem ( "Flower" , "Flor" , "fleur" ) ;
test . AddItem ( "House" , "Casa" , "Maison" ) ;
test . CreateApkgFile ( _PATH_FOR_ANKI_FILE_ ) ; Anki test = new Anki ( _NAME_OF_ANKI_PACKAGE_ , new ApkgFile ( _PATH_TO_APKG_FILE_ ) ) ) ;
// Be careful, keep the same format !
test . AddItem ( "Fork" , "El tenedor" , "La fourchette" ) ;
test . AddItem ( "Knife" , "El cuchillo" , "Le couteau" ) ;
test . AddItem ( "Chopsticks" , "Los palillos" , "Les baguettes" ) ;
test . CreateApkgFile ( _PATH_FOR_ANKI_FILE_ ) ; Anki test = new Anki ( _NAME_OF_ANKI_PACKAGE_ , new ApkgFile ( _PATH_TO_APKG_FILE_ ) ) ;
// Be careful, keep the same fields !
var item = test . CreateAnkiItem ( ( "Fork" , "El tenedor" , "La fourchette" ) ;
if ( test . ContainsItem ( ankiItem ) == false ) // will not add if the card is entirely the same (same fields' value)
test . AddItem ( ankiItem ) ;
test . CreateApkgFile ( _PATH_FOR_ANKI_FILE_ ) ; Anki test = new Anki ( _NAME_OF_ANKI_PACKAGE_ , new ApkgFile ( _PATH_TO_APKG_FILE_ ) ) ;
var item = test . CreateAnkiItem ( "Hello" , "Bonjour" ) ;
if ( test . ContainsItem ( x => { return Equals ( item [ "FrontSide" ] , x [ "FrontSide" ] ) ; } ) == false ) // will not add if front of the card already exists
test . AddItem ( item ) ;
test . CreateApkgFile ( _PATH_FOR_ANKI_FILE_ ) ; MediaInfo info = new MediaInfo ( )
{
cultureInfo = new System . Globalization . CultureInfo ( _CULTURE_INFO_STRING_ ) ,
field = _FIELD_IN_WHICH_THE_AUDIO_WILL_BE_PLAYED_
} ;
Anki ankiObject = new Anki ( _NAME_OF_ANKI_PACKAGE_ , info ) ;
.. .Текущий звук имеет образцы в секунду 8000, 16 бит на образец и находится в моно -канале. Если вы хотите изменить его, вы можете сделать это так (имейте в виду, что качество быстро увеличивает или уменьшает размер вашей колоды):
MediaInfo info = new MediaInfo ( )
{
cultureInfo = new System . Globalization . CultureInfo ( _CULTURE_INFO_STRING_ ) ,
field = _FIELD_IN_WHICH_THE_AUDIO_WILL_BE_PLAYED_ ,
audioFormat = new SpeechAudioFormatInfo ( _SAMPLES_PER_SECOND_ , _BITS_PER_SAMPLE_ , _AUDIO_CHANNEL_ )
} ;
Anki ankiObject = new Anki ( _NAME_OF_ANKI_PACKAGE_ , info ) ;
.. . Anki test = new Anki ( _NAME_OF_ANKI_PACKAGE_ ) ;
test . SetFields ( "Front" , "hint:Hint" , "Back" ) ;
test . SetFormat ( "{0} - {1} \ n<hr id=answer(.*?)> \ n {2}" ) ;
test . AddItem ( "好的" , "ok" , "d'accord" ) ;
test . CreateApkgFile ( _PATH_FOR_ANKI_FILE_ ) ;